Skip to main content
Glama

moodle-mcp

Model Context Protocol Server für Moodle LMS — verbinde Hermes, Claude Code und OpenCode mit deinem Moodle. Rufe Aufgaben, Noten und Fristen ab, synchronisiere mit Obsidian und erhalte WhatsApp-Benachrichtigungen.

Python MCP Lizenz: MIT

ÜbersichtFunktionenSchnellstartKonfigurationAgenteneinrichtungWerkzeugeObsidian-Synchronisation


Übersicht

moodle-mcp verbindet die Moodle-Webdienste-API mit dem Model Context Protocol, sodass KI-Agenten als dein akademischer Assistent fungieren können. Es wurde für die Polibatam (Multi-Klassen-Filterung) entwickelt, funktioniert aber mit jeder Moodle-Instanz, die Webdienste aktiviert hat.

Abspaltung von loyaniu/moodle-mcp — erweitert von 22 auf 40 Werkzeuge mit Obsidian-Synchronisation, Material-Downloads, Abgabe-Werkzeugen, Kalenderintegration, gleichzeitigem Abruf und automatischer Semesterarchivierung.

[!TIPP] Funktioniert mit jedem Moodle LMS — setze einfach MOODLE_URL auf deine Instanz. Der Polibatam-Klassenfilter (MOODLE_MY_CLASS) ist optional.


Related MCP server: mcp-moodle

Funktionen

  • Aufgaben & Fristen — nach Klassenzeitslot gefiltert, nach Dringlichkeit sortiert, mit umsetzbaren Aufgabenlisten

  • Noten & Fortschritt — Kurs-Checks, Studienbelastung und Fortschrittsverfolgung

  • Kursinhalte & Suche — Abschnitte, Module, Materialien, Ankündigungen, aktuelle Aktivitäten

  • Obsidian-Synchronisation — Ein-Befehl-Export von Dashboards, Fristen und Kursnotizen (mit automatischer Semesterarchivierung)

  • Material-Downloads — Kursdateien und Aufgabenanhänge auflisten und herunterladen

  • Abgaben — Text einreichen, Status prüfen und Feedback lesen

  • Kalender — Bevorstehende Ereignisse, Erinnerungen erstellen (H-2), Aktivitäten als erledigt markieren

  • Agentenbereit — Einzelnes install-mcp.sh für Hermes, Claude Code und OpenCode


Schnellstart

Einzeilige Installation

curl -fsSL https://raw.githubusercontent.com/zuckdorsey/moodle-mcp/main/scripts/install-mcp.sh | bash

Erkennt automatisch installierte Agenten und konfiguriert jeden. Für einen Probelauf:

bash scripts/install-mcp.sh --dry-run

Überprüfung

# Hermes (profile: akademik)
hermes --profile akademik mcp test moodle
# → ✓ Connected  ✓ Tools discovered: 40

# Claude Code
claude mcp list

# Run tests
PYTHONPATH=src .venv/bin/python -m unittest discover -s tests -v

[!HINWEIS] Bei der Entwicklung die lokale Quelle PyPI vorziehen – der Launcher setzt PYTHONPATH automatisch auf src/.


Konfiguration

1. Moodle-Token holen

  1. Öffne https://<dein-moodle>/user/managetoken.php

  2. Suche die Zeile mit Moodle mobile web service unter Service

  3. Kopiere den Token

2. .env erstellen

cp .env.example .env
MOODLE_URL=https://your-moodle.example.com/webservice/rest/server.php
MOODLE_TOKEN=your_token_here

# Optional — Polibatam class-slot filter (e.g. Pagi C, Siang A)
MOODLE_MY_CLASS=Pagi C

# Optional — custom vault path
OBSIDIAN_VAULT_PATH=/home/you/Obsidian Vault

Variable

Erforderlich

Beschreibung

MOODLE_URL

ja

Moodle-REST-Endpunkt (.../webservice/rest/server.php)

MOODLE_TOKEN

ja

Mobile-Webdienst-Token

MOODLE_MY_CLASS

nein

Regex-Filter für Multi-Klassen-Aufgabentitel

OBSIDIAN_VAULT_PATH

nein

