unsada-mcp
Allows interaction with the UNSAdA virtual classroom (Moodle 3.2) to read courses, sections, activities, resources, forums, assignments, grades, and calendar events. Provides tools for listing courses, opening forums/pages/tasks, reading documents, downloading files, and retrieving assignment and grade information.
Click on "Deploy 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., "@unsada-mcp¿Qué tengo que entregar esta semana?"
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.
UNSAdA-MCP
Servidor MCP no oficial para el aula virtual de la UNSAdA (moodle.unsada.edu.ar). Le permite a tu agente (Claude, Codex, OpenCode, Cursor...) leer tus cursos, apuntes, foros, tareas, notas y calendario.
Inspirado en utn-mcp.
Qué podés pedirle
"¿Qué tengo que entregar esta semana?"
"¿Qué dijo la profe en el foro de Trabajo de Grado?"
"Resumime el apunte de la semana 3."
"¿Qué nota me pusieron en el TP1 y qué me corrigieron?"
"¿A qué hora es el examen final de Lenguajes?"
Related MCP server: Gradescope MCP
Tools
Tool | Qué hace |
| Tus cursos, los más recientes primero. Es el punto de partida. |
| Secciones, actividades y recursos de un curso. |
| Abre un foro, una discusión, una página, una carpeta, una tarea o un enlace. |
| Lee PDF, Word, PowerPoint, Excel, imágenes y texto, por partes. Las figuras de los PDF, a pedido. |
| Guarda archivos, recursos o carpetas enteras del aula en tu disco. |
| Tareas de un curso con vencimiento, estado y nota. |
| Notas de todos los cursos o el detalle de uno. |
| Próximos vencimientos y eventos, con hora exacta. |
| Abre el navegador para volver a entrar. |
En el aula solo lee: no publica, no entrega, no modifica nada. Antes de cada pedido, el servidor verifica que la dirección sea una página de lectura conocida del aula; cualquier otra (cerrar sesión, suscribirse, publicar, otro sitio) se rechaza sin pedirla. Como cualquier visita tuya, abrir una actividad queda en los registros del aula y puede marcarla como vista.
unsada_download es lo único que escribe, y solo en tu disco: guarda siempre en una subcarpeta (por ejemplo Bases de Datos/Unidad 1) dentro de la carpeta donde abriste el agente, nunca suelto en esa carpeta. Nunca pisa un archivo existente (si ya está con el mismo tamaño lo saltea, si es distinto agrega (2)), nunca escribe en carpetas ocultas como .git o .claude, le pone un _ adelante a nombres sensibles como CLAUDE.md u opencode.json, y en Windows marca los archivos como bajados de internet para que SmartScreen avise antes de ejecutarlos. Para permitir otras carpetas, agregalas a UNSADA_DOWNLOAD_ROOTS.
Cómo funciona el login
El aula usa Moodle 3.2, sin servicio para apps móviles, y se entra con Google. Por eso no hay usuario y contraseña que guardar:
La primera vez que hace falta, se abre una ventana de Edge (o Chrome) en el aula, directo en la pantalla de Google.
Entrás con tu cuenta. La ventana se cierra sola y la sesión queda guardada en tu compu.
Mientras el servidor está corriendo, le avisa al aula cada 10 minutos que la sesión sigue en uso. Si igual vence, vuelve a abrir la ventana y entrás de nuevo.
La ventana no guarda nada: cada vez te pide tu cuenta de Google, porque un navegador que la recuerde le daría tu Google entero (Drive, Gmail) a cualquier programa de tu compu. Solo queda la sesión del aula, en %APPDATA%\unsada-mcp\session.json (Windows) o ~/.config/unsada-mcp/session.json (Linux/macOS), y no sale de tu computadora. Las versiones hasta la 0.3.0 guardaban un perfil del navegador con Google iniciado; desde la 0.3.1 se borra solo la primera vez que el servidor arranca o que corrés login o logout.
Si usás un agente que puede correr comandos en tu terminal, configuralo para que te pregunte antes: con esos permisos puede leer cualquier archivo tuyo, la sesión del aula incluida.
Instalación
Necesitás Node 22 o más nuevo y Edge o Chrome instalado.
npx -y unsada-mcp@latest login # se abre el navegador: entrá con GoogleDespués lo conectás a tu cliente.
Claude Code (-s user lo deja disponible en todas tus carpetas)
claude mcp add unsada -s user -- npx -y unsada-mcp@latestClaude Desktop: en claude_desktop_config.json
{
"mcpServers": {
"unsada": { "command": "npx", "args": ["-y", "unsada-mcp@latest"] }
}
}Codex: en ~/.codex/config.toml
[mcp_servers.unsada]
command = "npx"
args = ["-y", "unsada-mcp@latest"]OpenCode: en opencode.json
{
"mcp": {
"unsada": { "type": "local", "command": ["npx", "-y", "unsada-mcp@latest"] }
}
}Desde el código
git clone https://github.com/EmilioGiordano/unsada-mcp
cd unsada-mcp
npm install
npm run build
claude mcp add unsada -s user -- node C:/ruta/a/unsada-mcp/build/index.jsComandos
unsada-mcp servidor MCP por STDIO (lo lanza el cliente)
unsada-mcp login abre el navegador para entrar con Google
unsada-mcp status dice si hay una sesión activa
unsada-mcp logout borra la sesión guardadaVariables opcionales: UNSADA_BROWSER (msedge, chrome...), UNSADA_MCP_HOME (otra carpeta de datos), UNSADA_MOODLE_URL (otro Moodle 3.x), UNSADA_DOWNLOAD_ROOTS (carpetas extra donde se puede descargar, separadas por ; en Windows y : en Linux y macOS).
Cómo está hecho
Como el aula no expone una API usable, el servidor lee las mismas páginas que ves en el navegador, con tu sesión, y las convierte en datos (src/scrape/, un archivo por tipo de página). Si la UNSAdA actualiza Moodle o cambia el tema, esos archivos son los que hay que ajustar; los tests en test/scrape/ usan páginas de ejemplo inventadas.
La lectura de documentos (src/documents/) viene de utn-mcp; ver THIRD_PARTY_NOTICES.
Desarrollo
npm run typecheck # TypeScript
npm run lint # Biome
npm test # Vitest
npm run buildLas reglas del proyecto (estructura, seguridad, estilo) están en AGENTS.md.
Licencia
AGPL-3.0-or-later, desde la 0.3.0; hasta la 0.2.2 era ISC. Podés usarlo, modificarlo y compartirlo, pero si distribuís una versión modificada o la ofrecés a otras personas como servicio (por ejemplo, un bot), tenés que publicar su código bajo la misma licencia. La lectura de documentos (src/documents/) sigue siendo ISC de utn-mcp; ver THIRD_PARTY_NOTICES.
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only IELTS and CELPIP question banks, learner practice, progress, scores, and feedback.
Read-only access to Epivo's live course catalogue for AI agents.
Read Lessonspace sessions, recordings, transcripts, spaces and users; launch spaces, edit sessions.
Read-only access to your Citlyze workspace: AI search visibility, citations, and recommendations.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI agents to access a student's EPFL Moodle data—deadlines, course files, assignments, forums, and grades—through read-only tools.12MIT
- AlicenseAqualityCmaintenanceEnables students to view their courses, assignments and deadlines, review past submissions, and retrieve or save copies of their own uploaded files without making any changes to stored data.63MIT
- AlicenseNot gradedqualityCmaintenanceEnables users to read Moodle course information, list courses, outlines, resources, assignments, and deadlines, and download or extract text from course files locally via an MCP-compatible client.MIT
- AlicenseAqualityBmaintenanceEnables AI apps to read a student's Moodle courses, upcoming and overdue due dates, assignment submission statuses, course grades, gradebook items and announcements. It is strictly read only, so it can never submit, edit or delete anything.11135 npmMIT