Coursera MCP

Coursera MCP

Enables AI agents to programmatically interact with Coursera, including enrolling in courses, completing lectures, solving quizzes, submitting assignments, earning certificates, and pushing them to LinkedIn.

Category
访问服务器

README

<p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/badge/COURSERA-MCP-0056D2?style=for-the-badge&logo=coursera&logoColor=white&labelColor=0056D2"> <img alt="Coursera MCP" src="https://img.shields.io/badge/COURSERA-MCP-0056D2?style=for-the-badge&logo=coursera&logoColor=white&labelColor=0056D2"> </picture> </p>

<p align="center"> <b>The most advanced MCP server for Coursera.</b><br> <sub>87 tools · 8 integration layers · full course automation · Obsidian export</sub> </p>

<p align="center"> <a href="#setup"><img src="https://img.shields.io/badge/setup-guide-blue?style=flat-square" alt="Setup"></a> <a href="#tools-87"><img src="https://img.shields.io/badge/tools-87-green?style=flat-square" alt="Tools"></a> <a href="#architecture"><img src="https://img.shields.io/badge/architecture-8_layers-purple?style=flat-square" alt="Architecture"></a> <a href="https://github.com/VoidChecksum/coursera-mcp/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-yellow?style=flat-square" alt="License"></a> </p>

<p align="center"> <img src="https://img.shields.io/badge/python-3.11+-3776AB?style=flat-square&logo=python&logoColor=white" alt="Python"> <img src="https://img.shields.io/badge/node.js-22+-339933?style=flat-square&logo=nodedotjs&logoColor=white" alt="Node.js"> <img src="https://img.shields.io/badge/MCP-stdio-black?style=flat-square" alt="MCP"> <img src="https://img.shields.io/badge/scrapling-adaptive-FF6B35?style=flat-square" alt="Scrapling"> <img src="https://img.shields.io/badge/stealth-rebrowser-red?style=flat-square" alt="Stealth"> </p>


 ██████╗ ██████╗ ██╗   ██╗██████╗ ███████╗███████╗██████╗  █████╗       ███╗   ███╗ ██████╗██████╗
██╔════╝██╔═══██╗██║   ██║██╔══██╗██╔════╝██╔════╝██╔══██╗██╔══██╗      ████╗ ████║██╔════╝██╔══██╗
██║     ██║   ██║██║   ██║██████╔╝███████╗█████╗  ██████╔╝███████║█████╗██╔████╔██║██║     ██████╔╝
██║     ██║   ██║██║   ██║██╔══██╗╚════██║██╔══╝  ██╔══██╗██╔══██║╚════╝██║╚██╔╝██║██║     ██╔═══╝
╚██████╗╚██████╔╝╚██████╔╝██║  ██║███████║███████╗██║  ██║██║  ██║      ██║ ╚═╝ ██║╚██████╗██║
 ╚═════╝ ╚═════╝  ╚═════╝ ╚═╝  ╚═╝╚══════╝╚══════╝╚═╝  ╚═╝╚═╝  ╚═╝      ╚═╝     ╚═╝ ╚═════╝╚═╝

Give any AI agent — Claude, GPT, or your own — full programmatic access to Coursera. Enroll in courses, speedrun lectures, solve quizzes, submit assignments, earn certificates, and push them to LinkedIn. All from a single MCP server.


Highlights

Feature How
🚀 Speedrun entire courses speedrun_course completes lectures, quizzes, discussions, and graded exams in one call
🔓 Freemium bypass Auto-detects enrolledViaFreemiumAt restrictions and re-enrolls without the flag
🧠 Solve quizzes via GraphQL Elimination-learning solver: submits, learns from feedback, retries until passing
📝 Submit everything Written, peer review, discussion prompts, programming assignments — all automated
📊 Full analytics Learner stats, XP, streaks, goals, module progress, detailed grades, timelines
🔗 LinkedIn integration Auto-add certificates to your profile with duplicate detection
🕷️ Scrapling scraping Adaptive parser (1775× faster than BeautifulSoup) + JS rendering
🛡️ Stealth browser rebrowser-puppeteer + fingerprint injection defeats Cloudflare/bot detection
🔑 Cookie-based auth No passwords stored — session cookies via Cookie-Editor
📓 Obsidian export Summarize courses into structured study notes and write directly to your Obsidian vault