Vault-Stammverzeichnis (Standard: ~/Obsidian Vault)

3. Paket installieren

# with uv (recommended)
uv pip install -e .

# or pip
pip install -e .

[!WARNUNG] .env niemals committen – es enthält einen Token mit vollständigem API-Zugriff. Es ist bereits in .gitignore.


Agenteneinrichtung

Wähle deinen Agenten – alle verwenden denselben lokalen Launcher unter scripts/moodle_mcp_local_launch.py.

Hermes Agent (empfohlen)

bash scripts/install-mcp.sh --agent hermes --profile akademik

Manuell (~/.hermes/profiles/akademik/config.yaml):

mcp_servers:
  moodle:
    command: /home/you/Programming/Python/moodle-mcp/.venv/bin/python
    args: [/home/you/Programming/Python/moodle-mcp/scripts/moodle_mcp_local_launch.py]
    env:
      MOODLE_URL: ${MOODLE_URL}
      MOODLE_TOKEN: ${MOODLE_TOKEN}
      MOODLE_MY_CLASS: "Pagi C"
      OBSIDIAN_VAULT_PATH: "/home/you/Obsidian Vault"

Claude Code

bash scripts/install-mcp.sh --agent claude-code
# or manually
claude mcp add -s user moodle-mcp -- python3 /path/to/moodle-mcp/scripts/moodle_mcp_local_launch.py

Globales JSON (~/.claude/settings.json):

{
  "mcpServers": {
    "moodle-mcp": {
      "command": "python3",
      "args": ["/path/to/moodle-mcp/scripts/moodle_mcp_local_launch.py"],
      "env": {
        "MOODLE_URL": "https://your-moodle/webservice/rest/server.php",
        "MOODLE_TOKEN": "your_token_here"
      }
    }
  }
}

OpenCode

bash scripts/install-mcp.sh --agent opencode

~/.config/opencode/config.json:

{
  "mcp": {
    "moodle-mcp": {
      "command": "python3",
      "args": ["/path/to/moodle-mcp/scripts/moodle_mcp_local_launch.py"],
      "environment": {
        "MOODLE_URL": "https://your-moodle/webservice/rest/server.php",
        "MOODLE_TOKEN": "your_token_here"
      }
    }
  }
}

Claude Desktop / Cursor

Füge zu claude_desktop_config.json hinzu:

{
  "mcpServers": {
    "moodle-mcp": {
      "command": "uvx",
      "args": ["moodle-mcp"],
      "env": {
        "MOODLE_URL": "https://your-moodle/webservice/rest/server.php",
        "MOODLE_TOKEN": "your_token_here"
      }
    }
  }
}

Starte die Desktop-App neu – die Werkzeuge erscheinen im Auswahlmenü.


Werkzeuge

40 Werkzeuge in 7 Gruppen. Rufe sie beim Namen von einem verbundenen Agenten auf (z. B. "liste meine Moodle-Kurse auf"get_my_courses).

Werkzeug

Beschreibung

get_my_courses

Eingeschriebene Kurse

get_course_content

Abschnitte & Module für einen Kurs

search_course_materials

Suche über alle Materialien

get_course_announcements

Ankündigungen im News-Forum

get_recent_activity

Aktuelle Aktivitäten seit Zeitstempel

get_course_updates

Neue Materialien/Ankündigungen

Werkzeug

Beschreibung

get_assignments

Aufgaben (Klassenzeitslot gefiltert)

get_assignment_status

Abgabe- & Bewertungsstatus

get_upcoming_deadlines

Fristen nach Fälligkeitsdatum sortiert

get_overdue_assignments

Überfällige, nicht eingereichte

get_actionable_tasks

Priorisierte Dringlichkeitsliste

analyze_assignment

Status + Anforderungen + Materialien

extract_assignment_requirements

Leistungen & Kriterien

find_relevant_materials

Für Aufgabe relevante Inhalte

decompose_task

Teilaufgaben mit kritischem Pfad

create_implementation_plan

Zeitplan, Ressourcen, Meilensteine

submit_assignment_text

Textantwort einreichen

get_assignment_feedback

Feedback & Rubrikergebnisse

