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 Moodle REST API. Supports course management, user enrollment, assignments, forums, quizzes, and file operations through natural language.