moodle-mcp
Connects to a Moodle student account via the official mobile API to view courses, pending activities, grades, course content and notices; download course materials; read and post in forums; and submit assignments.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
moodle-mcp
Servidor MCP que conecta Claude con tu cuenta de estudiante en Moodle. Con él le puedes preguntar a Claude por tus cursos, entregas pendientes, calificaciones y avisos, pedirle que descargue materiales, que publique en foros o que suba tus tareas.
Funciona con cualquier Moodle que tenga habilitada la app móvil, porque usa la misma API oficial que ella.
Cómo se usa
Le hablas a Claude como a cualquier persona. No necesitas saber IDs ni nombres de funciones: Claude busca solo el curso, el foro o la tarea de la que hablas.
Algunos ejemplos:
"¿Qué tengo pendiente esta semana?"
"¿Cómo voy en Estadística? Dame mis calificaciones por actividad."
"¿Ya entregué el reporte 3 de Marketing? ¿El profe dejó comentarios?"
"Descarga todo el material de Analítica Predictiva."
"¿Qué avisos ha publicado el profesor de Ética esta semana?"
"Resúmeme las instrucciones de la Entrega Unidad III."
"Publica en el foro de dudas de Finanzas un post con el asunto 'Duda sobre VPN' preguntando cómo se elige la tasa de descuento."
"Sube
C:\Users\yo\Documents\reporte.pdfa la tarea Reporte de lectura 4."
Por ejemplo, cuando le pides publicar en un foro, Claude:
Busca el curso entre tus cursos.
Busca el foro por su nombre y revisa si puedes publicar en él.
Redacta el asunto y el mensaje a partir de lo que le pediste.
Te muestra el texto exacto y espera tu aprobación.
Solo entonces lo publica.
Publicar en foros, responder y subir entregas son acciones que ven tus profesores y compañeros. Claude siempre te pide confirmación antes de hacerlas, pero lee bien lo que apruebas. Una entrega nuevareemplaza los archivos que ya hubieras subido a esa tarea.
Related MCP server: moodle-mcp
Instalación
Necesitas:
Python 3.10 o superior
Claude Code o Claude Desktop
Tu usuario y contraseña de Moodle, y la dirección de tu Moodle (p. ej.
https://mi.cugdl.udg.mx)
En los pasos se usa https://mi.cugdl.udg.mx (Moodle de CUGDL, UdeG) como ejemplo. Si tu escuela es otra, cámbiala por la dirección de tu Moodle.
Windows
Todos los comandos son para PowerShell (búscalo en el menú Inicio).
1. Instala Python. Descárgalo de python.org y, en el instalador, marca "Add python.exe to PATH". Comprueba que quedó instalado:
py --version2. Descarga el proyecto en tu carpeta de usuario:
cd $HOME
git clone https://github.com/ivxnwww/moodle-mcp.git
cd moodle-mcpSi no tienes git, en GitHub ve a Code → Download ZIP, descomprímelo en tu carpeta de usuario y cambia el nombre de la carpeta moodle-mcp-main a moodle-mcp.
3. Instala las dependencias:
py -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt4. Consigue tu token de Moodle y guárdalo. Cambia la dirección, el usuario y la contraseña:
$r = Invoke-RestMethod -Method Post -Uri "https://mi.cugdl.udg.mx/login/token.php" -Body @{
username = "TU_USUARIO"; password = "TU_CONTRASEÑA"; service = "moodle_mobile_app"
}
$rSi en la respuesta aparece un token, guárdalo:
$r.token | Set-Content -NoNewline "$HOME\.moodle_token"Si en cambio aparece un error, revisa Problemas comunes.
5. Prueba que funciona:
$env:MOODLE_URL = "https://mi.cugdl.udg.mx"
.venv\Scripts\python.exe -c "import server; print(server.info_usuario())"Debe mostrar tu nombre y el de tu escuela.
6. Conéctalo con Claude.
Claude Code:
claude mcp add --scope user moodle -e MOODLE_URL=https://mi.cugdl.udg.mx -- "$HOME\moodle-mcp\.venv\Scripts\python.exe" "$HOME\moodle-mcp\server.py"Claude Desktop: abre Configuración → Desarrollador → Editar configuración (el archivo es
%APPDATA%\Claude\claude_desktop_config.json) y agrega esto. CambiaTU_USUARIO_DE_WINDOWSy usa/en las rutas:{ "mcpServers": { "moodle": { "command": "C:/Users/TU_USUARIO_DE_WINDOWS/moodle-mcp/.venv/Scripts/python.exe", "args": ["C:/Users/TU_USUARIO_DE_WINDOWS/moodle-mcp/server.py"], "env": { "MOODLE_URL": "https://mi.cugdl.udg.mx" } } } }
7. Reinicia Claude y pregúntale "¿qué tengo pendiente esta semana?".
macOS
Todos los comandos son para la app Terminal.
1. Instala Python. Comprueba qué versión tienes:
python3 --versionSi dice 3.9 o menos, o no lo encuentra, instala la versión más reciente desde python.org o con Homebrew (brew install python).
2. Descarga el proyecto en tu carpeta de usuario:
cd ~
git clone https://github.com/ivxnwww/moodle-mcp.git
cd moodle-mcpSi macOS te pide instalar las herramientas de desarrollo para usar git, acepta. También puedes ir a Code → Download ZIP en GitHub, descomprimirlo en tu carpeta de usuario y cambiar el nombre de la carpeta moodle-mcp-main a moodle-mcp.
3. Instala las dependencias:
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt4. Consigue tu token de Moodle. Cambia la dirección, el usuario y la contraseña:
curl -s -X POST https://mi.cugdl.udg.mx/login/token.php \
--data-urlencode "username=TU_USUARIO" \
--data-urlencode "password=TU_CONTRASEÑA" \
--data-urlencode "service=moodle_mobile_app"Si la respuesta trae un "token", copia el valor (sin comillas) y guárdalo:
echo "PEGA_AQUI_TU_TOKEN" > ~/.moodle_token
chmod 600 ~/.moodle_tokenSi en cambio aparece un "error", revisa Problemas comunes.
5. Prueba que funciona:
MOODLE_URL=https://mi.cugdl.udg.mx .venv/bin/python -c "import server; print(server.info_usuario())"Debe mostrar tu nombre y el de tu escuela.
6. Conéctalo con Claude.
Claude Code:
claude mcp add --scope user moodle -e MOODLE_URL=https://mi.cugdl.udg.mx -- "$HOME/moodle-mcp/.venv/bin/python" "$HOME/moodle-mcp/server.py"Claude Desktop: abre Configuración → Desarrollador → Editar configuración (el archivo es
~/Library/Application Support/Claude/claude_desktop_config.json) y agrega esto. CambiaTU_USUARIO_DE_MAC(lo ves conwhoami):{ "mcpServers": { "moodle": { "command": "/Users/TU_USUARIO_DE_MAC/moodle-mcp/.venv/bin/python", "args": ["/Users/TU_USUARIO_DE_MAC/moodle-mcp/server.py"], "env": { "MOODLE_URL": "https://mi.cugdl.udg.mx" } } } }
7. Reinicia Claude y pregúntale "¿qué tengo pendiente esta semana?".
El token da acceso completo a tu cuenta de Moodle. No lo compartas ni lo subas a ningún repositorio. Si crees que alguien lo vio, cambia tu contraseña de Moodle y genera uno nuevo.
Problemas comunes
Mensaje | Qué significa | Qué hacer |
| Usuario o contraseña incorrectos | Revisa que sean los mismos con los que entras a Moodle |
| Tu escuela no tiene habilitada la app móvil | No hay solución desde tu lado; pregunta a soporte de tu escuela |
| No configuraste la dirección de tu Moodle | Agrega |
| No existe | Repite el paso 4 |
| El token expiró o se revocó | Repite el paso 4 para sacar uno nuevo |
Claude no ve las herramientas | Claude no ha recargado la configuración | Cierra y abre Claude por completo |
Si entras a Moodle con Google, Microsoft u otro inicio de sesión único, el paso 4 no funciona porque no tienes contraseña de Moodle. Busca tu token en Moodle, en Preferencias → Claves de seguridad, si tu escuela lo permite.
Configuración
Variable | Obligatoria | Qué es |
| Sí | Dirección de tu Moodle, p. ej. |
| No | Token; si no está, se lee de |
| No | Archivo con el token (por defecto |
| No | Carpeta de descargas (por defecto |
Herramientas
Referencia técnica de lo que Claude puede usar. No necesitas escribir estos nombres; Claude los elige según lo que le pidas.
Herramienta | Qué hace |
| Datos de la cuenta conectada y versión de Moodle |
| Cursos inscritos con ID y progreso |
| Actividades que vencen en los próximos días |
| Secciones, actividades y archivos de un curso |
| Tareas con fechas e instrucciones |
| Si se entregó, archivos enviados, calificación y comentarios |
| Resumen por curso o detalle por actividad |
| Últimas discusiones de los foros del curso |
| Descarga un archivo |
| Descarga todo el material de un curso, por sección |
| Foros del curso, con ID y si puedes publicar |
| Mensajes de una discusión, con su |
| Publica una discusión nueva |
| Publica una respuesta |
| Entrega una tarea (reemplaza los archivos previos) |
| Llama cualquier función de la API de Moodle |
Las herramientas en negritas hacen cambios visibles para otros.
Notas
Lo que puedes ver y hacer depende de los permisos que tu escuela dé a la app móvil. Si una función está desactivada, Moodle responde con un error y Claude te lo dirá.
Si el servidor de Moodle no responde, se reintenta hasta tres veces antes de fallar.
No es un proyecto oficial de Moodle. Úsalo de acuerdo con las reglas de tu institución.
Licencia
Related MCP Connectors
Connect Claude to your Platform7n workspaces: chat, links, work and decks. One-click OAuth.
Multiple Google accounts (Gmail, Calendar, Drive, Contacts, Tasks) in one Claude connector.
Multiple Google accounts (Gmail, Calendar, Drive, Contacts, Tasks) in one Claude connector.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceConnects Claude to Canvas LMS, enabling students to query their coursework, assignments, grades, deadlines, announcements, and calendar events through natural conversation instead of navigating the Canvas interface.8-
- AlicenseNot gradedqualityCmaintenanceProvides Claude with full access to Moodle learning management systems, enabling interaction with courses, files, assignments, grades, and calendar events. It also supports building Obsidian study vaults from course materials through automated knowledge graph creation.25 npm18MIT
- FlicenseNot gradedqualityDmaintenanceConnects Claude AI to your Canvas LMS account, enabling natural language interaction with coursework including assignments, grades, announcements, and calendar.-
- AlicenseNot gradedqualityDmaintenanceConnects Claude to Canvas LMS for managing coursework through natural language, including assignments, discussions, submissions, and course browsing.6 npm26MIT