moodle-utn-mcp
Provides read-only tools for accessing a user's Moodle profile, courses, and course activities through a user-operated browser login to UTN Moodle instances.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@moodle-utn-mcpshow my courses"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
moodle-utn-mcp
Servidor MCP local por stdio para los orígenes aprobados de Moodle UTN https://tup.sied.utn.edu.ar y https://utnsannicolas.quinttos.com.
Ofrece dos modos de acceso:
Modo navegador: login visible en Quinttos y lectura de lo que Moodle renderiza para el usuario autenticado.
Modo REST (opcional): token personal en
.envpara listar materias, notas, contenidos y vencimientos sin abrir el navegador en cada consulta.
Alcance y seguridad
Los únicos destinos permitidos son
https://tup.sied.utn.edu.aryhttps://utnsannicolas.quinttos.com. El navegador bloquea cualquier otro origen.moodle_browser_loginabre Chromium visible en Quinttos. Las credenciales se ingresan solo en ese sitio; ninguna herramienta MCP acepta usuario ni contraseña.La sesión del navegador vive solo en memoria del proceso. No se guardan cookies, tokens, capturas ni credenciales en disco, logs, stdout ni en el repositorio.
El token REST se envía únicamente en el cuerpo POST a
/webservice/rest/server.php. Nunca se expone en URLs ni en las respuestas de las herramientas.Las lecturas son de solo lectura. La única operación que cambia estado local es
moodle_browser_logout(cierra el navegador y descarta la sesión en memoria).El archivo
.envestá en.gitignore. Nunca subas tu token a Git.
Reiniciar el MCP siempre exige un nuevo login manual en modo navegador. El modo REST reutiliza el token configurado en .env.
Related MCP server: Moodle Student MCP
Requisitos
Node.js 20 o superior
Playwright Chromium:
npx playwright install chromiumInstalación y verificación
npm install
npx playwright install chromium
npm test
npm run smokenpm run smoke ejecuta la sonda pública sin autenticación e imprime un reporte JSON.
Modo REST (recomendado)
Configurá un .env en la raíz del proyecto (copiá desde .env.example):
MOODLE_REST_ORIGIN=https://tup.sied.utn.edu.ar
MOODLE_REST_TOKEN=tu_token_aquiTambién se aceptan los nombres de MCP-TUPAD: MOODLE_URL y MOODLE_TOKEN.
Cómo obtener el token
No abras https://tup.sied.utn.edu.ar/login/token.php en el navegador: es una API, no una página.
En PowerShell, con tu DNI (no el email de Quinttos) y tu contraseña de Moodle:
$body = @{
username = "TU_DNI"
password = "TU_CONTRASENA_MOODLE"
service = "moodle_mobile_app"
}
Invoke-RestMethod -Uri "https://tup.sied.utn.edu.ar/login/token.php" -Method Post -Body $bodyLa respuesta { "token": "..." } va en .env como MOODLE_REST_TOKEN.
Verificá la conexión:
npm run probar-tokenDeberías ver tu listado de materias con sus IDs.
Ejecutar como servidor MCP
npm startEl servidor usa stdio. Configurá tu cliente MCP con:
{
"mcpServers": {
"moodle-utn": {
"command": "node",
"args": ["C:\\ruta\\absoluta\\a\\moodle-utn-mcp\\dist\\index.js"],
"cwd": "C:\\ruta\\absoluta\\a\\moodle-utn-mcp",
"type": "stdio"
}
}
}Después de cambiar .env, reiniciá el servidor MCP en Cursor u otro cliente.
Herramientas
Públicas
moodle_probe_capabilities
Sin parámetros. Informa identidad pública de Moodle, reachability de /login/index.php y recuerda usar el flujo de login local.
Modo REST (requiere .env)
moodle_rest_status
Sin parámetros. Indica si el modo REST está configurado (sin exponer el token).
moodle_rest_my_courses
Sin parámetros. Lista materias del token con id, name y shortName.
moodle_rest_upcoming_deadlines
Sin parámetros. Eventos del calendario en los próximos 90 días.
moodle_rest_course_content
Parámetro: { "courseId": <número> } (ID devuelto por moodle_rest_my_courses). Secciones y metadatos de recursos. No descarga archivos.
moodle_rest_course_grades
Parámetro: { "courseId": <número> }. Notas y devoluciones visibles del usuario del token.
moodle_rest_course_forums
Parámetro: { "courseId": <número> }. Metadatos de foros y avisos cuando el campus los expone.
Modo navegador
moodle_browser_login
Sin parámetros. Abre el login de Quinttos en Chromium visible.
moodle_browser_status
Sin parámetros. Devuelve not_started, awaiting_login, sso_ready, authenticated o closed.
moodle_read_my_profile
Sin parámetros. Lee campos visibles del perfil Moodle del usuario autenticado.
moodle_read_my_courses
Sin parámetros. Lista materias visibles con nombre y URL exacta /course/view.php.
moodle_read_course_activities
Parámetro: { "course": "<título exacto o URL exacta>" }. Actividades visibles con título, tipo, URL, estado de entrega y fecha límite si Moodle la muestra.
moodle_browser_logout
Sin parámetros. Cierra sesión en Moodle si es posible, cierra el navegador y descarta la sesión local.
Flujo típico con REST
moodle_rest_my_courses→ obtener elidde la materia (ej. Base de Datos 2 =45).moodle_rest_course_gradescon esecourseId→ ver notas.moodle_rest_course_content→ ver unidades y recursos.moodle_rest_upcoming_deadlines→ ver vencimientos.
Dependencias
@modelcontextprotocol/sdk1.29.0 — SDK oficial MCP para TypeScript.playwright1.58.2 — automatización del navegador Chromium.zod3.24.2 — validación de esquemas del SDK.typescript5.8.3 y@types/node22.15.3 — compilación.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI assistants to interact with Moodle via web services, allowing tasks like listing courses, assignments, events, and downloading files.Last updated104MIT
- FlicenseAqualityCmaintenanceEnables read-only querying of Moodle as a student, including courses, assignments, grades, forums, and files, using a personal web services token.Last updated11
- FlicenseBqualityCmaintenanceEnables browsing and collecting course materials from Brightspace through Chrome DevTools Protocol, allowing snapshotting, downloading media, and automating page navigation.Last updated22
- Alicense-qualityFmaintenanceEnables AI assistants to interact with Moodle LMS via browser automation, using a server and browser extension to keep credentials local and route commands securely.Last updated27MIT
Related MCP Connectors
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
Unofficial NTNU course data: search, timetables, grades, course info, and exam logistics.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/NicolasViruel/moodle-utn-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server