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.