Prerequisites

1. Install Cookie-Editor

All authentication uses browser session cookies. Install Cookie-Editor to export them:

Browser Install
<img src="https://img.shields.io/badge/Chrome-4285F4?style=flat-square&logo=googlechrome&logoColor=white"> Chrome Web Store
<img src="https://img.shields.io/badge/Firefox-FF7139?style=flat-square&logo=firefoxbrowser&logoColor=white"> Firefox Add-ons
<img src="https://img.shields.io/badge/Edge-0078D7?style=flat-square&logo=microsoftedge&logoColor=white"> Edge Add-ons

2. Export Coursera Cookies

  1. Log into coursera.org
  2. Click Cookie-Editor icon → Export → copy CAUTH and CSRF3-Token values
  3. Paste into .env (see Setup)

3. Export LinkedIn Cookies (optional)

  1. Log into linkedin.com
  2. Click Cookie-Editor icon → Export → copy li_at and JSESSIONID values
  3. Paste into .env

Setup

git clone https://github.com/VoidChecksum/coursera-mcp.git
cd coursera-mcp

uv venv .venv
uv pip install -p .venv/bin/python mcp curl_cffi skipera requests "scrapling[fetchers]"
.venv/bin/scrapling install

npm install rebrowser-puppeteer puppeteer-extra puppeteer-extra-plugin-stealth \
            fingerprint-generator fingerprint-injector

cp .env.example .env
chmod 600 .env

.env format

COURSERA_CAUTH=<paste CAUTH cookie value>
COURSERA_CSRF3=<paste CSRF3-Token cookie value>

LINKEDIN_LI_AT=<paste li_at cookie value>
LINKEDIN_JSESSIONID=<paste JSESSIONID value, without quotes>

[!NOTE] When Coursera or LinkedIn logs you out, re-export cookies with Cookie-Editor and update .env.


Connect to Your AI Client

<details> <summary><b>Claude Desktop / Claude Code</b></summary>

Add to your MCP config (claude_desktop_config.json or via CLI):

{
  "mcpServers": {
    "coursera": {
      "command": "/path/to/coursera-mcp/run.sh"
    }
  }
}

Or via CLI:

claude mcp add coursera /path/to/coursera-mcp/run.sh

</details>

<details> <summary><b>Other MCP Clients</b></summary>

Any MCP-compatible client that supports stdio transport works. Point it at run.sh which loads .env and starts the server.

</details>


Tools (87)

Course Discovery & Enrollment

Tool Description
whoami Verify session, return user ID
my_courses List enrolled courses (name, slug, role)
search Search Coursera catalog via GraphQL
course_details Full course metadata by slug
enroll_course Enroll in a course, auto-bypassing freemium restrictions
unenroll_course Delete course enrollment
batch_enroll Enroll in multiple courses at once with freemium bypass
reset_course_deadlines Reset/extend deadlines to unlock expired submissions

Speedrunning

Tool Description
speedrun_course Complete an entire course in one call: freemium bypass → lectures → quizzes → discussions → graded exams with elimination learning
speedrun_all Speedrun every enrolled course, skipping 100% courses
complete_course_lectures Mark all lectures, readings, widgets, and labs as completed in parallel

Progress, Grades & Certificates

Tool Description
get_course_grades Grades, outcomes, and passing state for all graded items
get_course_progress Overall progress % and per-item completion status
get_detailed_grades Full grade breakdown with item outcomes and assignment group grades
get_module_progress Per-module completion status (completed/in-progress/not-started)
get_home_progress Modules completed and modules passed counts
get_certificates All certificates with codes and verification URLs
get_certificate_details Certificate grade, grant date, verification URL, preview image
get_certificate_image Certificate preview image URL

