Skip to main content
Glama

moodle-mcp-server — KI-gestützte LMS-Analysen

Stellen Sie Ihrer Moodle-Instanz jede Frage. Erhalten Sie innerhalb von Sekunden strukturierte Antworten.

moodle-mcp-server ist ein quelloffener MCP (Model Context Protocol)-Server, der KI-Agenten direkt mit der Web-Services-API von Moodle verbindet. Es ist der Moodle-Connector hinter der breiteren Arbeit von CSMediaPro am Agentic Query Layer (AQL).

Statt Report-Builder zu erlernen, SQL zu schreiben oder CSVs zu exportieren, stellen Sie Ihre Fragen in einfachem Englisch – der KI-Agent fragt Ihr LMS ab und gibt strukturierte Daten zurück.

Projektseite: https://csmediapro.com/products/moodle-mcp-server npm-Paket: https://www.npmjs.com/package/moodle-mcp-server-aql MCP-Registry: io.github.csmediapro/moodle-mcp-server-aql


Funktionen

  • Kernabfragetools — Kurskatalog, Benutzereinschreibung, Aufgaben, Kategorienavigation, Standortmetadaten, Benutzersuche und Cache-Verwaltung

  • Premium-Reporting-Plugins — optionale Tools wie Kursabschlussberichte und letzte Aktivitäten können über die Plugin-Laufzeitumgebung angebunden werden

  • LLM-unabhängig — funktioniert mit Claude, GPT, Gemini, Ollama oder jedem MCP-kompatiblen KI-Client

  • Keine LMS-Modifikation — nutzt die bestehende Web-Services-API von Moodle, keine Plugin-Installation erforderlich

  • Compliance-gerechte Datenverarbeitung — sichere, effiziente Datenverarbeitung mit Datenschutz durch Design

  • Nur Lesezugriff — modifiziert niemals Moodle-Daten, sicher für den Produktivbetrieb

  • Plugin-erweiterbar — legen Sie neue Tool-Module in ein Verzeichnis; Tools und optionale Agent-Routing-Hinweise registrieren sich automatisch zur Laufzeit


Related MCP server: Moodle MCP Server

Schnellstart

Voraussetzungen

  • Node.js 20+

  • Eine Moodle-Instanz mit aktivierten Web-Services

  • Ein Moodle-API-Token (Site-Administration → Plugins → Web-Services → Token verwalten)

Verwendung mit einem MCP-Client

Die meisten Benutzer starten den Server über einen MCP-Client wie Claude Desktop:

{
  "mcpServers": {
    "moodle-mcp-server-aql": {
      "command": "npx",
      "args": ["-y", "moodle-mcp-server-aql"],
      "env": {
        "MOODLE_URL": "https://your-moodle-instance.example",
        "MOODLE_TOKEN": "your-moodle-web-services-token"
      }
    }
  }
}

Einrichtung aus dem Quellcode

# Clone the repo
git clone https://github.com/csmediapro/moodle-mcp-server
cd moodle-mcp-server

# Install dependencies
npm install

# Configure
cp packages/server/.env.example packages/server/.env
# Edit .env: add your MOODLE_URL and MOODLE_TOKEN

# Run (stdio mode)
npm run server:build
node packages/server/dist/index.js

Benutzerfeld-Schema

Die Anzeigeeinstellungen für Benutzerfelder werden pro Moodle-Instanz generiert und lokal unter packages/server/data/user-field-schema.json gespeichert. Diese Datei wird absichtlich von git ignoriert, da sie standortspezifische benutzerdefinierte Profilfelder enthalten kann.

Nachdem Sie eine Verbindung zu einer Moodle-Site hergestellt haben, führen Sie einmalig das Tool refresh_user_field_schema aus, um verfügbare Standard- und benutzerdefinierte Benutzerfelder zu ermitteln. Eine minimale Beispielstruktur finden Sie unter packages/server/data/user-field-schema.example.json.

Das Plugin user-directory speichert einen normalisierten Vollbenutzer-Cache mit benutzerdefinierten Profilfeldern, die auf oberster Ebene als Schlüssel wie school abgeflacht sind. Sobald dieser Cache existiert, kann list_users zwischengespeicherte Benutzer im Speicher filtern, und summarize_user_directory_field kann zwischengespeicherte eindeutige Werte und Zählungen zurückgeben. Beispielsweise fasst die Abfrage „einzigartige Schulen anzeigen“ oder „Schulen und Anzahl der ihnen zugeordneten Benutzer anzeigen“ das zwischengespeicherte school-Feld zusammen, ohne einen weiteren Moodle-Abruf.

Konfigurationsidentität

