Moodle-Plugin
Was das Plugin macht
local_mcpconnector ist die Moodle-Seite von MoodleMCP. Es verbindet Ihre Site über eine signierte API mit dem Panel, legt rollenbezogene Webservices an und macht aus Moodle-Token widerrufbare MCP-Schlüssel für die Personen Ihrer Wahl.
Es kommuniziert mit dem Panel und mit keinem anderen Dritten. Es benötigt ein MoodleMCP-Konto: Allein tut das Plugin nichts.
Installation
- Installieren Sie das Plugin über Website-Administration → Plugins → Plugins installieren (ZIP hochladen oder das Verzeichnis nach moodlewurzel/local/mcpconnector kopieren) und schließen Sie das Upgrade ab.
- Öffnen Sie Website-Administration → Plugins → Lokale Plugins → MCP Connector → Lizenz.
- Fügen Sie Panel-URL, Lizenzschlüssel, Panel-Geheimnis und die MCP-Endpunkt-URL ein, die Sie beim Verbinden Ihrer Site erhalten haben.
- Klicken Sie auf Lizenz prüfen. Eine grüne Bestätigung bedeutet, dass Signatur und Site-URL stimmen.
Was zu Moodle hinzukommt
| Bereich | Wofür |
|---|---|
| Lizenz | Panel-URL, Lizenzschlüssel, Signaturgeheimnis und MCP-Endpunkt. |
| Services | Die rollenbezogenen Webservice-Definitionen und ihre erlaubten Funktionen. |
| Nutzer | Person einem Service zuweisen oder entfernen — das stellt ihren Schlüssel aus oder widerruft ihn. |
| Schlüssel | Lebenszyklus je Person: sperren, aktivieren, widerrufen, neu erzeugen und per E-Mail senden sowie den Status mit dem Panel abgleichen. |
| Einstellungen | Automatische Synchronisierung je Rolle und Vorlage der Schlüssel-E-Mail. |
Nutzer bereitstellen
Weisen Sie unter Nutzer eine Person dem Service ihrer Rolle zu. Das Plugin erzeugt für sie ein Webservice-Token, sendet es an das Panel, und das Panel gibt einen MCP-Schlüssel zurück. Der Wert wird per E-Mail an die Person geschickt und nur einmal angezeigt: Moodle behält lediglich die letzten vier Zeichen und den Status.
Aktivieren Sie die automatische Synchronisierung einer Rolle, wenn alle Personen mit dieser Rolle automatisch bereitgestellt werden sollen.
Zugang widerrufen
Sperren oder Widerrufen eines Schlüssels im Plugin wird an das Panel weitergegeben, und der Schlüssel funktioniert beim nächsten Aufruf nicht mehr. Auch das Löschen der Moodle-Person widerruft ihn. Dasselbe geht im Panel unter Organisation → Moodle → MCP-Schlüssel — beide Ansichten gleichen sich ab.
Was an das Panel gesendet wird
Beim Bereitstellen sendet das Plugin den vollständigen Namen der Person, ihre effektiven Moodle-Rollen und das für sie erzeugte Webservice-Token; der Schlüssel geht an ihre E-Mail-Adresse. Das Panel speichert das Token verschlüsselt und den Schlüssel als Hash. Die Datenschutzeinstellungen des Plugins enthalten die maschinenlesbare Erklärung.
Webservice-Token und MCP-Schlüsselwerte werden nie in Moodle-Protokolle geschrieben. Schlüssel werden per E-Mail zugestellt — behandeln Sie diese Postfächer entsprechend.
Für Plugin-Entwickler
Alle Endpunkte zwischen Plugin und Panel sind signiert und je Lizenz ratenbegrenzt:
| Endpunkt | Zweck |
|---|---|
| POST /api/moodle/verify | Lizenz- und URL-Prüfung aus den Plugin-Einstellungen |
| POST /api/moodle/keys | Token registrieren → MCP-Schlüssel (Wert einmalig zurückgegeben) |
| POST /api/moodle/keys/list | Nur Metadaten (IDs, letzte 4, Status — nie Geheimnisse) |
| POST /api/moodle/keys/revoke | Widerrufen per Schlüssel-ID (idempotent und endgültig) |
| POST /api/moodle/keys/suspend | Sperren oder reaktivieren per Schlüssel-ID |
Die Signatur reist in einem Header:
x-panel-signature: t=<unix-sekunden>,v1=<hex hmac_sha256(panelGeheimnis, `${t}.${roherKörper}`)>
- Signiert wird der rohe Anfragekörper, mit einem Punkt an den Zeitstempel angefügt — jede Änderung am Körper macht die Signatur ungültig.
- Anfragen, die älter (oder neuer) als 300 Sekunden sind, werden abgewiesen; das schließt das Zeitfenster für Wiedereinspielungen.
- Eine unbekannte Lizenz und eine falsche Signatur liefern beide 403 invalid_credentials, damit die API nicht zum Aufzählen von Installationen taugt.
- Das Plugin sendet bei jeder Anfrage x-panel-version: 2, sodass sich das Protokoll weiterentwickeln kann, ohne ältere Installationen zu brechen.
Das Plugin steht unter GPL v3 oder neuer; Quellcode und Tickets liegen auf github.com/studiolxd/moodle-local_mcpconnector.