Model Context Protocol (MCP) enables AI assistants like Claude Desktop to directly interact with CourseForge using natural language.
What is MCP?
MCP is an open standard that enables AI assistants to securely connect to external tools and data sources. With MCP, Claude Desktop can:
- Create and manage courses
- Generate content with AI
- Add lessons and modules
- Upload and manage content
- All through natural language conversation
Quick Start
1. Get Your API Key
- Log in to CourseForge
- Go to Settings → API Keys
- Create a new API key
- Save it securely
2. Install CourseForge MCP Client
npx -y courseforge-mcp-client
3. Configure Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on Mac):
{
"mcpServers": {
"courseforge": {
"command": "npx",
"args": ["-y", "courseforge-mcp-client"],
"env": {
"COURSEFORGE_API_KEY": "your_api_key_here",
"COURSEFORGE_API_URL": "https://courseforge.caringai.app/api/mcp"
}
}
}
}
4. Restart Claude Desktop
Close and reopen Claude Desktop to load the MCP server.
Available Tools
CourseForge MCP provides 28 tools organized by category:
Course Management (5 tools)
list_courses- List all your coursescreate_course- Create a new courseget_course- Get course detailsupdate_course- Update course informationdelete_course- Delete a course
Module Management (5 tools)
create_module- Add a module to a courseget_module- Get module detailsupdate_module- Update module informationdelete_module- Remove a modulereorder_modules- Reorder modules in a course
Lesson Management (5 tools)
create_lesson- Add a lesson to a moduleget_lesson- Get lesson detailsupdate_lesson- Update lesson informationdelete_lesson- Remove a lessonreorder_lessons- Reorder lessons in a module
Content Block Management (5 tools)
add_content_block- Add content to a lessonget_content_block- Get content block detailsupdate_content_block- Update contentdelete_content_block- Remove contentreorder_content_blocks- Reorder content blocks
AI Features (3 tools)
generate_lesson_content- Generate lesson content with AIgenerate_image- Create custom images with AIai_chat_assistant- Get instructional design help
API Key Management (3 tools)
list_api_keys- List your API keyscreate_api_key- Create a new API keyrevoke_api_key- Revoke an API key
Utilities (2 tools)
marketing_support_chat- Get help with CourseForgeget_openapi_spec- Get the OpenAPI specification
Example Conversations
Create a Complete Course
You: Create a beginner Python programming course with 3 modules: Basics, Data Types, and Control Flow
Claude will:
- Create the course
- Add three modules
- Suggest lessons for each module
- Offer to generate content
Generate Lesson Content
You: Generate content for a lesson about Python variables
Claude will:
- Create a lesson in the selected module
- Generate comprehensive content
- Add examples and explanations
- Create a quiz to test knowledge
Add Visual Content
You: Add an illustration showing how variables work in Python
Claude will:
- Generate a custom image using AI
- Add it to your lesson
- Include proper alt text
Advanced Usage
Using SSE Transport
For better performance with streaming:
{
"mcpServers": {
"courseforge": {
"command": "npx",
"args": ["-y", "courseforge-mcp-client"],
"env": {
"COURSEFORGE_API_KEY": "your_api_key",
"COURSEFORGE_API_URL": "https://courseforge.caringai.app/api/mcp/sse",
"MCP_TRANSPORT": "sse"
}
}
}
}
Using Master API Key
For development/testing, use a master key:
{
"mcpServers": {
"courseforge": {
"command": "npx",
"args": ["-y", "courseforge-mcp-client"],
"env": {
"COURSEFORGE_API_KEY": "mcp_master_YOUR_KEY",
"COURSEFORGE_API_URL": "https://courseforge.caringai.app/api/mcp"
}
}
}
}
Tool Details
Course Operations
create_course
{
name: string // Required
description?: string
language?: string // ISO 639-1 (default: 'en')
difficulty?: 'beginner' | 'intermediate' | 'advanced' | 'expert'
published?: boolean // Default: false
}
list_courses
{
page?: number // Default: 1
perPage?: number // Default: 20, max: 100
published?: boolean // Filter by status
}
Module Operations
create_module
{
courseId: string // Required
name: string // Required
description?: string
order?: number
}
Lesson Operations
create_lesson
{
courseId: string // Required
moduleId: string // Required
name: string // Required
description?: string
order?: number
}
Content Block Operations
add_content_block
{
courseId: string // Required
moduleId: string // Required
lessonId: string // Required
block: {
type: 'text' | 'image' | 'video' | 'quiz' | 'code' | 'interactive'
content: object // Type-specific content
order?: number
}
}
AI Generation
generate_lesson_content
{
courseId: string
moduleId: string
lessonId: string
topic: string // What to teach
learningObjectives?: string[] // Optional objectives
}
generate_image
{
courseId: string
lessonId: string
prompt: string // Detailed description
aspectRatio?: '1:1' | '16:9' | '9:16' | '4:3' | '3:4'
numberOfImages?: number // 1-4, default: 1
context?: string // Additional context
}
Troubleshooting
MCP Server Not Loading
Check config file location:
- Mac:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Verify JSON syntax:
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json | jq .
Check logs:
- Mac:
~/Library/Logs/Claude/mcp.log - Windows:
%APPDATA%\Claude\Logs\mcp.log
Authentication Errors
- Verify API key is correct
- Check API key hasn't been revoked
- Ensure Professional or Enterprise plan
Tool Not Working
- Check tool inputs match schema
- Verify you have permission
- Check API rate limits
- Review error messages in logs
Best Practices
Efficient Course Creation
- Start with structure: Create course → modules → lessons
- Generate content: Use AI for initial content
- Review and refine: Edit AI-generated content
- Add assessments: Create quizzes for each lesson
- Test flow: Preview the course
Natural Language Tips
Be specific in requests:
- ✅ "Create a beginner Python course with 5 modules about basics, data types, control flow, functions, and projects"
- ❌ "Make a course"
Provide context:
- ✅ "Generate a lesson about Python lists for complete beginners with examples"
- ❌ "Lesson about lists"
Review generated content:
- Always review AI-generated content
- Add your expertise and examples
- Customize for your audience
Security
API Key Safety
- Never share your API key
- Store in environment variables
- Rotate keys regularly
- Use separate keys for different purposes
Master Key
The master API key grants full access:
- Only use in secure development environments
- Never commit to version control
- Rotate frequently
- Monitor usage
Rate Limits
MCP requests count toward your API rate limits:
- Free: 100 requests/hour
- Professional: 1,000 requests/hour
- Enterprise: 10,000 requests/hour
See Rate Limits for details.
Getting Help
Documentation
Support
- Email: support@courseforge.com
- Community: Discord
Examples
What's Next?
- Webhooks: Get notified of changes in real-time
- Batch operations: Process multiple items efficiently
- Custom integrations: Build your own tools
- Advanced AI: Fine-tune content generation