Der Kern besitzt zwei verschiedene Server-Identitätsfelder:

  • server.id — stabile Maschinenidentität, z. B. mcp_8f3k2q9x

  • server.name — menschenlesbares Anzeigelabel

Fehlt server.id, generiert der Kern eine einmalige ID und speichert sie in der aufgelösten Konfigurationsdatei, bevor der Start fortgesetzt wird.

Umgebungsüberschreibungen:

  • MOODLE_MCP_CONFIG oder MOODLE_MCP_SERVER_CONFIG — wählt den Konfigurationsdateipfad

  • SERVER_ID — explizite Überschreibung von server.id

  • SERVER_NAME — explizite Überschreibung von server.name

  • SERVER_VERSION — explizite Überschreibung von server.version

Fehlt server.id und der aufgelöste Konfigurationspfad ist nicht beschreibbar, schlägt der Start absichtlich fehl.

Verwendung des Referenz-Clients

# From the project root
cp packages/client/.env.example packages/client/.env
npm run client:dev
# Open http://localhost:3000

Der Client erkennt Ihre Moodle-Instanz automatisch und zeigt eine Chat-Oberfläche an, in der Sie Ihre Fragen in einfachem Englisch stellen können.


Verbinden eines LLM

moodle-mcp-server benötigt ein KI-Modell, um die natürlichsprachliche Schnittstelle zu betreiben. Sie bringen das Modell mit – der moodle-mcp-server-Kern und der Referenz-Client unterstützen jeden MCP-kompatiblen Anbieter.

Option 1: Lokal ausführen (Empfohlen für Geschwindigkeit & Datenschutz)

Die Ausführung eines lokalen Modells hält alle Daten auf Ihrer eigenen Hardware – nichts verlässt Ihr Netzwerk. Moderne quantisierte Modelle laufen gut auf handelsüblichen GPUs und sogar auf reinen CPU-Systemen.

Leistung: Ein quantisiertes 24B-Modell auf einer einzelnen RTX 3090 liefert nach der ersten Abfrage Antworten in etwa 1,5 Sekunden – schneller als die meisten Cloud-APIs, sobald das System initialisiert ist.

Über Ollama (am einfachsten)

# Install Ollama: https://ollama.com
ollama pull gemma3:12b      # Fast, reliable tool use (~200ms TTFT)
ollama pull qwen3:14b       # Strong reasoning, good for complex queries
ollama pull deepseek-r1:14b # Excellent at multi-step chains

Richten Sie dann den Referenz-Client auf http://localhost:11434 (Ollamas Standard).

Über llama.cpp (maximale Kontrolle)

# Download a GGUF model (example: Devstral 24B Q4)
# Run the llama.cpp server:
llama-server -m devstral-24b-Q4_K_M.gguf --ctx-size 60000 --port 8080

Richten Sie den Referenz-Client auf http://localhost:8080/v1.

Empfohlene lokale Modelle

Modell

Größe

Am besten geeignet für

Hardware

Gemma 3 12B

~7 GB VRAM

Schnelle Toolaufrufe, einfache Abfragen

Einzelne Consumer-GPU

Qwen 3 14B

~8,5 GB VRAM

Komplexe Schlussfolgerungen, Multi-Tool-Ketten

Einzelne Consumer-GPU

Devstral 24B Q4

~14,5 GB VRAM

Maximale Leistungsfähigkeit, 60K Kontext

RTX 3090 / 4090

Option 2: Cloud-Anbieter

Anthropic (Claude):

export ANTHROPIC_API_KEY=sk-ant-...

Wählen Sie im Auswahlmenü für den Anbieter des Referenz-Clients „Anthropic“ aus. Claude Sonnet bietet das zuverlässigste Tool-Calling-Verhalten.

OpenAI (GPT):

export OPENAI_API_KEY=sk-...

Wählen Sie im Auswahlmenü für den Anbieter „OpenAI“ aus. GPT-4o arbeitet gut mit strukturierten Abfragen.

Ollama Cloud: Verwendet dieselbe API wie lokales Ollama, gehostet unter https://ollama.com/v1. Guter Mittelweg – schneller als lokale Kaltstarts, privater als große Cloud-Anbieter.

Option 3: Claude Desktop (Direktes MCP)

Claude Desktop verbindet sich direkt über stdio mit dem moodle-mcp-server-Kern – kein Referenz-Client erforderlich.

Fügen Sie Ihrer Claude Desktop-Konfiguration (claude_desktop_config.json) hinzu:

{
  "mcpServers": {
    "moodle-mcp-server": {
      "command": "node",
      "args": ["/path/to/moodle-mcp-server/packages/server/dist/index.js"],
      "env": {
        "MOODLE_URL": "https://your-moodle-instance.com",
        "MOODLE_TOKEN": "your-api-token"
      }
    }
  }
}

