Skip to main content
Glama

moodle-mcp

Servidor del Protocolo de Contexto de Modelo para Moodle LMS — conecta Hermes, Claude Code y OpenCode a tu Moodle. Obtén tareas, calificaciones y plazos, sincroniza con Obsidian y recibe alertas de WhatsApp.

Python MCP Licencia: MIT

ResumenCaracterísticasInicio rápidoConfiguraciónConfiguración del agenteHerramientasSincronización con Obsidian


Resumen

moodle-mcp conecta la API de Servicios Web de Moodle con el Protocolo de Contexto de Modelo, para que los agentes de IA puedan actuar como tu asistente académico. Fue construido para Polibatam (filtrado multiclase) pero funciona con cualquier instancia de Moodle que tenga Servicios Web habilitados.

Bifurcación de loyaniu/moodle-mcp — ampliado de 22 a 40 herramientas con sincronización con Obsidian, descargas de materiales, herramientas de entrega, integración de calendario, recuperación concurrente y archivado automático de semestre.

[!TIP] Funciona con cualquier Moodle LMS — solo apunta MOODLE_URL a tu instancia. El filtro de clase de Polibatam (MOODLE_MY_CLASS) es opcional.


Related MCP server: mcp-moodle

Características

  • Tareas y plazos — filtradas por franja horaria de clase, ordenadas por urgencia, con listas de tareas accionables

  • Calificaciones y progreso — comprobaciones de estado del curso, carga de estudio y seguimiento de finalización

  • Contenido del curso y búsqueda — secciones, módulos, materiales, anuncios, actividad reciente

  • Sincronización con Obsidian — exportación con un solo comando de paneles, plazos y notas del curso (con archivado automático de semestre)

  • Descargas de materiales — listar y descargar archivos del curso y adjuntos de tareas

  • Entregas — enviar texto, verificar estado y leer comentarios

  • Calendario — eventos próximos, crear recordatorios (H-2), marcar actividades como completadas

  • Listo para agentes — único install-mcp.sh para Hermes, Claude Code y OpenCode


Inicio rápido

Instalación en una línea

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

Detecta automáticamente los agentes instalados y configura cada uno. Para una simulación:

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

Verificar

# 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

[!NOTA] Prefiere fuente local en lugar de PyPI durante desarrollo — el lanzador establece PYTHONPATH en src/ automáticamente.


Configuración

1. Obtén tu token de Moodle

  1. Abre https://<tu-moodle>/user/managetoken.php

  2. Busca la fila con Servicio web móvil de Moodle en Servicio

  3. Copia el token

2. Crea .env

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

Requerido

Descripción

MOODLE_URL

Endpoint REST de Moodle (.../webservice/rest/server.php)

MOODLE_TOKEN

Token de servicio web móvil

MOODLE_MY_CLASS

no

Filtro regex para títulos de tareas multiclase

OBSIDIAN_VAULT_PATH

no

Raíz del vault (predeterminado: ~/Obsidian Vault)

3. Instala el paquete

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

# or pip
pip install -e .

[!ADVERTENCIA] Nunca subas .env — contiene un token con acceso completo a la API. Ya está en .gitignore.


Configuración del agente

Elige tu agente — todos usan el mismo lanzador local en scripts/moodle_mcp_local_launch.py.

Hermes Agent (recomendado)

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

Manual (~/.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

JSON global (~/.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

Añade a claude_desktop_config.json:

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

Reinicia la aplicación de escritorio — las herramientas aparecerán en el selector.


Herramientas

40 herramientas en 7 grupos. Llámalas por su nombre desde cualquier agente conectado (ej. "lista mis cursos de Moodle"get_my_courses).

Herramienta

Descripción

get_my_courses

Cursos en los que está inscrito

get_course_content

Secciones y módulos de un curso

search_course_materials

Buscar en todos los materiales

get_course_announcements

Anuncios del foro de noticias

get_recent_activity

Actividad reciente desde una fecha

get_course_updates

Nuevos materiales/anuncios

Herramienta

Descripción

get_assignments

Tareas (filtradas por franja horaria)

get_assignment_status

Estado de entrega y calificación

get_upcoming_deadlines

Plazos ordenados por fecha de entrega

get_overdue_assignments

Vencidas y no entregadas

get_actionable_tasks

Lista de urgencia priorizada

analyze_assignment

Estado + requisitos + materiales

extract_assignment_requirements

Entregables y criterios

find_relevant_materials

Contenido relevante para la tarea

decompose_task

Subtareas con ruta crítica

create_implementation_plan

Línea de tiempo, recursos, hitos

submit_assignment_text

Enviar respuesta de texto

get_assignment_feedback

Comentarios y resultados de rúbrica

Herramienta

Descripción

get_grades

Resumen o detalle por curso

get_course_progress

Progreso de finalización

get_course_health

Comprobación de salud (progreso + notas + vencidas)

get_study_load

Distribución de tareas por semana

get_submission_status_detail

Detalle de entrega y comentarios

Herramienta

Descripción

get_upcoming_events

Próximos eventos de Moodle

create_calendar_event

Crear recordatorio H-2

get_activity_completion

Estado de finalización

mark_activity_complete

Marcar actividad completada

Herramienta

Descripción

semester_dashboard

Cursos + plazos + calificaciones

daily_briefing

Vencidas, hoy, calificaciones recientes

weekly_review

Entregadas, calificadas, vencidas, progreso

ask_moodle

Enrutamiento en lenguaje natural

get_course_updates

Detección de cambios en el curso

Herramienta

Descripción

sync_moodle_to_obsidian

Sincronización completa del vault (archivado automático al cambiar de semestre)

export_deadlines_to_obsidian

Solo plazos

export_course_outline

Esquema del curso como nota

list_course_material_files

Listar archivos descargables

download_course_materials

Descargar en Materials/

download_assignment_attachments

Descargar archivos de tareas

[!TIP] Prueba: "¿qué tengo que entregar esta semana?"get_upcoming_deadlines, "analiza tarea base de datos"analyze_assignment, "sincroniza con Obsidian"sync_moodle_to_obsidian.


Sincronización con Obsidian

La sincronización crea notas en Academic/Moodle dentro de tu 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

Archivado automático de semestre se activa cuando >50% de los IDs de curso cambian (o todos son nuevos). Un intercambio de un solo curso se ignora.

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

Notas de seguridad

[!PRECAUCIÓN] Tu token de Moodle otorga acceso completo a la API como tu usuario. Trátalo como una contraseña.

  • Los tokens se cargan en el servidor y nunca se envían al modelo.

  • Inyecta MOODLE_URL / MOODLE_TOKEN como secretos de entorno en CI.

  • moodle.py utiliza un User-Agent similar al de un navegador + POST para compatibilidad con Cloudflare.


Agradecimientos

Bifurcación de loyaniu/moodle-mcp — crédito a todos los contribuyentes originales:

Contribuidor

Rol

Zhonglin Niu

Autor original, integración REST de Moodle, servidor central

Vitalii Liudvynskyi

Paneles, carga de estudio, comprobaciones de salud

Daniel Sticker

Contenido del curso y correcciones de búsqueda

Lawrence Sinclair

Insignia de evaluación de seguridad

Adiciones en esta bifurcación

  • Sincronización con Obsidian + archivado automático de semestre

  • Descargas de materiales y adjuntos de tareas

  • Herramientas de entrega y comentarios, calendario y finalización

  • Filtro de franja horaria de Polibatam (MOODLE_MY_CLASS)

  • Recuperación concurrente (~10× más rápido en tareas accionables)

  • Universal install-mcp.sh para 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