Learner Analytics (Reverse-Engineered GraphQL)

Tool Description
get_learner_stats Total XP, items completed, learning minutes, active days, weekly stats
get_weekly_streaks Current and target weekly learning streaks
get_weekly_goals Day-by-day goal tracking and progress status
get_course_timeline Start/end dates, ahead/behind/overdue schedule status
get_profile User ID, full name, locale, timezone, profile photos
get_subscription_status Coursera Plus/trial/payment status and subscription details
check_product_ownership Enrollment type (freemium/paid/Plus), ownership status
send_learning_heartbeat Send learning time heartbeat (registers active time on a course item)
get_cohorts Social learning cohorts the user belongs to
get_item_deadlines Per-item content deadlines (more granular than session deadlines)

Skill & Career Intelligence

Tool Description
get_skill_xp Skill area XP breakdown per course (gained vs potential)
get_item_xp XP earned vs potential for a specific course item
get_learning_plan AI-generated personalized learning plan (role, skills, courses)
get_related_courses Related course recommendations
get_interested_careers User's interested career roles
get_career_roles Career role recommendations for a specialization
get_specialization_progress Progress across all courses in a specialization
get_course_info Course description, partners, instructors, workload, primary specialization

Quiz & Assessment (GraphQL — no browser)

Tool Description
get_quiz_questions_api Fetch questions + option IDs via GraphQL, handles START_NEW_ATTEMPT
submit_quiz_answers_api Submit answers, get instant grade + per-question feedback
get_quiz_state Check quiz attempt status, grade, and rate-limit info without starting
get_discussion_prompt Get discussion prompt content and metadata
submit_discussion_prompt_answer Post answer to discussion prompt

Content Extraction

Tool Description
get_video_transcript Clean text transcript of any lecture video (VTT dedup)
get_supplement_content Clean text of any reading/supplement
get_lecture_assets Downloadable slides, PDFs, and supplementary files
get_course_references Glossary and reference materials
get_instructor_notes Module-level instructor notes
get_learning_objectives Module learning objectives
get_user_notes Personal study notes for a course item
create_user_note Create study notes on lectures/readings with video timestamps

Course Structure & Navigation

Tool Description
course_materials Full course syllabus: modules, lessons, items
module_items Items in a specific module (lectures, quizzes, readings)
get_course_navigation Full navigation with deadline status per module
get_course_schedule Session deadlines per module and item
get_forum_structure Full forum hierarchy (IDs, types, descriptions)
get_specialization_info Specialization courses, partners, pricing
get_career_roles Career role recommendations for specializations
get_ai_grading_eligibility Check if AI peer review grading is available

Browser Automation (stealth Chromium)

Tool Description
get_quiz_attempt Start/resume quiz in browser, extract all questions
submit_quiz_attempt Answer quiz, sign honor code, submit
get_assignment_instructions Extract assignment instructions + form fields
submit_assignment Submit written/peer assignment (text + files)
get_workspace_url Get Jupyter/lab workspace URL
mark_item_completed Trigger completion by loading item page
get_forum_threads Extract discussion forum threads
post_forum_thread Post new thread in forums
get_peer_review_questions Get peer review criteria + rubrics
submit_peer_review_evaluation Submit peer review grading
get_programming_assignment_instructions Get programming assignment schema
submit_programming_api Submit code to Coursera autograder

Scrapling (adaptive web scraping)

Tool Description
scrapling_api_fetch Fast API call via Scrapling (stealth httpx)
scrape_course_page Scrape authenticated pages with JS rendering (Playwright)
scrape_url General-purpose scraper with CSS selectors

LinkedIn Integration

Tool Description
get_linkedin_certifications Fetch existing certs on LinkedIn profile
add_certificate_to_linkedin Add cert to LinkedIn (auto-skips duplicates)
add_all_certificates_to_linkedin Batch-add all Coursera certs (dedup)

Study & Planning

