UNAHUR-MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | Host where the HTTP server listens (HTTP mode). Default is 127.0.0.1. | |
| PORT | No | Port where the HTTP server listens (HTTP mode). Default is 3000. | |
| UTN_PASS | No | Password for logging in to the aula virtual, used together with UTN_USER instead of the login command. | |
| UTN_USER | No | Username for logging in to the aula virtual instead of using the login command (useful on Linux without a credential manager, servers, Docker, WSL). | |
| UTN_MCP_DB | No | Path to the database file for sessions (HTTP mode). Defaults to the config folder. | |
| UTN_MCP_KEY | No | Encryption key for the session database, as 32 bytes in base64 (e.g. output of openssl rand -base64 32). Defaults to the config folder store key. | |
| UTN_REGIONAL | No | Selects the default campus/regional to use instead of the current year, e.g. UTN_REGIONAL=2025. Also used when UTN_USER and UTN_PASS are defined instead of running login. | |
| UTN_AULA_BASE_URL | No | Define a custom aula (Moodle) base URL if it does not follow the campusAAAA.unahur.edu.ar format; it then appears as an extra option at login. | |
| UTN_MCP_LOGIN_URL | No | Page where the user renews their aula session; the agent passes this link when the session expires. Defaults to <UTN_MCP_PUBLIC_URL>/login. | |
| UTN_MCP_ACCESS_URL | No | URL of your own service that decides who may enter. The server POSTs { email, usuario, regional } with an Authorization: Bearer <UTN_MCP_ACCESS_SECRET> header and expects { permitido: true } or { permitido: false, motivo, url }. | |
| UTN_MCP_PUBLIC_URL | No | Public address of the HTTP server (e.g. https://mcp.tu-dominio.com). Used as the OAuth issuer, base of upload links, and the only non-localhost host accepted in Host and Origin headers. Defaults to http://127.0.0.1:<PORT>. | |
| UTN_MCP_ADMIN_SECRET | No | Enables the /admin API for an accounts panel: POST /admin/usuarios, /admin/clientes, /admin/clientes/revocar, /admin/regionales and /admin/verificar. | |
| UTN_MCP_ACCESS_SECRET | No | Bearer secret sent to UTN_MCP_ACCESS_URL when checking access. | |
| UTN_MCP_ALLOWED_EMAILS | No | Comma-separated emails or domains (e.g. @unahur.edu.ar) allowed to connect when UTN_MCP_ACCESS_URL is not set. By default anyone with a UNAHUR user can enter. | |
| UTN_MCP_REDIRECT_ALLOW | No | Comma-separated extra hosts (e.g. app.ejemplo.com) or schemes (e.g. miapp:) to which the OAuth login may redirect. Loopback, Claude, ChatGPT, VS Code and Cursor always pass. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| aula_get_site_infoA | Datos del usuario logueado y del sitio Moodle de su aula virtual. |
| aula_list_coursesA | Lista los cursos (materias) en los que está inscripto el usuario. Es el punto de entrada: cada curso viene con su |
| aula_openA | Entra a una dirección del aula virtual y devuelve lo que hay ahí: un curso con sus secciones y módulos, un módulo con sus archivos y fechas, un foro con el índice de sus discusiones, o una discusión con sus mensajes completos. Según el tipo de módulo trae además: en una tarea (assign), No hace falta armar la dirección: cada respuesta trae las direcciones de lo que hay adentro ( Buscar algo que puede estar en cualquier parte (una fecha de parcial, un aviso) se hace entrando al curso y abriendo lo que corresponda: el índice de un foro muestra los asuntos sin volcar los mensajes enteros, y archivos como un cronograma se leen con aula_read_file. Los archivos vienen con una |
| aula_read_fileA | Lee un archivo del aula virtual: PDF, Word (docx), PowerPoint (pptx), Excel (xlsx), imágenes y texto. Los PDF escaneados se devuelven como imagen de cada página. Devuelve el archivo por partes (páginas, diapositivas o fragmentos), tantas como entren en una respuesta. Si quedan más, Formatos que no sabe leer (.doc, .ppt viejos, .zip, .rar, videos): devuelve un error con la URL para que el usuario lo baje. |
| aula_forum_postA | Publica en un foro del aula virtual. Con la Lo que se publica lo ven docentes y compañeros, y a muchos les llega por mail. Antes de abrir un hilo, mirá Antes de llamarla, mostrale al usuario exactamente lo que se va a hacer y esperá que confirme. |
| aula_forum_edit_postA | Edita una publicación propia de un foro y reemplaza el mensaje completo. Solo se puede si la publicación tiene "editar" en Antes de llamarla, mostrale al usuario exactamente lo que se va a hacer y esperá que confirme. |
| aula_forum_delete_postA | Borra una publicación propia de un foro. No se puede deshacer. Solo se puede si tiene "borrar" en Antes de llamarla, mostrale al usuario exactamente lo que se va a hacer y esperá que confirme. |
| aula_choice_answerA | Responde una elección (choice: encuestas rápidas como "¿venís al parcial?") o una selección de grupos (choicegroup: anotarse en un grupo o comisión). Deja elegidas exactamente las Las opciones salen de Antes de llamarla, mostrale al usuario exactamente lo que se va a hacer y esperá que confirme. |
| aula_send_messageA | Manda un mensaje privado por la mensajería del aula virtual a otro usuario, docente o compañero. El Antes de llamarla, mostrale al usuario exactamente lo que se va a hacer y esperá que confirme. Incluí a quién va dirigido. |
| aula_assign_submitA | Entrega una tarea (assign) del aula virtual: sube archivos, escribe el texto en línea o las dos cosas, según lo que acepte la tarea. Antes, abrila con aula_open: Los archivos nuevos se pasan en Si la tarea no usa borradores, guardar ya es entregar. Si los usa ( Antes de llamarla, mostrale al usuario exactamente lo que se va a hacer y esperá que confirme. Incluí la tarea, los nombres de los archivos y si se confirma el envío. |
| aula_calendar_add_eventA | Agrega un evento personal al calendario del aula virtual, que solo ve el usuario: por ejemplo un recordatorio de un parcial o una entrega. El aula avisa según la configuración de notificaciones del usuario. La fecha va con zona horaria; en Argentina es -03:00. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Each tool targets a distinct action: navigation (aula_open, aula_list_courses), reading (aula_read_file, aula_get_site_info), forum CRUD, submission, choice answers, messaging, and calendar. The only mild overlap is that aula_open can open a course while aula_list_courses lists enrolled courses and '/'-navigation is shared, but descriptions make the roles clear. No two tools appear to do the same thing.
All tools share the 'aula_' prefix and snake_case, and resource-scoped write tools (aula_forum_post, aula_forum_edit_post, aula_assign_submit, aula_choice_answer) form coherent families. However ordering is mixed: read tools use verb_noun (get_site_info, list_courses, read_file) while writes use noun_verb, and aula_open is a bare verb — a minor structural deviation but still predictable.
11 tools is well within the ideal 3-15 range and every tool earns its place: navigation, reading, forum lifecycle, submission, choice, messaging, and calendar. No redundant or filler tools.
Covers the core student workflow end-to-end: discovery, navigation, file reading, forum CRUD, assignment submission, choice/group answers, private messaging, and calendar reminders. Minor gaps remain — messaging is send-only (no inbox read) and calendar is add-only (no edit/delete) — but these are workable around.