Werkzeug

Beschreibung

get_grades

Übersicht oder kursweise Details

get_course_progress

Fortschritt der Abschlussaktivitäten

get_course_health

Gesundheitscheck (Fortschritt + Noten + Überfälliges)

get_study_load

Aufgabenverteilung nach Woche

get_submission_status_detail

Detaillierte Abgabe- & Feedbackinformationen

Werkzeug

Beschreibung

get_upcoming_events

Bevorstehende Moodle-Ereignisse

create_calendar_event

H-2 Erinnerung erstellen

get_activity_completion

Abschlussstatus

mark_activity_complete

Aktivität als erledigt markieren

Werkzeug

Beschreibung

semester_dashboard

Kurse + Fristen + Noten

daily_briefing

Überfälliges, Heute, aktuelle Noten

weekly_review

Eingereicht, bewertet, überfällig, Fortschritt

ask_moodle

Natürlichsprachliche Weiterleitung

get_course_updates

Änderungserkennung in Kursen

Werkzeug

Beschreibung

sync_moodle_to_obsidian

Vollständige Vault-Synchronisation (Auto-Archiv bei Semesterwechsel)

export_deadlines_to_obsidian

Nur Fristen

export_course_outline

Kursübersicht als Notiz

list_course_material_files

Herunterladbare Dateien auflisten

download_course_materials

In Materials/ herunterladen

download_assignment_attachments

Aufgabendateien herunterladen

[!TIPP] Versuche: "was ist diese Woche fällig?"get_upcoming_deadlines, "analysiere Aufgaben Basis Daten"analyze_assignment, "synchronisiere mit Obsidian"sync_moodle_to_obsidian.


Obsidian-Synchronisation

Die Synchronisation erstellt Notizen unter Academic/Moodle in deinem Vault:

Obsidian Vault/Academic/
  Moodle/                    ← current semester (always up-to-date)
    .semester_courses.json   ← hidden state (course IDs)
    Dashboard.md
    Deadlines.md
    Grades.md
    Courses/
  Archive/
    Semester-2026-07/        ← auto-created on rollover
      Dashboard.md
      Courses/
      Archive-README.md

Automatische Semesterarchivierung wird ausgelöst, wenn sich >50 % der Kurs-IDs ändern (oder alle neu sind). Ein einzelner Kurswechsel wird ignoriert.

PYTHONPATH=src python - <<'PY'
from moodle_mcp import api
print(api.sync_moodle_to_obsidian())
PY

Sicherheitshinweise

[!VORSICHT] Dein Moodle-Token gewährt als dein Benutzer vollen API-Zugriff. Behandle ihn wie ein Passwort.

  • Tokens werden serverseitig geladen und nie an das Modell gesendet.

  • Setze MOODLE_URL / MOODLE_TOKEN als Umgebungsgeheimnisse in CI ein.

  • moodle.py verwendet browserähnlichen User-Agent + POST für Cloudflare-Kompatibilität.


Danksagungen

Abspaltung von loyaniu/moodle-mcp — Dank an alle ursprünglichen Mitwirkenden:

Mitwirkender

Rolle

Zhonglin Niu

Ursprünglicher Autor, Moodle-REST-Integration, Kernserver

Vitalii Liudvynskyi

Dashboard, Studienbelastung, Gesundheitschecks

Daniel Sticker

Kursinhalte & Suchkorrekturen

Lawrence Sinclair

Sicherheitsbewertungs-Badge

Ergänzungen in dieser Abspaltung

  • Obsidian-Synchronisation + automatische Semesterarchivierung

  • Material-Downloads & Aufgabenanhänge

  • Abgabe- & Feedback-Werkzeuge, Kalender & Abschluss

  • Polibatam-Klassenzeitslot-Filter (MOODLE_MY_CLASS)

  • Gleichzeitiger Abruf (~10× schnellere umsetzbare Aufgaben)

  • Universelles install-mcp.sh für Hermes / Claude Code / OpenCode

F
license - not found
-
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

View all related MCP servers

Related MCP Connectors

  • Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.

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

  • Connect any AI agent to 11+ social platforms: schedule, publish & track posts via hosted MCP.

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

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