litmos-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LITMOS_REGION | No | API region: us, eu, or au | us |
| LITMOS_SOURCE | No | Source label sent with every API request | litmos-mcp |
| LITMOS_API_KEY | Yes | Your Litmos API key |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| litmos_search_usersA | Search for Litmos users by name, email, username, or company. Returns a list of matching users with their IDs. Use the returned Id values with other tools to retrieve training data for specific individuals. Args: params: UserSearchInput with: - search (str): Search string (name, email, username, company) Returns: str: JSON array of matching users: [{"Id": str, "UserName": str, "FirstName": str, "LastName": str}, ...] |
| litmos_get_userA | Retrieve the full profile for a single Litmos user by their encrypted ID. Args: params: UserIdInput with: - user_id (str): Litmos encrypted user ID Returns: str: JSON object with full user profile including Id, UserName, FirstName, LastName, Email, AccessLevel, Active, LastLogin, JobTitle, ExternalEmployeeId, CustomField1-10, and more. |
| litmos_list_usersA | List users in the Litmos organisation with pagination support. Returns basic user info (Id, UserName, FirstName, LastName). Use litmos_get_user for full profiles or litmos_search_users to find a specific individual. Args: params: UserListInput with: - limit (int): Records to return, default 100, max 1000 - start (int): Offset for pagination, default 0 - show_inactive (bool): Include inactive users, default False Returns: str: JSON array of users: [{"Id": str, "UserName": str, "FirstName": str, "LastName": str}, ...] |
| litmos_get_user_coursesA | Get all courses assigned to a user and their completion status. This is the primary tool for checking training completion. Returns each course with completion status, percentage, dates, and whether the user is overdue or compliant. Args: params: UserIdInput with: - user_id (str): Litmos encrypted user ID Returns: str: JSON array of course assignments: [{ "Id": str, "Name": str, "Code": str, "Active": bool, "Complete": bool, "PercentageComplete": float, "AssignedDate": str, "StartDate": str | null, "DateCompleted": str | null, "Overdue": bool, "CompliantTill": str | null, "IsLearningPath": bool }, ...] |
| litmos_get_user_course_resultsA | Get detailed course and module-level results for a specific user/course pair. Provides granular completion data including scores, attempt counts, and pass/fail status for each module within the course. Args: params: UserCourseResultInput with: - user_id (str): Litmos encrypted user ID - course_id (str): Litmos encrypted course ID Returns: str: JSON object with course-level fields plus a Modules array: { "Id": str, "Name": str, "Complete": bool, "PercentageComplete": float, "DateCompleted": str | null, "Modules": [{ "Id": str, "Name": str, "Completed": bool, "Score": int, "Passmark": int, "Attempt": int, "DateCompleted": str | null }, ...] } |
| litmos_get_user_learning_pathsA | Get all learning paths assigned to a user and their completion status. Args: params: UserIdInput with: - user_id (str): Litmos encrypted user ID Returns: str: JSON array of learning path assignments: [{ "Id": str, "Name": str, "Active": bool, "Complete": bool, "PercentageComplete": float, "AssignedDate": str, "StartDate": str | null, "DateCompleted": str | null, "AccessTillDate": str | null }, ...] |
| litmos_list_coursesA | List courses available in the Litmos organisation. Use the returned course IDs with litmos_get_user_course_results to fetch detailed results for a specific user/course combination. Args: params: CourseListInput with: - limit (int): Records to return, default 100, max 1000 - start (int): Offset for pagination, default 0 Returns: str: JSON array of courses: [{"Id": str, "Name": str, "Code": str, "Active": bool, ...}, ...] |
| litmos_get_user_teamsA | Get all teams that a user is assigned to. Useful for understanding a user's organisational grouping or filtering completion data by team membership. Args: params: UserIdInput with: - user_id (str): Litmos encrypted user ID Returns: str: JSON array of teams: [{"Id": str, "Name": str, "TeamCodeForBulkImport": str, "ParentTeamId": str}, ...] |
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 8 tools
Each tool targets a distinct entity or relationship (user profile, user courses, course results, learning paths, teams, course list, user list, user search), with no overlapping purposes.
All tools follow the consistent pattern 'litmos_verb_noun' (e.g., litmos_get_user, litmos_list_courses), with clear verb-noun combinations.
8 tools is well-scoped for an LMS read-only integration, covering essential entities without unnecessary bloat.
Covers all main read operations for users, courses, learning paths, and teams. Minor gap: no tool to get details of a single course or list users in a team, but core workflows are supported.