workademy/workademy-mcp-server
If you are the rightful owner of workademy-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The Workademy MCP Server is a specialized server designed to facilitate the integration and management of model context protocols, particularly in environments utilizing LLM and MCP technologies.
Workademy MCP Server
A Model Context Protocol (MCP) server that provides comprehensive integration with the Workademy LMS platform. This server enables LLMs like Claude to interact with Workademy's API for course management, user administration, enrollments, learning paths, and more.
Features
Course Management
- List, create, update, and delete courses
- Clone courses
- Generate AI-powered courses from topics
- Manage course modules, lectures, and content
- Access course analytics and reports
User & Enrollment Management
- List and manage users
- Enroll users in courses
- Track course progress and completion
- Generate completion certificates
Group Management
- Create and manage learner groups
- Assign courses to groups
- Add users to groups
- Generate group-based reports
Learning Paths
- Create structured learning journeys
- Manage learning path steps
- Track learner progress through paths
Skills Management
- Define skills and skill levels
- Assign skills to users
- Track skill development
Reporting & Analytics
- Generate user course reports (overview and detailed)
- Track completion rates
- Monitor learning progress
- Export data for analysis
Additional Features
- Certificate management and templates
- Workspace management
- Async operation tracking
- Integration support
Installation
Prerequisites
- Node.js 18 or higher
- npm or yarn
- Workademy account with API access
Setup
- Clone or create the project:
mkdir workademy-mcp
cd workademy-mcp
- Install dependencies:
npm install
- Build the project:
npm run build
Configuration
Environment Variables
Create a .env file or set the following environment variables:
# REQUIRED: Your Workademy API Key
WORKADEMY_API_KEY=your_api_key_here
# REQUIRED: Your Workademy instance base URL
WORKADEMY_BASE_URL=https://staging.theworkademy.com
Getting Your Credentials
API Key:
- Log in to your Workademy account
- Go to Account Settings or API Settings
- Generate or copy your API key
- Add it to your
.envfile
Base URL:
- Use the base URL of your Workademy instance
- Examples:
- Staging:
https://staging.theworkademy.com - Production:
https://app.theworkademy.com - Custom domain:
https://your-company.theworkademy.com
- Staging:
- Do not include
/apior trailing slashes
Claude Desktop Configuration
Add this to your Claude Desktop config file:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"workademy": {
"command": "node",
"args": ["/absolute/path/to/workademy-mcp/dist/index.js"],
"env": {
"WORKADEMY_API_KEY": "your_api_key_here",
"WORKADEMY_BASE_URL": "https://staging.theworkademy.com"
}
}
}
}
Available Tools
Course Management
list_courses
List all courses with optional filtering.
Parameters:
- page: Page number (0-indexed)
- size: Items per page
- q: RSQL query (e.g., "name=='Data Science'")
- view: GROUPS, LEARNING_PATH_ELIGIBLE_COURSES, OWNED_COURSES, DEFAULT
get_course
Get detailed information about a specific course.
Parameters:
- courseId: Course ID (required)
- include: Related entities to include (e.g., "modules,questionAnswers")
create_course
Create a new course.
Parameters:
- name: Course name (required)
- description: Course description
- published: Publication status
- certifiable: Whether certificates are offered
- durationMinutes: Expected duration
update_course
Update an existing course.
Parameters:
- courseId: Course ID (required)
- courseData: JSON object with fields to update
delete_course
Delete a course.
Parameters:
- courseId: Course ID (required)
clone_course
Create a copy of an existing course.
Parameters:
- courseId: Course ID (required)
generate_ai_course
Generate a course using AI.
Parameters:
- topic: Main topic (required)
- context: Additional context
- locale: Language code (e.g., "en", "uk")
- noModules: Number of modules
- businessGoals: Business objectives
- learningGoal: Learning objectives
User Management
list_users
List all users in the workspace.
Parameters:
- page, size: Pagination
- q: RSQL query filter
- view: LEARNING_PATHS, COURSES, WORKSPACE_ACCESS, GROUPS, SKILLS, DEFAULT
get_user
Get user details.
Parameters:
- userId: User ID (required)
get_current_user
Get currently authenticated user information.
update_user
Update user information.
Parameters:
- userId: User ID (required)
- userData: JSON object with fields to update
Enrollment Management
list_user_courses
List all course enrollments with progress.
Parameters:
- page, size: Pagination
- q: RSQL query filter
get_user_course
Get detailed enrollment information.
Parameters:
- userCourseId: User course ID (required)
- include: Related entities to include
enroll_user
Enroll a user in a course.
Parameters:
- courseId: Course ID (required)
- userId: User ID (required)
complete_user_course
Mark enrollment as completed.
Parameters:
- userCourseId: User course ID (required)
Group Management
list_groups
List all groups.
Parameters:
- page, size: Pagination
- search: Search term
get_group
Get group details.
Parameters:
- groupId: Group ID (required)
create_group
Create a new group.
Parameters:
- name: Group name (required)
- description: Group description
add_user_to_group
Add a user to a group.
Parameters:
- groupId: Group ID (required)
- userId: User ID (required)
add_course_to_group
Associate a course with a group.
Parameters:
- groupId: Group ID (required)
- courseId: Course ID (required)
Learning Path Management
list_learning_paths
List all learning paths.
Parameters:
- page, size: Pagination
create_learning_path
Create a new learning path.
Parameters:
- name: Path name (required)
- description: Path description
- type: LEARNING_PATH or CAREER_PATH (required)
- steps: Array of step definitions
delete_learning_path
Delete a learning path.
Parameters:
- learningPathId: Learning path ID (required)
Workspace Management
list_workspaces
List all accessible workspaces.
get_workspace
Get workspace details.
Parameters:
- workspaceId: Workspace ID or hostname (required)
Skills Management
list_skills
List all skills and levels.
Parameters:
- page, size: Pagination
create_skill
Create a new skill.
Parameters:
- name: Skill name (required)
- description: Description
- levels: Array of level definitions
Certificate Management
get_certificate
Get certificate information.
Parameters:
- certificateId: Certificate ID (required)
list_certificate_templates
List templates for a course.
Parameters:
- courseId: Course ID (required)
Operations & Reporting
list_operations
List async operations.
Parameters:
- page, size: Pagination
get_operation
Get operation status.
Parameters:
- operationId: Operation ID (required)
generate_user_course_report
Generate progress reports.
Parameters:
- type: OVERVIEW or DETAILED (required)
- courseId: Filter by course (optional)
- groupId: Filter by group (optional)
- userId: Filter by user (optional)
Survey & Assessment Tools
get_pre_course_survey_report
Get pre-course survey report with comprehensive analysis of all question answers.
How it works:
- Initiates report generation (async operation)
- Polls operation status until completion (max 2 minutes)
- Downloads the CSV file automatically
- Analyzes data and provides statistics
Parameters:
- courseId: Course ID (required)
Returns:
- operation: Operation details (status, URLs, metadata)
- csvUrl: Direct link to download CSV file
- csvData: Raw CSV content
- analysis: Statistical analysis including:
- Total responses
- Questions (column headers)
- Response frequencies for each question
- Top 10 answers with percentages
- Summary statistics
Example response structure:
{
"operation": {
"id": 3177,
"status": "FINISHED",
"courseName": "Course Name",
"url": "https://...csv"
},
"analysis": {
"totalResponses": 150,
"totalColumns": 5,
"headers": ["Question 1", "Question 2", ...],
"columnAnalysis": {
"Question 1": {
"totalResponses": 150,
"uniqueValues": 12,
"frequency": {...},
"topResponses": [
{"value": "Answer A", "count": 75, "percentage": "50%"},
...
]
}
}
}
}
Usage Examples
Example 1: List All Courses
Use the list_courses tool to show me all published courses
Example 2: Create a New Course
Create a course called "Introduction to Python" with the description "Learn Python programming basics" and mark it as published
Example 3: Enroll a User
Enroll user ID 123 in course ID 456
Example 4: Generate an AI Course
Generate an AI course about "Data Science Fundamentals" in English with 5 modules, focused on business analytics
Example 5: Create a Learning Path
Create a learning path called "Full Stack Developer" of type LEARNING_PATH with steps for frontend, backend, and database courses
Example 6: Generate Report
Generate a detailed user course report for course ID 789
Example 7: Get Pre-Course Survey Report
Get the pre-course survey report for course ID 4221 with analysis
This will:
- Generate the report
- Wait for it to complete
- Download the CSV
- Provide statistical analysis showing:
- How many people responded
- Top answers for each question
- Response percentages
- Frequency distributions
Authentication
The server uses a simple API key authentication flow:
-
Token Request:
- Sends
grant_type=api_keyand your API key - Uses Basic authentication with system credentials (
Basic c3lzdGVtOkViNFRRaXpEdFlpYndJTHI=) - Receives an access token
- Sends
-
API Requests:
- Uses Bearer authentication with the obtained access token
- Header:
Authorization: Bearer {{access_token}}
Tokens are automatically:
- Obtained on first API call using your API key
- Cached for reuse
- Refreshed before expiration
- Retried on 401 errors
You only need to provide your Workademy API key - everything else is handled automatically!
Error Handling
The server provides detailed error messages including:
- HTTP status codes
- API error messages
- Validation errors
- Authentication failures
Data Visualization
The survey report tool provides analyzed data that can be easily visualized:
Using Claude's Artifacts: Ask Claude to create charts from the survey data:
- "Create a bar chart showing the top responses for Question 1"
- "Make a pie chart of the response distribution"
- "Build a dashboard with all survey statistics"
Export Options:
- CSV data is available for import into Google Sheets, Excel, or Tableau
- Analysis includes pre-calculated percentages and frequencies
- Direct CSV download URL provided for external tools
API Coverage
This MCP server implements the following Workademy API endpoints:
Secured Endpoints:
/api/v1/secured/courses/*- Course management/api/v1/secured/users/*- User management/api/v1/secured/usercourses/*- Enrollment management/api/v1/secured/groups/*- Group management/api/v1/secured/learningpaths/*- Learning path management/api/v1/secured/workspaces/*- Workspace management/api/v1/secured/skills/*- Skills management/api/v1/secured/certificates/*- Certificate management/api/v1/secured/operations/*- Async operations- Various reporting endpoints
Development
Running in Development Mode
npm run dev
Building for Production
npm run build
npm start
Project Structure
workademy-mcp/
├── src/
│ └── index.ts # Main server implementation
├── dist/ # Compiled JavaScript
├── package.json
├── tsconfig.json
└── README.md
Troubleshooting
Authentication Errors
- Verify username and password are correct
- Check if using correct base URL (staging vs production)
- Ensure account has necessary permissions
Connection Issues
- Verify WORKADEMY_BASE_URL is accessible
- Check network/firewall settings
- Ensure API is not rate-limited
Tool Errors
- Check tool parameter types and requirements
- Review error messages for specific guidance
- Verify IDs exist before operations
Contributing
This MCP server is designed for integration with the Workademy LMS platform. For feature requests or issues related to the Workademy API itself, please contact Workademy support.
License
MIT