coursera
Provides tools for interacting with Coursera courses, including listing courses, downloading transcripts and readings, and retrieving course outlines and library maps.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@courserashow my library map"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
coursera-cli
Your own Coursera courses, from the terminal — and from Claude Code, over MCP.
Downloads the transcripts and readings of courses you are enrolled in, through Coursera's internal API. No HTML scraping, no gigabytes of video.
coursera courses --search pricing find the course
coursera map see what you actually studied
coursera transcript <slug> pull the content as textInstall
Requires Bun.
cd klipso_reverse/Cli-propios/coursera-cli
bun installRelated MCP server: Coursera MCP
Session
The CLI needs your account's CAUTH cookie. It looks in three places, in order:
The
COURSERA_CAUTHenvironment variableIts own store, under the platform config directory
The store written by the Python recon repo (
~/.config/coursera_recon/session.json)
If you have none, capture one with capture_session.py from the coursera_recon repo: it
opens a visible Chromium, you log in by hand, and it saves the cookie. Logging in is not
automated — typing credentials from a script is what triggers the CAPTCHA.
coursera session # is it alive, where did it come from, how old is it
coursera doctor # session + routes + paths, all at once[OK] version: coursera-cli 0.2.0 on win32, bun 1.3.11
[OK] session-present: found via legacy, 108.2 h old
[OK] session-alive: 215 courses visible
[OK] endpoints: 10 routes declared, domains.v1 alive
[OK] paths: state C:\Users\you\AppData\Local\coursera-cli
5/5 checks passedCommands
Command | What it does |
| Session state: source, age, alive or dead |
| Diagnoses session, live routes and writable paths |
| Your courses |
| Branches, levels, institutions, unfinished specializations |
| Syllabus, institution, instructors, declared level |
| Downloads transcripts and readings |
Filters
Filters compose with AND, and multi-word values need no quotes:
coursera courses --search machine learning
coursera courses --level intermediate --domain data-science
coursera courses --lang es --hours 5 # short courses in Spanish
coursera courses --university dukeFlag | Example |
| name or slug |
|
|
| branch or sub-branch, e.g. |
| primary language, e.g. |
| at most n estimated hours |
| e.g. |
Global flags
Flag | Default | Purpose |
| off | Structured output. Implied when stdout is piped |
| platform data dir | Where to write |
| all | Stop after n items |
|
| Subtitle preference order |
| off | No progress output |
Library map
coursera map cross-references your library against Coursera's own taxonomy:
215 courses in your library
levels: beginner 99 intermediate 66 advanced 7 undeclared 43
business 158 ████████████████████████ 1366 h
data-science 90 ██████████████ 735 h
computer-science 35 █████ 255 h
SPECIALIZATIONS (15)
✓ AI Product Management 3/3 complete
○ Digital Product Management 3/5 2 missingTwo caveats it prints itself, because both are real: a course filed under two branches counts in both, and hours come from Coursera's free-text workload field, which 78 of 215 courses do not state readably.
MCP for Claude Code
Register the server with the absolute path to the Bun binary — the process that
launches MCP servers does not inherit your PATH, so "command": "bun" fails with
"Failed to connect":
{
"mcpServers": {
"coursera": {
"command": "C:/Users/you/.bun/bin/bun.exe",
"args": ["C:/Users/you/klipso_reverse/Cli-propios/coursera-cli/src/mcp/index.ts"]
}
}
}Tool | Returns |
| Whether the session is alive, where it came from, how many courses it sees |
| Your courses, with the same filters as the CLI |
| Branches, levels, institutions, specialization progress |
| The course tree plus institution and instructors |
| Downloads a course, returns the index of what landed |
| The text of one item |
fetch_transcripts returns paths, not text: a course is ~130 KB (≈35k tokens) and sending
it whole would blow up the conversation. To read, use read_transcript.
What it downloads
Text, by default: a .txt transcript per video and a .reading.md per reading. No video —
a course is gigabytes as MP4 against ~130 KB as text, and for studying or summarizing the
text carries the same signal.
Files are organized per module, numbered in order, with a manifest.json index.
Locked modules
When a course is in preview or has locked weeks, the aggregating API censors the item type: it returns them empty, and extractors that filter by type skip 75% of the syllabus believing it is empty.
This CLI does not filter. It asks the video and reading microservices about every item directly and keeps whatever answers.
Docs
File | Contents |
| The spec: problem, decisions, scope, verification |
| Domain glossary |
| Portal recon: endpoints, gotchas, what is alive |
| What changed in each version |
| The routes. A deprecation is fixed here, not in the code |
Tests
bun test # 76 tests against responses captured live from the API
bun run typecheckLegal
Reaches your own account with your own session, for courses you are already enrolled in. Downloaded material is copyrighted by Coursera and its universities: it is for your personal study. Do not redistribute it.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables users to search for courses, view detailed syllabus information, and manage enrollments and progress on Coursera. It supports automated interactions including viewing certificates through local or cloud-based browser environments using Playwright.512MIT
- Alicense-qualityBmaintenanceEnables AI agents to programmatically interact with Coursera, including enrolling in courses, completing lectures, solving quizzes, submitting assignments, earning certificates, and pushing them to LinkedIn.1MIT
- Alicense-qualityBmaintenanceProvides MCP tools to read SJTU Canvas data, download course files, and access video/subtitle resources without authentication simulation.MIT
- Flicense-qualityCmaintenanceRemote MCP connector providing live, structured access to CMU Courses public data including courses, prerequisites, schedules, instructors, gen-eds, and final-exam times to help students plan schedules.
Related MCP Connectors
The Academy curriculum as an offline MCP library. Hosted course connector adds progress.
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Federated search of books and papers, BibTeX/RIS citations, open-access retrieval and reading.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/StephCastrof001/coursera-cli'
If you have feedback or need assistance with the MCP directory API, please join our Discord server