@mindstone/mcp-server-talentlms
v0.4.0
Published
TalentLMS MCP server for Model Context Protocol hosts — users, courses, groups, branches, reporting, assessments
Readme
@mindstone/mcp-server-talentlms
TalentLMS MCP server for Model Context Protocol hosts. Manage users, courses, groups, branches, categories, enrolments, reporting, and assessments in TalentLMS through a standardised MCP interface.
Status
- Version: 0.4.0 · npm
- Auth: API key (
TALENTLMS_API_KEY) - Tools: 28 (users, courses, groups, categories, reporting, assessments)
- Surface: cloud-api
- Machine-readable:
STATUS.json
Requirements
- Node.js 20+
- npm
One-click install
After clicking the button, your host will prompt you to fill: TALENTLMS_API_KEY, TALENTLMS_DOMAIN, TALENTLMS_REQUEST_TIMEOUT.
{
"mcpServers": {
"TalentLMS": {
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-talentlms"
],
"env": {
"TALENTLMS_API_KEY": "",
"TALENTLMS_DOMAIN": "",
"TALENTLMS_REQUEST_TIMEOUT": "30000"
}
}
}
}Quick Start
Install & build
cd <path-to-repo>/connectors/talentlms
npm install
npm run buildnpx (once published)
npx -y @mindstone/mcp-server-talentlmsLocal
node dist/index.jsConfiguration
Environment variables
TALENTLMS_API_KEY— TalentLMS API keyTALENTLMS_DOMAIN— TalentLMS subdomain (e.g.acmefor acme.talentlms.com)TALENTLMS_REQUEST_TIMEOUT— request timeout in milliseconds (default:30000)MCP_HOST_BRIDGE_STATE— optional path to a host bridge state file used for credential managementMINDSTONE_REBEL_BRIDGE_STATE— backwards-compatible alias forMCP_HOST_BRIDGE_STATE
Host configuration examples
Claude Desktop / Cursor
{
"mcpServers": {
"TalentLMS": {
"command": "npx",
"args": ["-y", "@mindstone/mcp-server-talentlms"],
"env": {
"TALENTLMS_API_KEY": "your-api-key",
"TALENTLMS_DOMAIN": "your-domain"
}
}
}
}Local development (no npm publish needed)
{
"mcpServers": {
"TalentLMS": {
"command": "node",
"args": ["<path-to-repo>/connectors/talentlms/dist/index.js"],
"env": {
"TALENTLMS_API_KEY": "your-api-key",
"TALENTLMS_DOMAIN": "your-domain"
}
}
}
}Tools (28)
List tools paginate: TalentLMS returns 20 items per page by default — pass page_size (max 1000) and page_number to page through larger tenants.
Configuration
configure_talentlms— Configure TalentLMS API credentials
Users
list_talentlms_users— List users (paginated)get_talentlms_user— Get a user's full profile by ID or emailcreate_talentlms_user— Create a new userupdate_talentlms_user— Update an existing user (name, email, login, password, bio, timezone, deactivation date; non-privileged user types only)set_talentlms_user_status— Activate or deactivate a userget_talentlms_user_courses— Get all courses a user is enrolled in
Courses
list_talentlms_courses— List courses (paginated)get_talentlms_course— Get full course details by IDcreate_talentlms_course— Create a new courseget_talentlms_course_users— Get all users enrolled in a courseenrol_talentlms_user— Enrol a user into a courseunenrol_talentlms_user— Remove a user from a courseget_talentlms_course_sso_link— Generate an SSO link to launch a user into a course
Groups
list_talentlms_groups— List groups (paginated)get_talentlms_group— Get group details including members and coursescreate_talentlms_group— Create a new groupadd_course_to_talentlms_group— Assign a course to a group
Branches
list_talentlms_branches— List branches (paginated, multi-tenant)
Categories
list_talentlms_categories— List course categories (paginated)
Reporting
get_talentlms_site_info— Get site-level statistics and configurationget_talentlms_timeline— Get activity timeline for users or coursesget_talentlms_user_progress— Get detailed progress for a user in a courseget_talentlms_leaderboard— Gamification leaderboard (users ranked by points; derived from the full user list, paged 1000 at a time so no user is dropped)get_talentlms_user_certifications— Get a user's issued certifications with expiration dates
Assessments
get_talentlms_test_answers— Get a user's answers for a test/quizget_talentlms_survey_answers— Get a user's responses to a surveyget_talentlms_ilt_sessions— Get instructor-led training sessions for a unit
Security notes
- Untrusted-content envelopes: text authored inside TalentLMS (course and group descriptions, user names/bios/custom fields, test and survey answers, etc.) is returned inside
<untrusted-content source="...">envelopes so the host model treats it as data, not instructions. Ids, statuses, timestamps, and other metadata are deliberately left raw so tool chaining (e.g. copying auser_idinto the next call) keeps working. - Privilege guard:
create_talentlms_userandupdate_talentlms_useronly accept the non-privilegedLearner/Traineruser types — Administrator/SuperAdmin accounts must be managed in the TalentLMS UI.
Licence
FSL-1.1-MIT — Functional Source License, Version 1.1, with MIT future licence. The software converts to MIT licence on 2030-04-08.
