
Moodle Mcp
io.github.G36maidPublished by GitHub account G36maidv0.2.1Updated Oct 24, 2026
Moodle LMS for LLM agents — courses, assignments, files, submissions in one static binary.
Overview
Moodle's local MCP server; no sign-in required; STDIO.
No AI overview yet: these facts come from the registry entry and the server itself.
Installation
In SourceWeft
- Open Moodle Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
[CI] [Codecov] [Release] [crates.io] [License: MIT] [Rust] [MCP] [Release]
English | 繁體中文 | 简体中文 | 日本語 | Español | Deutsch | Português | Français
A Model Context Protocol server that lets LLM agents use a real Moodle LMS — read courses, fetch assignment PDFs, write code, upload and submit — through a single static binary.
mcp-name: io.github.G36maid/moodle-mcp
Built in Rust on the official MCP SDK (rmcp).
Verified live against Moodle 3.7, 4.5 and 5.2; designed for 3.7 → 5.x.
✅ Why
A generic chatbot has no way into your Moodle, so every study task stays manual — five browser tabs to answer "what's due this week?", PDFs re-uploaded by hand, forums and grades copy-pasted one page at a time.
moodle-mcp signs the agent in as you. 20 typed tools cover the full student journey, and the agent chains them by itself — without ever opening a browser:
- Batteries included — document conversion, HTML → markdown, an auth CLI and an opt-in escape hatch in one binary: no plugins, no helper scripts, no second runtime
- Agent-native — tools take and return local file paths instead of base64; every result embeds the IDs for the next call; errors are plain-language and suggest the fix
- Safe by default — write tools confirm with you first, submissions stay drafts until you say so; quiz-taking is intentionally not provided
- Version-adaptive — verified against Moodle 3.7 and designed for 4.x/5.x; response differences between versions are absorbed automatically
- One static binary — no runtime dependencies
🚀 Quick start
Needs a Moodle 3.7 → 5.x account on a site that allows the mobile-app web service (most do — see prerequisites).
Or paste this into your agent and let it do every step (it will open
moodle-mcp auth in its terminal — type your school credentials there):
Prebuilt binaries, SSO login, config snippets for every client, and the full environment-variable reference: Installation · Getting Started · Configuration
💬 What the agent can do
All of these work with no further setup — the agent discovers the tools from their descriptions and chains them itself:
🔄 How the agent works
The tools mirror how you navigate Moodle — each level's output embeds the IDs for the next:
Everything the dedicated tools don't cover is reachable through the
call_ws_function + list_ws_functions escape hatch — full coverage of the
~350 functions a typical token can call (20 + 2 = 22 in total; the escape
hatch is opt-in via MOODLE_ENABLE_WS_FUNCTION=true).
📚 Documentation
Full documentation lives at moodle.ntnu.cc/docs (mdBook —
mdbook serve docs to read locally):
🧰 Development
Project documentation lives in docs/ — mdBook,
formatted with Prettier (see docs/README.md); preview with
mdbook serve docs.
The landing page lives in site/ — Astro 7 + TypeScript
(cd site && npm install && npm run dev, build with npm run build).
🔐 Security
Use HTTPS — the token travels with every request. It never appears in tool output or errors, is only injected into same-site Moodle URLs, and write tools confirm with you before they act. Full details: Security & Authentication.
📄 License
MIT — see LICENSE.
Source: README.md at commit 18bd177
Tools
0Version history
1- v0.2.1LatestOct 20, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts