Skip to main content
Glama

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

unsada_list_courses

Tus cursos, los más recientes primero. Es el punto de partida.

unsada_get_course

Secciones, actividades y recursos de un curso.

unsada_open

Abre un foro, una discusión, una página, una carpeta, una tarea o un enlace.

unsada_read_file

Lee PDF, Word, PowerPoint, Excel, imágenes y texto, por partes. Las figuras de los PDF, a pedido.

unsada_download

Guarda archivos, recursos o carpetas enteras del aula en tu disco.

unsada_list_assignments

Tareas de un curso con vencimiento, estado y nota.

unsada_get_grades

Notas de todos los cursos o el detalle de uno.

unsada_get_calendar

Próximos vencimientos y eventos, con hora exacta.

unsada_login

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:

  1. La primera vez que hace falta, se abre una ventana de Edge (o Chrome) en el aula, directo en la pantalla de Google.

  2. Entrás con tu cuenta. La ventana se cierra sola y la sesión queda guardada en tu compu.

  3. 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 Google

Despué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@latest

Claude 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.js

Comandos

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 guardada

Variables 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 build

Las 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.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to access a student's EPFL Moodle data—deadlines, course files, assignments, forums, and grades—through read-only tools.
    12
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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