local_mcp¶
local_mcp es un plugin local de Moodle que habla el Model Context Protocol (MCP) sobre Streamable HTTP. Un asistente de IA como Claude, ChatGPT, Cursor o Grok se conecta como un usuario real de Moodle, con los mismos permisos que ese usuario ya tiene en la interfaz. Puede leer el sitio o montar cursos.
- Moodle: de 4.5 a 5.2 (
requires2024100700,supported405–502). Probado en 4.5 LTS y 5.2 con PHP 8.3 y PostgreSQL; el mismo código funciona en 5.0 y 5.1. - Licencia: GNU GPL v3 o posterior.
- Versión: 0.4.1 (2026110107), madurez beta. En desarrollo, probado en local con MCP Inspector.
- Autor: Sergio Comerón.
Aún no publicado
Descarga, código fuente y ficha en el directorio de Moodle: próximamente.
Qué hace¶
El endpoint es:
Acepta peticiones JSON-RPC 2.0 por POST y responde con JSON o con un cuerpo SSE de un solo mensaje.
Un cliente MCP se conecta a esa URL y llama a 34 tools:
- 21 de lectura
- General:
site_info,search_courses,get_course_structure,list_participants,list_activities,get_grades_summary,get_task_status. - Estudiante:
get_my_deadlines,get_my_grades,get_my_progress,get_assignment_details,get_forum_posts,get_calendar_events,search_course_content. - Profesor:
get_submissions_status,get_ungraded_work,get_quiz_results,get_inactive_students,get_activity_completion_report,get_course_logs_summary,get_forum_unanswered.
- General:
- 13 de escritura:
create_course,build_course,add_section,add_activity,create_quiz,add_quiz_questions,import_questions,update_activity,enrol_user,create_group,set_visibility,delete_activity,delete_section.
Con la escritura activada, un asistente puede añadir tareas con rúbrica, foros, URL, páginas, etiquetas, ficheros y cuestionarios; crear preguntas (opción múltiple, verdadero/falso, respuesta corta, numérica, emparejamiento, ensayo); importar GIFT o Moodle XML; y montar un curso entero desde un plan JSON en segundo plano, con simulación y deshaciendo los cambios si falla. Un profesor con edición puede llenar su propio curso; crear un curso nuevo requiere el permiso de Moodle moodle/course:create.
Seguridad en resumen¶
- Flujo OAuth 2.1 de código de autorización con PKCE S256 y registro dinámico de clientes (RFC 7591). Token de servicio web de Moodle como alternativa opcional.
- Alcances
read,writeyadmin. Tokens de acceso de vida corta; los de refresco rotan en cada uso; los tokens se pueden revocar. - Cada llamada a una tool queda en el registro de eventos de Moodle.
- Límite de peticiones por usuario y minuto (60 por defecto).
- La escritura viene desactivada (
allowwrite= 0). - Los borrados son simulaciones salvo que la llamada envíe
dryRun: falseyconfirm: true.
Más detalles en Seguridad y permisos.