TalentLMS MCP by usefulapi

Read TalentLMS users, courses, groups, branches and progress; create learners and enroll users.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
94%
이름 품질
99%
오염 위험
80%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (2)

  • HIGHTool poisoning patterns detected
  • LOWTool description contains role marker that could confuse chat modelsget_user에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~4,154토큰 (도구 정의)
~1.2 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 3.25%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "talentlms": {
      "url": "https://talentlms.usefulapi.io/mcp"
    }
  }
}

원격 엔드포인트

https://talentlms.usefulapi.io/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (23)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢get_portal_statistics

Portal-wide totals (users, courses, categories, groups, branches, monthly active users) and settings (signup method, date format, branch limit). A good first call. GET /api/v2/statistics.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_timeline(event_type, created_from, created_to, page, page_size)

Recent portal events (logins, user/course/group/branch changes, course completions, certificates...) with the user and related course/group/branch/unit. Filter by event type (e.g. course_completion, user_login_user, user_create_user) and a date range. GET /api/v2/timeline.

입력 스키마

{
  "type": "object",
  "properties": {
    "event_type": {
      "description": "Only this event type, e.g. course_completion, user_login_user, user_create_user.",
      "type": "string"
    },
    "created_from": {
      "description": "Events on or after this ISO 8601 date-time, e.g. 2025-05-07T00:00:00+00:00.",
      "type": "string"
    },
    "created_to": {
      "description": "Events on or before this ISO 8601 date-time.",
      "type": "string"
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Items per page, 1-100 (TalentLMS default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_users(keyword, email, login, status, branch_id, ...)

List the portal's users (id, login, name, email, user type, status, registration, last login), paginated. Filter by keyword (name/login/email), exact email or login, status, branch, group, last-updated range or a custom field value. GET /api/v2/users.

입력 스키마

{
  "type": "object",
  "properties": {
    "keyword": {
      "description": "Search across name, surname, login and email.",
      "type": "string"
    },
    "email": {
      "description": "Exact email address.",
      "type": "string"
    },
    "login": {
      "description": "Exact username (login).",
      "type": "string"
    },
    "status": {
      "description": "Only active or inactive users.",
      "type": "string",
      "enum": [
        "active",
        "inactive"
      ]
    },
    "branch_id": {
      "description": "Only users in this branch.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "group_id": {
      "description": "Only users in this group.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "updated_from": {
      "description": "Users updated on or after this ISO 8601 date-time, e.g. 2025-01-01T00:00:00.",
      "type": "string"
    },
    "updated_to": {
      "description": "Users updated on or before this ISO 8601 date-time.",
      "type": "string"
    },
    "custom_field_value": {
      "description": "Users with this value in one of their custom user fields.",
      "type": "string"
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Items per page, 1-100 (TalentLMS default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_user(user_id)

Full profile of one user: login, name, email, user type, status, timezone, locale, credits, custom fields, deactivation date. GET /api/v2/users/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "user_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The user id (a positive integer)."
    }
  },
  "required": [
    "user_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_user_courses(user_id)

The courses a user is enrolled in, with their role (learner/instructor), enrollment and completion dates, completion status and percentage, score and total time. GET /api/v2/users/{id}/courses.

입력 스키마

{
  "type": "object",
  "properties": {
    "user_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The user id (a positive integer)."
    }
  },
  "required": [
    "user_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_user_groups(user_id)

The groups a user belongs to (id, name). GET /api/v2/users/{id}/groups.

입력 스키마

{
  "type": "object",
  "properties": {
    "user_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The user id (a positive integer)."
    }
  },
  "required": [
    "user_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_user_branches(user_id)

The branches a user belongs to (id, name). GET /api/v2/users/{id}/branches.

입력 스키마

{
  "type": "object",
  "properties": {
    "user_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The user id (a positive integer)."
    }
  },
  "required": [
    "user_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_user_certificates(user_id, page, page_size)

Certificates a user has earned (course, issue and expiration dates, download/public URLs). GET /api/v2/users/{id}/certificates.

입력 스키마

{
  "type": "object",
  "properties": {
    "user_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The user id (a positive integer)."
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Items per page, 1-100 (TalentLMS default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "user_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_course_progress(user_id, course_id)

One user's status in one course: enrolled or not, role, completion status, completion percentage and date, score, total time, last viewed unit and certificate. GET /api/v2/course-progress?user_id=&course_id=.

입력 스키마

{
  "type": "object",
  "properties": {
    "user_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The user id (a positive integer)."
    },
    "course_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The course id (a positive integer)."
    }
  },
  "required": [
    "user_id",
    "course_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_courses(custom_field_value, page, page_size)

List the portal's courses (id, name, code, category, status, price, dates, catalog visibility), paginated. Optionally only courses with a given custom course field value. GET /api/v2/courses.

입력 스키마

{
  "type": "object",
  "properties": {
    "custom_field_value": {
      "description": "Courses with this value in one of their custom course fields.",
      "type": "string"
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Items per page, 1-100 (TalentLMS default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_course(course_id)

Full details of one course: description, category, status, price, capacity, time limit, start/expiration, settings. GET /api/v2/courses/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "course_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The course id (a positive integer)."
    }
  },
  "required": [
    "course_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_course_users(course_id, page, page_size)

Users enrolled in a course with their enrollment date, completion status, completion percentage, completion date and total time: the course's progress report. GET /api/v2/courses/{id}/users.

입력 스키마

{
  "type": "object",
  "properties": {
    "course_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The course id (a positive integer)."
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Items per page, 1-100 (TalentLMS default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "course_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_categories(page, page_size)

The course category tree (id, parent, name, price, children), paginated. GET /api/v2/categories.

입력 스키마

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Items per page, 1-100 (TalentLMS default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_learning_paths(status, page, page_size)

Learning paths (sequences of courses) with status, category, price, dates and rules, paginated. GET /api/v2/learning-paths.

입력 스키마

{
  "type": "object",
  "properties": {
    "status": {
      "description": "Only active or inactive learning paths.",
      "type": "string",
      "enum": [
        "active",
        "inactive"
      ]
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Items per page, 1-100 (TalentLMS default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_groups(page, page_size)

List the portal's groups (id, name, description, branch, price, key redemptions), paginated. GET /api/v2/groups.

입력 스키마

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Items per page, 1-100 (TalentLMS default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_group(group_id)

Details of one group: name, description, branch, group key, max key redemptions, price. GET /api/v2/groups/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "group_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The group id (a positive integer)."
    }
  },
  "required": [
    "group_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_group_users(group_id, page, page_size)

Members of a group (id, login, name, email, user type, status, last login), paginated. GET /api/v2/groups/{id}/users.

입력 스키마

{
  "type": "object",
  "properties": {
    "group_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The group id (a positive integer)."
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Items per page, 1-100 (TalentLMS default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "group_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_branches(page, page_size)

List the portal's branches (sub-portals: id, name, URL, description, active), paginated. GET /api/v2/branches.

입력 스키마

{
  "type": "object",
  "properties": {
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Items per page, 1-100 (TalentLMS default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_branch(branch_id)

Details of one branch: URL, title, theme, default locale/timezone/user type/group, signup and verification settings, e-commerce settings. GET /api/v2/branches/{id}.

입력 스키마

{
  "type": "object",
  "properties": {
    "branch_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The branch id (a positive integer)."
    }
  },
  "required": [
    "branch_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_branch_users(branch_id, page, page_size)

Users in a branch (id, login, name, email, user type, status, last login), paginated. GET /api/v2/branches/{id}/users.

입력 스키마

{
  "type": "object",
  "properties": {
    "branch_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The branch id (a positive integer)."
    },
    "page": {
      "description": "Page number (default 1).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "page_size": {
      "description": "Items per page, 1-100 (TalentLMS default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "branch_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴create_user(name, surname, email, login, password, ...)

WRITE: create a new LEARNER account in the portal (TalentLMS may email the user, depending on the portal's settings). The user type is always the portal's built-in Learner-Type; this tool cannot create administrators, instructors or any other type (the portal's default type is never used, since it may be an admin type). If the portal has no type named Learner-Type, the tool refuses. Returns the new user's id and type. POST /api/v2/users.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "First name."
    },
    "surname": {
      "type": "string",
      "minLength": 1,
      "description": "Last name."
    },
    "email": {
      "type": "string",
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "Email address."
    },
    "login": {
      "type": "string",
      "minLength": 1,
      "description": "Username (must be unique in the portal)."
    },
    "password": {
      "type": "string",
      "minLength": 1,
      "description": "Initial password (the portal's password rules apply)."
    },
    "timezone": {
      "description": "IANA timezone, e.g. Europe/Athens.",
      "type": "string"
    },
    "locale": {
      "description": "Locale, e.g. en-US.",
      "type": "string"
    },
    "email_notifications": {
      "description": "Whether the user receives email notifications.",
      "type": "boolean"
    },
    "description": {
      "description": "Short bio.",
      "type": "string"
    },
    "deactivation_date": {
      "description": "Date the account becomes inactive automatically (YYYY-MM-DD).",
      "type": "string"
    }
  },
  "required": [
    "name",
    "surname",
    "email",
    "login",
    "password"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴enroll_user_in_course(user_id, course_id)

WRITE: enroll an existing user in a course (as a learner). Returns the assigned role. POST /api/v2/enrollments.

입력 스키마

{
  "type": "object",
  "properties": {
    "user_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The user id (a positive integer)."
    },
    "course_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The course id (a positive integer)."
    }
  },
  "required": [
    "user_id",
    "course_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴add_user_to_group(user_id, group_id, enroll_to_courses)

WRITE: add an existing user to a group, which also enrolls them in the group's courses. Set enroll_to_courses to enroll synchronously. POST /api/v2/group-memberships.

입력 스키마

{
  "type": "object",
  "properties": {
    "user_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The user id (a positive integer)."
    },
    "group_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The group id (a positive integer)."
    },
    "enroll_to_courses": {
      "description": "Enroll the user in the group's active courses right away (synchronously).",
      "type": "boolean"
    }
  },
  "required": [
    "user_id",
    "group_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 23개