moodle-mcp
Provides Claude with full access to Moodle learning management systems, enabling interaction with courses, files, assignments, grades, and calendar events. It also supports building Obsidian study vaults from course materials through automated knowledge graph creation.
README
moodle-mcp
Give Claude full access to your Moodle — courses, files, assignments, grades, quizzes, calendar, and more. Build Obsidian study vaults from your lecture notes in one command.
13 tools · 5 prompts · MCP Resources
Quick Start
1. Install
npx moodle-mcp
Or install globally:
npm install -g moodle-mcp
2. Get your token → see below
3. Add to your MCP client
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on Mac, %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"moodle": {
"command": "npx",
"args": ["moodle-mcp"],
"env": {
"MOODLE_URL": "https://moodle.yourschool.edu",
"MOODLE_TOKEN": "your_token_here"
}
}
}
}
VS Code (add to .vscode/mcp.json):
{
"servers": {
"moodle": {
"command": "npx",
"args": ["moodle-mcp"],
"env": {
"MOODLE_URL": "https://moodle.yourschool.edu",
"MOODLE_TOKEN": "your_token_here"
}
}
}
}
Getting Your Token
Option A — Moodle profile page (works everywhere)
- Log in to your school's Moodle in a browser
- Go to Profile → Security keys (URL:
https://moodle.yourschool.edu/user/managetoken.php) - Find the Moodle mobile web service token and copy it
- Set
MOODLE_TOKEN=<token>in your MCP config
Option B — Username + password (not SSO schools)
If your school uses a regular username/password (not Microsoft/Google/SSO), you can skip the token step entirely:
"env": {
"MOODLE_URL": "https://moodle.yourschool.edu",
"MOODLE_USERNAME": "your_username",
"MOODLE_PASSWORD": "your_password"
}
⚠️ SSO schools: If your school login page redirects to Microsoft, Google, or another identity provider, Option B won't work. Use Option A or C.
Option C — Extract from Moodle mobile app (SSO schools)
- Install the Moodle app on your phone and log in with SSO
- Go to App settings → About
- Tap the version number 5 times to enable developer mode
- Go to Developer options → Copy token and copy it
- Use that token as
MOODLE_TOKENin Option A
Tools
| Tool | Description | Params |
|---|---|---|
moodle_get_site_info |
School name, Moodle version, which APIs are enabled | — |
moodle_list_courses |
All your enrolled courses | — |
moodle_get_course |
Sections and all activities in a course | courseId |
moodle_list_resources |
Files and links, grouped by course section | courseId |
moodle_list_assignments |
Assignments with due dates, grouped by section | courseId |
moodle_get_assignment |
Submission status and grade feedback | assignmentId |
moodle_get_grades |
Full grade report with categories and feedback | courseId |
moodle_get_calendar_events |
Upcoming events across courses | courseId?, daysAhead? |
moodle_list_quizzes |
Quizzes with time limits and open dates | courseId |
moodle_get_quiz_attempts |
Your past attempt grades and states | quizId |
moodle_list_forums |
Forum activities in a course | courseId |
moodle_get_forum_discussions |
Recent discussions in a forum | forumId |
moodle_get_notifications |
Recent notifications (grades, feedback, replies) | limit? |
Prompts
Use these in any MCP client that supports prompts (Claude Desktop, VS Code with Copilot, etc.):
| Prompt | Use case | Example |
|---|---|---|
summarize-course |
Full course overview organized by section | /summarize-course courseId=42 |
whats-due |
Prioritized due dates this week / next week | /whats-due or /whats-due courseId=42 |
build-study-notes |
Build a linked Obsidian vault from course materials | /build-study-notes courseId=42 vaultPath=~/obsidian/finals |
exam-prep |
Topic-by-topic study guide based on grades and quiz results | /exam-prep courseId=42 |
search-notes |
Natural language search across all course files | /search-notes courseId=42 query="derivatives and limits" |
Obsidian Finals Prep
Turn your entire semester into a linked knowledge graph in one command.
Setup
- Install Obsidian (free, works on Mac/Windows/Linux)
- Create a new vault, e.g.
~/obsidian/finals - Make sure
moodle-mcpis connected to your MCP client
Build the vault
Use the /build-study-notes prompt in Claude Desktop:
/build-study-notes courseId=42 vaultPath=~/obsidian/finals
Or paste this directly into Claude:
Pull my [Course Name] (course ID 42), read all the lecture notes and slides,
and build a linked Obsidian vault at ~/obsidian/finals — one note per topic,
with [[wikilinks]] between related concepts, a MOC.md index, and tags for each section.
Claude will:
- Pull all your course sections, files, assignments, and grades
- Read each PDF and document directly via the MCP resources protocol
- Write one
.mdfile per section with key concepts, definitions, and examples - Add
[[wikilinks]]between related terms across notes - Create a
MOC.md(Map of Content) index linking everything
See the graph
- Open the vault in Obsidian
- Click Graph View (sidebar icon or
Cmd+G) - Your entire course appears as a knowledge graph — linked concepts cluster together, isolated topics stand out as things to review
Natural language search
Once the vault is built, you can ask Claude to find specific content:
/search-notes courseId=42 query="the central limit theorem and when to use it"
Claude will look through all your course materials, find the relevant files, read them, and synthesize a direct answer.
Compatibility
Some tools require your Moodle admin to enable specific web services. Run moodle_get_site_info to see which tools are available on your school's Moodle.
| Tool | Required | Notes |
|---|---|---|
moodle_list_courses, moodle_get_course, moodle_list_resources |
Always available | Core Moodle WS |
moodle_list_assignments, moodle_get_assignment |
Admin must enable | mod_assign service |
moodle_get_grades |
Admin must enable | gradereport_user service |
moodle_get_calendar_events |
Usually available | core_calendar service |
moodle_list_quizzes, moodle_get_quiz_attempts |
Admin may need to enable | mod_quiz service |
moodle_get_forum_discussions |
Admin may need to enable | mod_forum service |
moodle_get_notifications |
Admin may need to enable | message_popup service |
If a tool isn't available, it returns a helpful message explaining what your admin needs to enable — it won't crash the server.
Contributing
Issues and PRs welcome. Open an issue first for large changes.
MIT License — © 2026 Alexandre Ribeiro
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。