Back to Directory/Developer Tools

Moodle Student MCP

Moodle MCP server for students. Read only access to courses, grades, due dates and announcements.

Developer ToolsTypeScriptv0.1.4

Moodle MCP for students

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.

Quick start

  1. In Moodle, open your profile menu, go to Preferences > User account > Security keys. Copy the key for Moodle mobile web service.
  2. Add this to your AI app's MCP config (for Claude Desktop that's 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"
      }
    }
  }
}
  1. Restart your AI app and ask something like "what's due this week?"

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.

What you can ask

  • "What's due in the next two weeks?"
  • "Is anything overdue?"
  • "What's my grade in each course, and what's in the gradebook for Networking?"
  • "Any new announcements?"
  • "Which assignments have I not submitted yet?"

Tools

All tools are read only.

ToolWhat it does
get_my_coursesYour current courses and their IDs
get_upcoming_due_datesEverything due in the next 60 days, soonest first
get_overduePast due items that still need action
get_assignmentsAssignments for a course with due dates and submission status
get_my_gradesCurrent grade for each course
get_course_grade_itemsEvery graded item in a course with mark and percentage
get_course_contentSections and activities for a course
get_announcementsRecent announcements

Privacy and security

  • Your key stays on your computer. It is only sent to your own school's Moodle address.
  • Nothing is sent to any other server by this project.
  • Every tool is marked read only. You can reset your key any time on the Security keys page.

Troubleshooting

MessageFix
Not signed inYour key expired or was reset. Copy the new one.
Access deniedYour school turned that feature off for students.
Web services not enabledYour school hasn't turned on the mobile web service.
Not foundCheck the course ID with get_my_courses.

Development

npm install
npm run build
npm test

Tests run against a fake Moodle server, so they need no account or network.

More free student MCP servers

All free, open source and read only where they touch your accounts. Browse the full list at brightspacemcp.com/more-mcps.

ServerWhat it does
Brightspace MCPD2L Brightspace for AI. Due dates with real submission status, grades, a target grade calculator and course files.
Canvas MCPRead-only Canvas LMS for AI. Due dates, missing work, grades and announcements.
Google Classroom MCPRead-only Google Classroom for AI. To-do, due dates, missing work and grades.
GPA Calculator MCPGPA, grade conversion and what-do-I-need-on-the-final math for AI. Works offline, no account.
Citations MCPAPA, MLA and Chicago citations from a DOI, an ISBN or typed details. No account.
Study Planner MCPExam study schedules, spaced repetition dates, pomodoro plans and assignment milestones. Works offline.
Paper Finder MCPSearch scholarly papers, find open access copies and related work through OpenAlex. No key needed.

License

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y moodle-student-mcp

Set up in your AI client

Merge 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.

json
{
  "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 reference

Package

moodle-student-mcpnpm

Compatible MCP Clients

Moodle 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.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.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.

Learn More