Read TalentLMS users, courses, groups, branches and progress; create learners and enroll users. Hosted by usefulapi — connect from Claude, Cursor, or any MCP client.
Add to your MCP config, then reload & authorize:
{
"mcpServers": {
"talentlms": {
"url": "https://talentlms.usefulapi.io/mcp"
}
}
}| Tool | Type | What it does |
|---|---|---|
get_portal_statistics | read | 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. |
get_timeline | read | Get timeline 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. |
list_users | read | List users 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. |
get_user | read | Get a user Full profile of one user: login, name, email, user type, status, timezone, locale, credits, custom fields, deactivation date. GET /api/v2/users/{id}. |
list_user_courses | read | List a user's courses 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. |
list_user_groups | read | List a user's groups The groups a user belongs to (id, name). GET /api/v2/users/{id}/groups. |
list_user_branches | read | List a user's branches The branches a user belongs to (id, name). GET /api/v2/users/{id}/branches. |
list_user_certificates | read | List a user's certificates Certificates a user has earned (course, issue and expiration dates, download/public URLs). GET /api/v2/users/{id}/certificates. |
get_course_progress | read | Get a user's progress in a course 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=. |
list_courses | read | List courses 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. |
get_course | read | Get a course Full details of one course: description, category, status, price, capacity, time limit, start/expiration, settings. GET /api/v2/courses/{id}. |
list_course_users | read | List a course's users 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. |
list_categories | read | List course categories The course category tree (id, parent, name, price, children), paginated. GET /api/v2/categories. |
list_learning_paths | read | List learning paths Learning paths (sequences of courses) with status, category, price, dates and rules, paginated. GET /api/v2/learning-paths. |
list_groups | read | List groups List the portal's groups (id, name, description, branch, price, key redemptions), paginated. GET /api/v2/groups. |
get_group | read | Get a group Details of one group: name, description, branch, group key, max key redemptions, price. GET /api/v2/groups/{id}. |
list_group_users | read | List a group's users Members of a group (id, login, name, email, user type, status, last login), paginated. GET /api/v2/groups/{id}/users. |
list_branches | read | List branches List the portal's branches (sub-portals: id, name, URL, description, active), paginated. GET /api/v2/branches. |
get_branch | read | Get a branch 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}. |
list_branch_users | read | List a branch's users Users in a branch (id, login, name, email, user type, status, last login), paginated. GET /api/v2/branches/{id}/users. |
create_user | write | Create a learner 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. |
enroll_user_in_course | write | Enroll a user in a course WRITE: enroll an existing user in a course (as a learner). Returns the assigned role. POST /api/v2/enrollments. |
add_user_to_group | write | Add a user to a group 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. |
talentlms_usage_status | Usage status (free-tier meter) Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached. Read-only; does not count against the meter. | |
talentlms_upgrade | Upgrade to Pro (unlimited) Subscribe to the Pro plan for UNLIMITED TalentLMS tool calls (the free tier caps monthly usage). Choose monthly ($9/month) or yearly ($90/year — 2 months free) billing. Returns a Stripe Checkout link to open in your browser; after payment your account upgrades automatically. Does not count against the meter. | |
talentlms_cancel_subscription | Cancel the Pro subscription Cancel the caller's TalentLMS Pro subscription at the end of the paid period (no refund for the current period; unlimited calls continue until then, then the free tier applies). Requires confirm: true. Run talentlms_upgrade later to undo the cancel before the period ends. Does not count against the meter. |
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 100 tool calls / month |
| Proper portal | $9/mo · $90/yr | Unlimited |
Pro covers this TalentLMS server only. Subscribe with talentlms_upgrade (it returns a Stripe Checkout link). Cancel any time with talentlms_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running talentlms_upgrade before then undoes the cancel. Or write to [email protected].
This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.