Skip to main content
Glama

FCPC LMS MCP-Server

Ein MCP-Server, der es einem KI-Assistenten ermöglicht, Fragen zum eigenen Moodle-Konto eines Studierenden zu beantworten – anstehende Aufgaben, ungelesene Nachrichten, ausstehende Tests und eingeschriebene Kurse.

Studierende verbinden sich über Claude im Web, auf dem Telefon oder auf dem Desktop, indem sie eine URL registrieren. Keine Softwareinstallation, keine manuell zu kopierenden Tokens.

Entwickelt für das First City Providential College, funktioniert aber mit jeder Moodle-Website, die Webservices aktiviert hat.

Was er beantworten kann

  • Wann deine Aufgaben fällig sind

  • Ungelesene Nachrichten von Lehrkräften und Mitschülern

  • Tests, die du noch nicht abgeschlossen hast

  • In welchen Kursen du eingeschrieben bist

"Do I have any new messages?"
"What is due this week?"

Related MCP server: Moodle MCP Server

Zwei Möglichkeiten, ihn auszuführen

Remote-Server

Lokaler Server

Für wen

Eine Klasse oder eine ganze Einrichtung

Eine Person, auf dem eigenen Rechner

Client

Claude (Web, iOS, Android, Desktop)

Jeder MCP-Client auf diesem Rechner

Einrichtung

Eine URL

Nichts, aber das Repo muss installiert sein

Anmeldung

OAuth, von Claude verwaltet

Ein Token in .env

Einstiegspunkt

remote_server.py

server.py

Die meisten Bereitstellungen wollen den Remote-Server.


Remote-Server (empfohlen)

Voraussetzungen

  • Python 3.11 oder neuer

  • cloudflared (brew install cloudflared) oder jede andere Möglichkeit, eine HTTPS-Adresse bereitzustellen

  • Ein Moodle-Konto auf der Website, das während der Einrichtung einmal verwendet wird, um die Website-Adresse zu speichern

Für den Administrator

  1. Führe setup.command (macOS) oder setup.bat (Windows) einmal aus und melde dich an. Dadurch wird deine Moodle-Website-Adresse in .env geschrieben.

  2. Führe start-server.command aus. Es gibt die URL aus, die du weitergeben kannst:

https://xxxx.trycloudflare.com/mcp

Das Schließen dieses Fensters stoppt den Server. Lasse es also offen, während der Dienst genutzt wird. Kostenlose trycloudflare.com-Adressen ändern sich bei jedem Neustart; verwende einen named tunnel für eine feste Adresse.

Für Studierende

  1. Öffne claude.ai in einem beliebigen Browser, auch auf dem Telefon.

  2. Gehe zu Einstellungen → Connectors → Benutzerdefinierten Connector hinzufügen.

  3. Gib ihm einen beliebigen Namen und füge die URL ein, die du erhalten hast.

  4. Claude öffnet die Moodle-Anmeldeseite. Melde dich mit deinem üblichen Moodle-Benutzernamen und -Passwort an.

Das ist die gesamte Einrichtung. Danach funktioniert es auch in den Claude-Mobil-Apps.

Connectors können nur hinzugefügt werden über die Claude-Website, aber ein Telefon-Browser funktioniert einwandfrei. Sobald sie hinzugefügt sind, werden sie mit den Apps synchronisiert.

So funktioniert die Anmeldung

Student's Claude ──HTTPS──▶ MCP server ──▶ Moodle
                 (OAuth)

Jeder Benutzer wird durch eine OAuth-Anmeldung identifiziert. Wenn sich ein Studierender anmeldet, wird sein Moodle-Token in das Zugriffstoken selbst verschlüsselt und an Claude zurückgegeben.

  • Der Server speichert keine Moodle-Tokens und keine Passwörter

  • Ein Passwort wird einmal verwendet, um ein Token zu erhalten, und dann verworfen

  • Ein Benutzer kann niemals die Daten eines anderen Benutzers sehen

.oauth_key (der Verschlüsselungsschlüssel) und .oauth_clients.json sind Geheimnisse. Beide sind von git ausgeschlossen. Das Löschen von .oauth_key meldet alle ab.


Lokaler Server

Zum Ausführen des MCP-Servers auf deinem eigenen Rechner über stdio.

  1. Führe setup.command / setup.bat aus, oder:

