SkillAgentSearch skills...

utn-mcp

Servidor MCP no oficial de la UTN: conectá tu agente (Claude, ChatGPT, etc.) al aula virtual para consultar cursos, leer apuntes, usar los foros y entregar tareas.

Install / Use

claude mcp add nialvape -- npx -y github:nialvape/utn-mcp

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

84/100

Supported Platforms

Claude Code
Claude Desktop

Tags

Our assessment of utn-mcp

utn-mcp scores 84/100 on our quality scale, 604th of 960 AI & Machine Learning skills we index.

Its MCP Server is 13 KB long, well organised into 16 sections with 15 code examples: a thorough specification that gives an agent plenty to work with.

It has 10 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
30/30
Structure
20/20
Description
15/15
Adoption
4/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated today, so utn-mcp is actively maintained.
  • It is released under the ISC license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 97/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

utn-mcp compared with similar skills

All 4 of these similar skills score higher than utn-mcp; compare them before choosing.

SkillScoreStarsUpdatedFormat
utn-mcp (this skill)by nialvape8410todayMCP Server
claude-memby thedotmack100103.2ktodayCLAUDE.md
Agent-Reachby Panniantong100102.6k1d agoCLAUDE.md
Understand-Anythingby Egonex-AI10088.3k3d agoCLAUDE.md
headroomby headroomlabs-ai10077.8k1d agoCLAUDE.md

Frequently asked questions

How do I install utn-mcp?
Run claude mcp add nialvape -- npx -y github:nialvape/utn-mcp. The install tabs above show the steps for each supported agent.
Which AI agents does utn-mcp work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is utn-mcp safe to use?
It is ISC-licensed and scores 97/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is utn-mcp still maintained?
The repository was last updated today, so utn-mcp is actively maintained.

UTN-MCP — El puente entre tu agente y los sistemas de la Universidad.

Este es el Model Context Protocol server NO OFICIAL de la UTN. Con él podés pedirle a tu agente de preferencia (Claude, ChatGPT, etc.) que busque información y lea los apuntes del aula virtual y, con tu confirmación, que publique en los foros o entregue tareas. Corre en tu computadora o como servidor HTTP con OAuth, para usarlo desde cualquier lado.

Qué podés pedirle

  • "¿Cuándo es el recuperatorio del primer parcial de Álgebra?"
  • "¿Qué avisó la profesora de Física esta semana?"
  • "Resumime la guía de la unidad 3 de Sistemas Operativos."
  • "Pasame el link para bajar el apunte de calorimetría."
  • "¿Qué nota me pusieron en el TP1 y qué me corrigieron?"
  • "Preguntá en el foro de consultas si el parcial incluye la unidad 4."
  • "Anotame en el grupo 6."
  • "Agendame el recuperatorio del 14 a las 18."

El agente recorre el aula como lo harías vos: entra al curso, mira los foros y abre los archivos que hagan falta.

Tools

| Tool | Qué hace | |---|---| | aula_list_courses | Lista tus cursos. Es el punto de partida. | | aula_open | Entra a un curso, un módulo, un foro o una discusión. Cada respuesta trae las direcciones de lo que hay adentro y de un nivel más arriba, así el agente navega sin perderse. | | aula_read_file | Lee un archivo del aula, por partes cuando es largo. | | aula_get_site_info | Datos de tu usuario y de tu regional en el aula virtual. | | aula_forum_post | Abre un hilo en un foro o responde en una discusión. | | aula_forum_edit_post | Edita una publicación tuya. | | aula_forum_delete_post | Borra una publicación tuya. | | aula_assign_submit | Entrega una tarea: sube archivos de tu compu, escribe el texto en línea y confirma el envío. | | aula_assign_upload_link | Solo en modo HTTP: un link para subir los archivos de una entrega, que usa el agente con curl o vos desde el navegador. | | aula_choice_answer | Responde una elección o te anota en un grupo. | | aula_send_message | Manda un mensaje privado a un docente o compañero. | | aula_calendar_add_event | Agrega un recordatorio a tu calendario del aula. |

Al abrir una tarea, aula_open muestra si la entregaste, cuándo vence y la devolución con la nota. Las tools que escriben le piden al agente que te muestre lo que va a hacer y espere tu confirmación.

Archivos que puede leer

  • PDF: el texto, página por página. Los escaneados se mandan como imagen de cada página, y el agente los lee igual.
  • Word (.docx), PowerPoint (.pptx) y Excel (.xlsx): el texto, con las tablas fila por fila.
  • Imágenes (PNG, JPG, GIF) y texto plano.

Los formatos viejos de Office (.doc, .ppt, .pps), los comprimidos (.zip, .rar) y los videos no se leen. En ese caso el agente te pasa el link para que lo bajes.

Links de descarga

Cada archivo viene con un link del aula virtual que podés abrir en tu navegador. Funciona con tu sesión del aula (si no estás logueado te manda al login) y nunca incluye tu token: ese queda siempre en tu computadora.