Tool Description
course_content_digest Bundle a module's transcripts + readings into one study document
search_course_transcripts Full-text search across a course's lecture transcripts
learning_dashboard Progress %, certificate, and grade across all enrolled courses
get_upcoming_deadlines Session end dates across enrolled courses, soonest first
export_deadlines_ics Export deadlines as an importable .ics calendar
get_specialization Specialization details + its course list

Obsidian Integration

Tool Description
summarize_module Summarize a module's lectures and readings into concise study notes
summarize_course Summarize an entire course organized by module
export_course_to_obsidian Summarize + write to Obsidian vault with frontmatter, wiki-links, callouts, and tags
export_module_to_obsidian Export a single module to Obsidian
export_all_courses_to_obsidian Batch export all enrolled courses to Obsidian

Reverse Engineering

Several tools were built by intercepting live browser traffic and reverse-engineering Coursera's internal APIs:

Freemium Bypass — Coursera sets enrolledViaFreemiumAt on free enrollments, which causes all opencourse.v1 video-event and supplement-completion endpoints to return 403. The bypass deletes the enrollment via DELETE /api/openCourseMemberships.v1/{uid}~{courseId} (with an empty {} body — Akka backend requires it) and re-creates it via POST without the freemium flag.

GraphQL Gateway — 48+ operations captured from graphql-gateway, including GetLearnerStats, WeeklyStreaks_QueryWeeklyStreaks, GetLearnerWeeklyGoals, GetCourseBranchModuleProgressByCourse, GetLearnerCourseTimeline, GetMyCertificateByProduct, CourseNavigation, GetAiGradingEligibilityByCourse, CareerRolesQuery, and GetProductOwnership.

REST APIs — 61+ endpoints mapped from browser network traffic, including onDemandCourseViewGrades.v1, onDemandReferences.v1, onDemandLectureAssets.v1, onDemandInstructorNotes.v1, userNotes.v1, onDemandCourseForums.v1, onDemandLearningObjectives.v2, and subscriptions.v1.

Quiz Solver — Elimination-learning algorithm: submits first-option answers, gets per-question feedback marking options correct/incorrect, persists learned answers to ~/.skipera/gradedData/, and retries with improved answers until passing (≥70%). Handles START_NEW_ATTEMPT, rate limits, and MultipleChoiceReflectQuestion types.


Architecture

coursera-mcp/
├── server.py            Python MCP server — all 87 tools
├── automation.mjs       Stealth browser automation (Node.js)
├── run.sh               Launcher (loads .env, starts stdio)
├── .env                 Your cookies (gitignored)
├── .env.example         Template
└── .gitignore
┌──────────────────────────────────────────────────────────────────────┐
│              MCP Clients (Claude / GPT / Custom)                     │
├──────────────────────────────────────────────────────────────────────┤
│                server.py  ·  FastMCP stdio                           │
├─────────┬─────────┬──────────┬───────────┬──────────┬────────┬───────┤
│  REST   │ GraphQL │ Scrapling│  Browser  │ LinkedIn │ gRPC   │Obsidi-│
│  API    │ Gateway │          │  Stealth  │  Voyager │  API   │an API │
│         │         │          │ Puppeteer │ + Browser│        │       │
├─────────┴─────────┤          ├───────────┤          │        │       │
│  curl_cffi        │ Fetcher  │automation │automation│        │ REST  │
│  skipera          │ Dynamic  │   .mjs    │   .mjs   │        │:27123 │
│  requests         │ Fetcher  │ (Node.js) │ (Node.js)│        │       │
└───────────────────┴──────────┴───────────┴──────────┴────────┴───────┘

Security

No passwords stored Cookie-based auth only — session tokens from your browser
.env is gitignored Secrets never enter version control
No hardcoded credentials All secrets read from os.environ at runtime
No secret logging Cookies are never printed or logged to stdout/stderr
.env.example is safe Contains only empty placeholders

[!CAUTION] Never commit your .env file. If you accidentally expose cookies, log out of Coursera/LinkedIn immediately to invalidate them.


License

MIT


<p align="center"> <sub>Built for agents that learn faster than humans.</sub> </p>

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选