Moodle MCP Server
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 (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)
Related MCP server: mcp-moodle
Configuración
Copia
.env.examplea.envy ajusta valores:
MOODLE_BASE_URL=https://elearning.example.org
MOODLE_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
MOODLE_FORMAT=json
PORT=7410
LOG_LEVEL=infoInstala dependencias:
npm installArranca en modo desarrollo:
npm run devEl 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:
curl -X POST http://localhost:7410/mcp/tools -H "content-type: application/json" -d '{"tool":"list_courses","arguments":{"search":"prospectiva","limit":10}}'Buscar usuario por email:
curl -X POST http://localhost:7410/mcp/tools -H "content-type: application/json" -d '{"tool":"get_user_by_email","arguments":{"email":"alguien@org.org"}}'Matricular usuario:
curl -X POST http://localhost:7410/mcp/tools -H "content-type: application/json" -d '{"tool":"enroll_user","arguments":{"userid":123,"courseid":456,"roleid":5}}'Estructura
src/
index.ts # bootstrap Fastify
mcpServer.ts # registro y ruteo de tools/resources
moodleClient.ts # wrapper REST Moodle con backoff
config.ts # carga de env
utils/
validators.ts # esquemas Zod
error.ts # tipos/ayudantes de error
logging.ts # logger Pino
actions/ # handlers MCP
courses.ts
users.ts
enrollments.ts
assignments.ts
forums.ts
files.ts
quizzes.ts
schemas/ # (espacio para JSON Schemas si los separas)
test/
params.test.ts # tests de flatten/validación
mcp.json # manifest MCPNotas sobre Moodle REST
Endpoint:
{MOODLE_BASE_URL}/webservice/rest/server.phpParámetros obligatorios:
wstoken,wsfunction,moodlewsrestformatCodificación de arrays:
courseids[0]=123&courseids[1]=456(ya soportado porflattenParams).Errores: el cliente normaliza errores HTTP/REST y texto de Moodle.
Docker
docker build -t moodle-mcp .
docker run --env-file .env -p 7410:7410 moodle-mcpLicencia
MIT © 2025
This server cannot be deployed
Maintenance
Related MCP Connectors
Run the Geduk LMS from an AI assistant: courses, sessions, enrolments, users and catalogue.
Read and manage courses, members, orders, events, posts, and settings for Loopwise-powered sites.
PLATO (Pusan National University LMS) MCP server via Moodle Web Service API + ubboard scraping
LMS (learning management system): manage courses, SCORM/xAPI, learners, certificates and reports.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Moodle learning management systems through the REST API. Supports course management, user enrollment, assignment handling, and forum operations through natural language.23 npmMIT
- AlicenseAqualityCmaintenanceEnables AI assistants to interact with Moodle via web services, allowing tasks like listing courses, assignments, events, and downloading files.1037 PyPI4MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with Moodle LMS via the Moodle REST API, supporting management of courses, users, enrollments, grades, and content.GPL 3.0
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to query and manage Moodle LMS data, including assignment deadlines, unread messages, unfinished quizzes, and enrolled courses, using natural language via OpenAI or local LLMs.-