Coursera MCP Server
# @striderlabs/mcp-coursera
MCP (Model Context Protocol) server for [Coursera](https://www.coursera.org) — search courses, get details, enroll, track progress, and view certificates.
## Tools
| Tool | Description |
|------|-------------|
| `search_courses` | Search courses by topic, skill, difficulty level |
| `get_course_details` | Get full course info: syllabus, duration, instructor, reviews |
| `enroll_course` | Enroll in a course (requires login) |
| `get_my_courses` | List enrolled courses and progress |
| `get_certificates` | View earned certificates |
## Requirements
- Node.js 18+
- [Playwright](https://playwright.dev) (installed automatically)
## Installation
```bash
npm install @striderlabs/mcp-coursera
# Install browser binaries
npx playwright install chromium
```
## Configuration
### Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| `BROWSERBASE_CDP_URL` | Optional | Browserbase CDP endpoint for cloud browsers |
| `COURSERA_EMAIL` | For auth tools | Your Coursera account email |
| `COURSERA_PASSWORD` | For auth tools | Your Coursera account password |
### Claude Desktop / MCP Client
Add to your MCP client config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
```json
{
"mcpServers": {
"coursera": {
"command": "npx",
"args": ["-y", "@striderlabs/mcp-coursera"],
"env": {
"COURSERA_EMAIL": "your@email.com",
"COURSERA_PASSWORD": "yourpassword",
"BROWSERBASE_CDP_URL": "wss://connect.browserbase.com?apiKey=YOUR_KEY"
}
}
}
}
```
### With Browserbase (Cloud Browsers)
[Browserbase](https://www.browserbase.com) provides cloud browser infrastructure. Set `BROWSERBASE_CDP_URL` to connect:
```bash
BROWSERBASE_CDP_URL="wss://connect.browserbase.com?apiKey=YOUR_API_KEY" npx @striderlabs/mcp-coursera
```
Without `BROWSERBASE_CDP_URL`, a local Chromium instance is launched.
## Usage Examples
### Search for Courses
```
search_courses(query="machine learning", difficulty="beginner", limit=5)
```
### Get Course Details
```
get_course_details(course_url="https://www.coursera.org/learn/machine-learning")
```
### Enroll in a Course
```
enroll_course(course_url="https://www.coursera.org/learn/python")
```
### Check Progress
```
get_my_courses()
```
### View Certificates
```
get_certificates()
```
## Authentication
Tools that access personal data (`enroll_course`, `get_my_courses`, `get_certificates`) require Coursera credentials. Provide them via:
1. **Environment variables** (recommended): `COURSERA_EMAIL` and `COURSERA_PASSWORD`
2. **Tool arguments**: Pass `email` and `password` directly in the tool call
Credentials are never stored or transmitted beyond the browser session.
## Development
```bash
git clone <repo>
cd mcp-coursera
npm install
npx playwright install chromium
npm run build
npm start
```
## License
MIT
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: enrolling in courses, viewing certificates, getting course details, listing enrolled courses, and searching for courses. There is no overlap in functionality, making it easy for an agent to select the correct tool for any task.
All tool names follow a consistent verb_noun pattern (e.g., enroll_course, get_certificates, get_course_details, get_my_courses, search_courses). This uniformity enhances readability and predictability for agents.
With 5 tools, this server is well-scoped for a Coursera integration, covering key user actions without being overwhelming. Each tool serves a clear and necessary function, making the count appropriate for the domain.
The toolset covers core operations like enrollment, viewing certificates, course details, enrolled courses, and search, providing a solid foundation. However, there are minor gaps, such as no tools for unenrolling from courses, updating user profiles, or managing course progress, which agents might need to work around.