Cómo instalar

Necesitás Node.js 20 o superior. No hace falta clonar el repo ni instalar nada a mano: npx descarga el paquete solo.

1. Iniciar sesión

npx -y utn-mcp login

Te pide tu regional, tu usuario y tu contraseña: los mismos con los que entrás al aula virtual. Si no tenés usuario institucional (por ejemplo, en el curso de ingreso), usá el que te dieron para el aula. En Córdoba (FRC) los alumnos entran con el mail completo (<legajo>@<especialidad>.frc.utn.edu.ar), no con el legajo solo; con una cuenta @frc.utn.edu.ar, con lo que va antes de la @. En Haedo (FRH) y San Nicolás (FRSN) se entra con el mail completo de Office 365 (en FRH, del estilo <inicial><apellido><3 dígitos del legajo>@alumnos.frh.utn.edu.ar). Se hace una sola vez: después el servidor renueva la sesión solo.

2. Agregarlo a tu cliente

Claude Code

claude mcp add utn -- npx -y utn-mcp

Claude Desktop: en Settings → Developer → Edit Config, agregá dentro de mcpServers:

"utn": {
  "command": "npx",
  "args": ["-y", "utn-mcp"]
}

En Windows, si no arranca, usá "command": "cmd" y "args": ["/c", "npx", "-y", "utn-mcp"]. Después reiniciá Claude Desktop por completo.

Codex

codex mcp add utn -- npx -y utn-mcp

Gemini CLI

gemini mcp add utn npx -y utn-mcp

OpenClaw

openclaw mcp add utn --command npx --arg -y --arg utn-mcp

Hermes: en ~/.hermes/config.yaml:

mcp_servers:
  utn:
    command: "npx"
    args: ["-y", "utn-mcp"]

Cursor: en ~/.cursor/mcp.json:

{
  "mcpServers": {
    "utn": { "command": "npx", "args": ["-y", "utn-mcp"] }
  }
}

VS Code: en .vscode/mcp.json (o con MCP: Add Server desde la paleta de comandos):

{
  "servers": {
    "utn": { "type": "stdio", "command": "npx", "args": ["-y", "utn-mcp"] }
  }
}

ChatGPT: solo se conecta a servidores MCP remotos por HTTPS, así que necesita un servidor en modo HTTP publicado en internet (ver Hostearlo para otros). Se agrega como conector desde Configuración → Apps y conectores, con el modo desarrollador activado. Los conectores propios están desde el plan Pro, y ahí solo con las herramientas de lectura; para usar también las de escritura (foros, mensajes, entregas) hace falta Business o superior.

Otros clientes (Windsurf, opencode, etc.): cualquier cliente MCP que lance servidores por STDIO sirve con el comando npx -y utn-mcp.

Instalación global (opcional)

Si preferís tener el comando utn-mcp siempre disponible:

npm i -g utn-mcp
utn-mcp login

y en la config del cliente usás "command": "utn-mcp" sin argumentos.

Regionales

La regional se elige al iniciar sesión, de una lista con las regionales de la UTN. Buenos Aires (FRBA), Córdoba (FRC), Resistencia (FRRE) y Tucumán (FRT) ya están probadas. También está el aula de la Tecnicatura en Programación a distancia del SIED (TUP). El login se adapta solo: si el aula entra por SSO, sea un Keycloak propio (FRBA) u Office 365 (Haedo, FRH, y San Nicolás, FRSN), usa el SSO; si no, el login directo de Moodle. Si tu cuenta de Office 365 pide segundo factor (MFA), el login te pregunta con qué método seguir y te pide el código o que apruebes en el celular. Como el servidor renueva la sesión sin vos delante, con MFA te va a pedir que vuelvas a iniciar sesión cuando venza (dura semanas).

La lista puede traer regionales que nadie probó todavía: su aula tiene habilitado el servicio que usa UTN-MCP, así que casi seguro anda. En un servidor hosteado, la primera persona que entra con una de esas la deja verificada para el resto. Las que no tienen el servicio habilitado aparecen como "todavía sin soporte": se pueden elegir, pero el login avisa que por ahora no se puede usar y no manda la contraseña.

Si tu campus no está en la lista, abrí un issue con la URL de su aula virtual para sumarlo. Mientras tanto, podés usarlo definiendo en un .env en la carpeta desde donde corrés utn-mcp (o en el entorno):

UTN_AULA_BASE_URL=https://tu-campus.utn.edu.ar
# UTN_SSO_HOST=auth.tu-campus.utn.edu.ar  # solo si entra por SSO: Keycloak, o login.microsoftonline.com si es Office 365

Aparece como una opción más al iniciar sesión.

UTN_REGIONAL (por ejemplo, UTN_REGIONAL=frt) elige la que viene marcada por defecto, y es la que se usa si en lugar de login definís UTN_USER y UTN_PASS.

Modo HTTP (opcional)

Necesita Node 22.13 o más nuevo. Primero, una vez:

