Coursera
Model Context Protocol server integrating Coursera with Claude
Ask AI about Coursera
Powered by Claude Β· Grounded in docs
I know everything about Coursera. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Coursera MCP
A Model Context Protocol (MCP) server integrating Coursera with Claude AI. Access courses, programs, enrollment data, and personalized recommendations directly within Claude conversations.
Features
7 Powerful Tools:
Public Tools (No Authentication)
- π search_courses - Search for courses with filters (level, language, sorting)
- π― search_programs - Find specializations, degrees, and certificates
- π get_course_details - Comprehensive course information (syllabus, instructors, skills)
- π get_program_details - Full program details with course curriculum
Private Tools (TOTP 2FA Required)
- π get_enrolled_courses - List your enrolled courses with progress
- π get_progress - Detailed progress tracking (current week, upcoming deadlines)
- π get_recommendations - AI-powered course recommendations based on your learning
Installation
Prerequisites
- Node.js >= 18.0.0
- Claude Desktop (for desktop integration)
- Or use directly with Claude API
Via npm
npm install -g coursera-mcp
From Source
git clone https://github.com/fmbetancourt/coursera-mcp.git
cd coursera-mcp
bun install
bun run build
npm link
Quick Start
1. Initial Setup
coursera-mcp init
This will:
- Prompt for your Coursera email
- Display a QR code for 2FA setup (Google Authenticator, Authy, 1Password, etc.)
- Save encrypted session token to
~/.coursera-mcp/sessions.json
2. Use with Claude
In Claude Desktop
Add to your Claude configuration (~/.claude/claude.json):
{
"mcpServers": {
"coursera": {
"command": "coursera-mcp"
}
}
}
Restart Claude Desktop β Coursera tools available in conversations
Via Claude API
from anthropic import Anthropic
client = Anthropic()
# MCP servers configured in your environment
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
tools=[...], # MCP tools injected
messages=[{
"role": "user",
"content": "Find Python beginner courses"
}]
)
Usage Examples
Search for Courses
In Claude:
"Find beginner Python courses with at least 4.5 star rating"
Tool Call:
search_courses({
query: "Python",
level: "beginner",
sortBy: "rating",
sortOrder: "desc"
})
Response:
{
items: [
{
id: "python-basics",
name: "Python for Everybody",
rating: 4.8,
enrollments: 250000,
duration: 8,
level: "beginner"
},
...
],
total: 1250,
hasMore: true
}
Get Course Details
get_course_details({
courseId: "python-for-data-science"
})
Check Your Progress
get_progress({
courseId: "machine-learning-specialization"
})
β {
percent: 65,
currentWeek: 7,
totalWeeks: 10,
upcomingDeadlines: [
{
week: 7,
dueDate: "2026-05-15T23:59:59Z",
type: "quiz"
}
]
}
Get Personalized Recommendations
get_recommendations({
limit: 10,
includeCourses: true,
includePrograms: true
})
β {
recommendations: [
{
name: "Advanced Machine Learning",
matchScore: 92,
reason: "You've completed Python and Data Science basics",
difficulty: "advanced",
rating: 4.8
},
...
]
}
Security
2FA Authentication
- TOTP-based - Industry-standard Time-based One-Time Password (Google Authenticator, Authy, etc.)
- Credentials never stored - Email/password only used during setup
- Encrypted tokens - AES-256-GCM encryption for session storage
- Auto-refresh - Sessions automatically refreshed before expiration
Privacy
- No logging of sensitive data - Tokens, emails, passwords are automatically redacted
- Local session storage -
~/.coursera-mcp/sessions.json(chmod 0o600) - No data collection - All data stays on your machine
See SECURITY.md for detailed security information.
Documentation
- API.md - Complete tool specifications with examples
- DEVELOPMENT.md - Architecture and development guide
- CONTRIBUTING.md - How to contribute
- CHANGELOG.md - Release history
Status
Implemented (v0.1.0)
- β All 7 tools functional
- β TOTP 2FA authentication
- β AES-256 encryption
- β Circuit breaker resilience
- β Stale-while-revalidate caching
- β 85%+ test coverage
- β GitHub Actions CI/CD
Roadmap (v1.0+)
- 2FA backup codes UI
- Export progress to CSV
- Google Calendar sync
- Course comparison tool
- Study group finder
- Learning path recommendations
See GitHub Issues for roadmap details.
Contributing
We welcome contributions! Please see CONTRIBUTING.md for guidelines on:
- Code style and standards
- Testing requirements
- Pull request process
- Commit message format
Troubleshooting
"No active session" error
Solution: Run coursera-mcp init to authenticate
Session expired
Solution: The session will auto-refresh automatically. If it fails, run coursera-mcp init again
Certificate errors on macOS
Solution: Ensure you have the latest Bun version: bun upgrade
Performance
- Cache hit: <5ms response time
- Cache miss: 300-1000ms (Coursera API latency)
- Circuit breaker: Auto-recovers in 60 seconds if API down
- Memory: <50MB footprint
Testing
# Run all tests
bun test
# Run with coverage
bun run test:coverage
# Watch mode
bun run dev
License
MIT Β© 2026 Freddy Betancourt
Support
- π Check documentation
- π Report issues
- π¬ Start a discussion
Built with β€οΈ by the Coursera MCP team
Made for Claude AI and the community.