Starten Sie Claude Desktop neu. Die Tools des Servers erscheinen in Claudes Werkzeugliste – stellen Sie direkt Fragen.


Tools

Kerntools (kostenlos, quelloffen — AGPL)

Tool

Beschreibung

list_courses

Vollständiger Kurskatalog mit Kategorie-Drilldown

get_course

Detailansicht für jeden Kurs

list_course_users

Eingeschriebene Benutzer mit Rollen und Zugriffsdaten (unterstützt jetzt Kurssuche mit interaktiver Auswahl)

list_assignments

Alle Aufgaben mit Fälligkeitsdaten

list_categories

Vollständige Hierarchie mit exakter Elternauflösung

get_site_info

Instanzübersicht — Standortname, Version, Kursanzahl

get_user

Detailansicht für einen Moodle-Benutzer

list_user_courses

Kurse für einen bestimmten Benutzer

search_users

Benutzersuche nach standardmäßigen Moodle-Identitätsfeldern

search_courses_by_name

Suche nach Kursen anhand des Namens mit teilweiser Übereinstimmung und interaktiver Auswahl

Premium-Plugins (separat erhältlich)

  • Advanced Reporting — Notenbücher, kursübergreifender Vergleich, benutzerdefinierter Report-Builder

  • User Analytics — Fortschrittsverfolgung, Engagement-Scoring, Risikokennzeichen

  • User Directory — zwischengespeichertes Benutzerverzeichnis und strukturierte Filterung über Standard- und benutzerdefinierte Profilfelder

  • Compliance Pack — Zertifizierungsverfolgung, Ablaufwarnungen, Prüfberichtsexporte


Architektur

User (plain English question)
    │
    ▼
AI Agent (Claude / GPT / Gemini / Ollama / local)
    │
    ▼  MCP Protocol
`moodle-mcp-server`
    ├── Tool Registry (core + plugins)
    ├── Agent Runtime Config (core + plugin rules)
    ├── Optimized Data Layer (secure, efficient data handling)
    └── Moodle Client (REST API calls)
    │
    ▼
Moodle Web Services API

Transportmodi

  • Stdiodist/index.js — wird als Unterprozess ausgeführt, verwendet von Claude Desktop und ähnlichen Clients

Der OSS-Kern wird absichtlich nur mit stdio ausgeliefert. Jegliche netzwerkorientierte Hülle, Fernüberwachung oder Anbindung von Premium-Plugins gehört in einen separaten kommerziellen Node-Agenten oder eine Hülle.

Plugin-Dokumentation


Lizenz

AGPL v3 — siehe LICENSE.

Das bedeutet, Sie dürfen:

  • ✅ Den moodle-mcp-server-Kern kostenlos in jeder Umgebung nutzen

  • ✅ Den Quellcode für Ihre Bedürfnisse modifizieren

  • ✅ Abgeleitete Werke erstellen und verbreiten

Sie dürfen nicht:

  • ❌ Den moodle-mcp-server-Kern als quellgeschlossenes, konkurrierendes kommerzielles Produkt neu verpacken

  • ❌ Ihn als Netzwerkdienst anbieten, ohne Ihre Modifikationen zu teilen

Markenhinweis

Moodle ist eine Marke der Moodle Pty Ltd. moodle-mcp-server ist ein unabhängiges CSMediaPro-Projekt und steht in keiner Verbindung zu Moodle Pty Ltd oder dem Moodle-Projekt, wird weder von diesen unterstützt noch gesponsert oder offiziell mit ihnen verbunden. Der Name wird beschreibend verwendet, um die Kompatibilität mit dem Moodle LMS zu kennzeichnen.


Entwickelt von CSMediaPro

moodle-mcp-server wurde entwickelt und wird gewartet von CSMediaPro, einem Softwareentwicklungsunternehmen, das auf KI-Integration, Systemtechnik und Workflow-Automatisierung spezialisiert ist.

F
license - not found
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (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
    -
    quality
    D
    maintenance
    A powerful Model Context Protocol (MCP) server that seamlessly integrates AI assistants with Moodle Learning Management System. Enable your AI assistant to access courses, retrieve educational content, download resources, and search through your learning materials.
    14
    MIT
  • F
    license
    -
    quality
    B
    maintenance
    A Model Context Protocol (MCP) server that connects AI coding agents to your Moodle LMS. Fetch assignments, grades, deadlines, and sync everything to Obsidian automatically.

View all related MCP servers

Related MCP Connectors

  • Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer

  • An MCP server that integrates with Discord to provide AI-powered features.

  • An MCP server that gives your AI access to the source code and docs of all public github repos

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/csmediapro/moodle-mcp-server'

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