python -m venv venv
source venv/bin/activate          # macOS/Linux
.\venv\Scripts\activate           # Windows PowerShell
pip install -r requirements.txt
python setup_gui.py
  1. Richte deinen MCP-Client auf server.py aus. Zum Beispiel in der claude_desktop_config.json von Claude Desktop:

{
  "mcpServers": {
    "moodle": {
      "command": "/path/to/venv/bin/python",
      "args": ["/path/to/server.py"]
    }
  }
}

Um genau zu sehen, was die KI erhält:

python list_tools.py

Es gibt auch zwei eigenständige Chat-Clients, client.py (OpenAI) und client_localLLM.py (ollama). Beide nehmen das Server-Skript als Argument:

python client.py server.py

Tests

selftest.py prüft alles, was ohne Browser geprüft werden kann: die Moodle-Verbindung, beide Server, den OAuth-Ablauf bis zu einem echten Tool-Aufruf und dass Benutzer die Daten anderer nicht sehen können.

python selftest.py             # all checks
python selftest.py --offline   # skip anything needing the network

Es beendet sich mit 0, wenn alles bestanden ist, und gibt die verbleibenden manuellen Schritte aus: den Connector in Claude registrieren, sich anmelden, eine Frage stellen und dies auf einem Telefon wiederholen.

Führe es nach der Installation, nach Codeänderungen und auf dem Rechner aus, der den Server hosten wird.


Hinweise zu Moodle

Einige Moodle-Websites befinden sich hinter Cloudflare und lehnen normale HTTPS-Clients mit HTTP 403 ab. Anfragen laufen daher über curl_cffi mit einem Browser-TLS-Fingerabdruck. Deshalb kann der Server nicht etwa in Apps Script neu implementiert werden und sollte an einem Ort laufen, der einen normal aussehenden Netzwerkpfad hat.

Benutzer, die sich über SSO (Google und ähnliches) bei Moodle anmelden, können login/token.php nicht verwenden. decode_token.py deckt diesen Fall ab.

Dateien

Datei

Zweck

remote_server.py

Remote-MCP-Server mit OAuth, für Claude-Connectors

oauth_provider.py

OAuth-Autorisierungsserver; speichert keine Tokens

login_page.py

Die Moodle-Anmeldeseite, die Claude öffnet

server.py

Lokaler MCP-Server über stdio

moodle_client.py

Moodle-API-Client, ein Token pro Instanz

moodle_auth.py

Token-Abruf und .env-Verwaltung

setup_gui.py

Einrichtungsassistent

setup.command / setup.bat

Einrichtung per Doppelklick (macOS / Windows)

start-server.command

Remote-Server veröffentlichen (macOS)

selftest.py

Installation Ende-zu-Ende prüfen

list_tools.py

Die Tools ausgeben, die die KI sieht

get_token.py

Token von der Befehlszeile abrufen

decode_token.py

Token-Extraktion für SSO-Benutzer

client.py, client_localLLM.py

Eigenständige Chat-Clients

Danksagungen

Der MCP-Server selbst (server.py, client.py, client_localLLM.py) wurde geschrieben von Jiseong JEONG (@jeongjisung690). Ursprüngliches Repository: https://github.com/jeongjisung690/Moodle---MCP-server

Dieses Repository fügt hinzu:

  • Unterstützung für Moodle-Websites hinter Cloudflare

  • Automatischen Token-Abruf aus Benutzername und Passwort

  • Token-Extraktion für SSO-Benutzer

  • Einen Einrichtungsassistenten für nicht-technische Benutzer

  • Einen Remote-MCP-Server mit OAuth, sodass Studierende sich mit einer einzigen URL verbinden

Lizenz

Es wurde keine Lizenz festgelegt. Bitte kontaktiere die Autoren, bevor du diesen Code verwendest oder weiterverbreitest.

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Moodle learning management systems through the Moodle REST API. Supports course management, user enrollment, assignments, forums, quizzes, and file operations through natural language.
    14
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Moodle learning management systems through the REST API. Supports course management, user enrollment, assignment handling, and forum operations through natural language.
    14
    MIT

View all related MCP servers

Related MCP Connectors

  • Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…

  • Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.

  • Connect AI assistants to ITM Platform projects, tasks, budgets, risks, and team workload.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Ogaaawa/FCPC-lms-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server