Moodle MCP server for students. Read only access to courses, grades, due dates and announcements.
Ask your AI what's actually left to do in Moodle.
This is a free, open source MCP server. It lets Claude, ChatGPT, Cursor and other AI apps read your Moodle courses, due dates, grades and announcements. It is read only. It can never submit, edit or delete anything.
Works with Moodle sites that have the mobile web service turned on. Not affiliated with Moodle Pty Ltd.
Free forever. No sign up and no subscription. Your login details only ever go to your own school.
claude_desktop_config.json):{
"mcpServers": {
"moodle": {
"command": "npx",
"args": ["-y", "moodle-student-mcp"],
"env": {
"MOODLE_BASE_URL": "https://moodle.yourschool.edu",
"MOODLE_TOKEN": "paste-your-key-here"
}
}
}
}
To check your setup first, run npx moodle-student-mcp doctor with the two environment variables set.
If you can't find a Security keys page, your school has turned off the mobile web service, or signs you in through single sign on without exposing keys. In that case this server can't connect to your account.
All tools are read only.
| Tool | What it does |
|---|---|
get_my_courses | Your current courses and their IDs |
get_upcoming_due_dates | Everything due in the next 60 days, soonest first |
get_overdue | Past due items that still need action |
get_assignments | Assignments for a course with due dates and submission status |
get_my_grades | Current grade for each course |
get_course_grade_items | Every graded item in a course with mark and percentage |
get_course_content | Sections and activities for a course |
get_announcements | Recent announcements |
| Message | Fix |
|---|---|
| Not signed in | Your key expired or was reset. Copy the new one. |
| Access denied | Your school turned that feature off for students. |
| Web services not enabled | Your school hasn't turned on the mobile web service. |
| Not found | Check the course ID with get_my_courses. |
npm install
npm run build
npm test
Tests run against a fake Moodle server, so they need no account or network.
All free, open source and read only where they touch your accounts. Browse the full list at brightspacemcp.com/more-mcps.
| Server | What it does |
|---|---|
| Brightspace MCP | D2L Brightspace for AI. Due dates with real submission status, grades, a target grade calculator and course files. |
| Canvas MCP | Read-only Canvas LMS for AI. Due dates, missing work, grades and announcements. |
| Google Classroom MCP | Read-only Google Classroom for AI. To-do, due dates, missing work and grades. |
| GPA Calculator MCP | GPA, grade conversion and what-do-I-need-on-the-final math for AI. Works offline, no account. |
| Citations MCP | APA, MLA and Chicago citations from a DOI, an ISBN or typed details. No account. |
| Study Planner MCP | Exam study schedules, spaced repetition dates, pomodoro plans and assignment milestones. Works offline. |
| Paper Finder MCP | Search scholarly papers, find open access copies and related work through OpenAlex. No key needed. |
MIT
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y moodle-student-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-anonymousonyx22-moodle-student-mcp": {
"command": "npx",
"args": [
"-y",
"moodle-student-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceMoodle Student MCP works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.