MoodleMCP 1.0
v1.0.0
Eerste stabiele versie van MoodleMCP: het paneel, de gehoste MCP-server en de plug-in local_mcpconnector.
Protocol en authenticatie
- MCP-endpoint per organisatie op een eigen subdomein, via Streamable HTTP in stateless modus: inloggegevens worden bij elk verzoek gecontroleerd en een intrekking werkt vanaf de eerstvolgende aanroep.
- Twee authenticatiepaden: OAuth "Aanmelden met je Moodle" (standaard
discovery en token-aan-resource-binding, RFC 8707) voor ChatGPT en Claude,
en MCP-sleutels als bearer-token (
mcpk_…, alleen de hash wordt opgeslagen) voor Cursor, VS Code, Claude Code, scripts en CI.
Tools
- 13 gecureerde tools voor de gangbare flows en 3 gateway-meta-tools
(
moodle_find_tools,moodle_tool_schema,moodle_run_tool) die de overige 742 functies van de Moodle-webservicecatalogus bereiken. - Elke aanroep draait met het Moodle-token van de sleutelgebruiker en doorloopt diens rollencontrole; sleutels ondersteunen extra beperkingen — alleen-lezen, toegestane tools, toegestane cursussen en een vervaldatum.
- Bestandsuploads via URL met
local_mcpconnector_create_resourceenlocal_mcpconnector_create_scorm, plusmoodle_request_file_uploadvoor ondertekende tijdelijke overdrachten (30 minuten, tot 512 MiB).
Plug-in local_mcpconnector
- Installatie met licentiesleutel + paneelgeheim; elk plug-in↔paneel-verzoek is ondertekend met HMAC-SHA256 binnen een venster van ±5 minuten.
- Rolgebaseerde gebruikersprovisionering vanuit het Moodle-beheer, met sleutelbezorging per e-mail en centrale intrekking.
- Compatibel met Moodle 4.2 – 5.2.
Paneel
- Ingebouwde AI-chat (Anthropic, OpenAI of Google) met dezelfde toolcatalogus, expliciete goedkeuring van schrijfacties en verrekening in credits.
- Gebruiksoverzicht per sleutel, tool en bron; aanroepdetails worden na 90 dagen verwijderd, dagelijkse aggregaten blijven bewaard.
- Paneel en documentatie in zes talen: Spaans, Engels, Frans, Duits, Nederlands en Portugees.
Beveiliging en limieten
- Moodle-tokens in rust versleuteld met AES-256-GCM; verbindingen naar Moodle vastgepind tegen SSRF, met een time-out per verzoek en een groottelimiet voor streaming-antwoorden.
- Snelheidslimieten per sleutel en per IP, en schrijfacties per sleutel geserialiseerd via een wachtrij.