moodle-mcp
Servidor MCP (Model Context Protocol) para exponer tools que permiten a un LLM interactuar con Moodle mediante su API REST.
Estado: baseline listo para producción ligera (TypeScript + Fastify). Incluye validación con Zod, logging con Pino, estructura de acciones y cliente REST con backoff.
Requisitos
Node.js 20+
Token de servicio en Moodle (REST)
URL base de Moodle (p. ej.
https://elearning.org
)
Configuración
Copia
.env.example
a.env
y ajusta valores:
Instala dependencias:
Arranca en modo desarrollo:
El servidor expone:
GET /health
→ okPOST /mcp/tools
→ invocar tools MCP con payload{ tool, arguments }
GET /mcp/resources/:type/:id
→ recursos cacheables (course, user, assignment)
Ejemplos de uso
Listar cursos:
Buscar usuario por email:
Matricular usuario:
Estructura
Notas sobre Moodle REST
Endpoint:
{MOODLE_BASE_URL}/webservice/rest/server.php
Parámetros obligatorios:
wstoken
,wsfunction
,moodlewsrestformat
Codificación de arrays:
courseids[0]=123&courseids[1]=456
(ya soportado porflattenParams
).Errores: el cliente normaliza errores HTTP/REST y texto de Moodle.
Docker
Licencia
MIT © 2025
This server cannot be installed
Enables interaction with Moodle learning management systems through the REST API. Supports course management, user enrollment, assignment handling, and forum operations through natural language.