npx -y utn-mcp login --http

Te muestra un token: configurá tu cliente MCP para que mande el header Authorization: Bearer <token>. Después:

npx -y utn-mcp --http --port 3000

Levanta el servidor en http://127.0.0.1:3000/mcp, solo accesible desde tu propia máquina. Tenés que dejar la terminal abierta mientras lo uses.

En este modo el servidor no lee archivos de tu disco: para entregar, el agente pide un link con aula_assign_upload_link y sube ahí los archivos con curl si tiene terminal, o te pasa el link para que los elijas desde el navegador.

Hostearlo para otros

En modo HTTP el servidor también es servidor de autorización OAuth: un cliente MCP (Claude, ChatGPT) que se conecta a https://tu-dominio/mcp recibe un 401, descubre el OAuth y abre una página donde el alumno elige su regional y entra con su usuario de la UTN. Cada alumno usa el aula de su regional, aunque sean de regionales distintas. Ese login vincula su aula: la contraseña se usa una sola vez para sacar el token de Moodle y no se guarda. Cuando la sesión del aula vence, el agente le pasa el link de /login para renovarla, sin reconectar el cliente.

Quién puede entrar lo decidís vos: con UTN_MCP_ALLOWED_EMAILS (una lista), o con UTN_MCP_ACCESS_URL, que apunta a un servicio tuyo. El servidor le hace POST con { "email", "usuario", "regional" } y el header Authorization: Bearer <UTN_MCP_ACCESS_SECRET>, y espera { "permitido": true } o { "permitido": false, "motivo": "...", "url": "..." }. Se consulta al conectar y en cada renovación del token (cada hora), así que una baja se aplica sola.

La configuración va en variables de entorno o en un .env en la carpeta desde donde lo corrés (copiá .env.example):

| Variable | Para qué | Por defecto | |---|---|---| | HOST, PORT | Dónde escucha. | 127.0.0.1, 3000 | | UTN_MCP_PUBLIC_URL | Dirección pública (https://mcp.tu-dominio.com). Es el issuer del OAuth, la base de los links de subida y el único host, además de localhost, que se acepta en Host y Origin. | http://127.0.0.1:<PORT> | | UTN_MCP_ACCESS_URL, UTN_MCP_ACCESS_SECRET | Servicio que decide quién puede entrar. | — | | UTN_MCP_ALLOWED_EMAILS | Emails o dominios (@frba.utn.edu.ar) habilitados, separados por coma, si no hay UTN_MCP_ACCESS_URL. | Entra cualquiera con usuario de la UTN | | UTN_MCP_REDIRECT_ALLOW | Hosts (app.ejemplo.com) o esquemas (miapp:) extra, separados por coma, a los que puede volver el login de OAuth. Loopback, Claude, ChatGPT, VS Code y Cursor pasan siempre. Cualquier otro host HTTPS (un agente propio, por ejemplo) se acepta, pero el login avisa a dónde vuelve y el alumno tiene que marcar que lo conecta bajo su responsabilidad: es la defensa contra alguien que use tu página de login para quedarse con su sesión. Los hosts de esta lista pasan sin aviso. | — | | UTN_MCP_ADMIN_SECRET | Habilita la API de /admin para un panel de cuentas tuyo: POST /admin/usuarios (todos los usuarios con sus apps), /admin/clientes y /admin/clientes/revocar (las apps de un usuario, por email), /admin/regionales (las regionales con su soporte) y /admin/verificar (entra al aula con usuario y contraseña, como el login de OAuth, y le guarda la sesión; si Microsoft pide segundo factor, devuelve el paso y se sigue con /admin/segundo-factor). | — | | UTN_MCP_LOGIN_URL | Página donde el usuario renueva su sesión del aula; el agente se la pasa. | <UTN_MCP_PUBLIC_URL>/login | | UTN_MCP_DB, UTN_MCP_KEY | Base de sesiones y su clave de cifrado (32 bytes en base64). | En la carpeta de config |

Con Docker, detrás de un reverse proxy con HTTPS en la misma máquina (red host, para que el rate limit del login vea la IP real):

docker build -t utn-mcp .
docker run -d --name utn-mcp --network host --restart unless-stopped \
  -e HOST=127.0.0.1 -e PORT=8100 -e UTN_MCP_PUBLIC_URL=https://mcp.tu-dominio.com \
  -e UTN_MCP_KEY=$(openssl rand -base64 32) -v utn-mcp-data:/data utn-mcp

Guardá esa UTN_MCP_KEY: sin ella no se pueden descifrar las sesiones guardadas.

Dónde se guardan tus datos

Instalado en tu computadora, todo queda ahí:

  • Usuario y contraseña: en el gestor de credenciales del sistema (Windows Credential Manager, Keych

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars10
CategoryAI
Updated11h ago
Forks5

Languages

TypeScript

Trust signals

97/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 info
utn-mcp — MCP Server: Install & Safety Check | SkillAgent