Litmos MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LITMOS_API_KEY | Yes | Your Litmos API key. | |
| LITMOS_BASE_URL | Yes | Base URL for Litmos API. EU: https://api.litmoseu.com, US: https://api.litmos.com. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_coursesB | Search for Litmos courses by name or keyword. Returns a list of matching courses with their IDs, names, and status. |
| get_courseC | Get full details for a specific Litmos course by its ID. |
| get_course_detailsA | Get extended details for a specific Litmos course (description, tags, custom fields, etc.) by its ID. |
| get_course_modulesA | List all modules inside a specific Litmos course, including module type and completion status. |
| get_course_usersA | Get all users enrolled in a specific Litmos course, including their completion status and progress. |
| get_learning_pathB | Get details for a specific Litmos learning path by its ID, including name, description, and active status. |
| get_learning_path_usersA | Get all users enrolled in a specific Litmos learning path, including their completion status and progress. |
| assign_learning_path_to_userA | Assign a Litmos learning path to a specific user. Checks first if already assigned and returns current progress if so. |
| search_usersA | Search for Litmos users by name or email address. Returns a list of matching users with their IDs and profile details. |
| bulk_search_usersA | Search for multiple users at once by providing a list of names or emails. Runs all searches in parallel and returns results per query. |
| get_userB | Get full profile details for a specific Litmos user by their ID. |
| get_user_trainingA | Get a user's full training record: all assigned courses and learning paths with completion status and progress percentages. |
| assign_course_to_userA | Assign a Litmos course to a single user. For multiple users, use bulk_assign_course_to_users instead. |
| bulk_assign_course_to_usersA | Assign a course to a list of users. Use this when registering or enrolling multiple users into a course — do NOT call assign_course_to_user repeatedly. Respects the Litmos rate limit automatically. |
| create_sessionB | Create a new ILT session within a course module. Supports single or multi-day sessions with optional location, time zone, seat limit, and wait list. |
| get_module_sessionsB | List all ILT (Instructor-Led Training) sessions available for a specific module within a course. |
| register_user_to_sessionB | Register a Litmos user to a specific ILT session within a course module. |
| bulk_register_users_to_sessionB | Register up to 25 users to an ILT session in a single API call. Provide a list of user IDs plus the course, module, and session IDs. |
| complete_sessionA | Mark an ILT session complete and record attendance in one call. Runs rollcall and attendance marking in parallel for a list of users. |
| reset_session_scoreA | Reset the score to 0 for a list of users in a session, while preserving their current completed status. |
| update_module_progressB | Record a module result for a user: set score (0–100), mark as completed or not, and optionally add a note. Uses the Litmos /results/modules API. |
| bulk_update_module_progressA | Record the same module result for multiple users in parallel. Provide a list of user IDs plus the score, completed flag, and optional note. Returns a per-user success/failure summary. |
| bulk_import_usersA | Create or update up to ~2000 users in one job, and/or bulk-enroll existing users into courses. Use course1–course3 fields with the CourseCodeForBulkImport to assign courses to many users at once without touching their other profile data. Username is the unique key — existing users are updated, new ones are created. Unspecified fields are left unchanged. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 23 tools
Each tool has a clearly distinct purpose, with bulk variants explicitly separated from single-user operations, and get/search functions differentiated by scope. No tools overlap in functionality.
All tool names follow a consistent verb_noun pattern in snake_case, with descriptive prepositions where needed (e.g., assign_course_to_user, get_course_users). No mixed conventions or ambiguous verbs.
23 tools cover the core LMS operations (users, courses, learning paths, ILT sessions, bulk operations) without redundancy. Each tool adds clear value for its domain.
The toolset provides strong read, create, and update capabilities, but lacks delete operations for courses, users, or sessions. Bulk import handles updates but not deletion. This leaves some workflow dead ends.