Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HOSTNoHost where the HTTP server listens (HTTP mode). Default is 127.0.0.1.
PORTNoPort where the HTTP server listens (HTTP mode). Default is 3000.
UTN_PASSNoPassword for logging in to the aula virtual, used together with UTN_USER instead of the login command.
UTN_USERNoUsername 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_DBNoPath to the database file for sessions (HTTP mode). Defaults to the config folder.
UTN_MCP_KEYNoEncryption 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_REGIONALNoSelects 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_URLNoDefine 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_URLNoPage 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_URLNoURL 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_URLNoPublic 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_SECRETNoEnables the /admin API for an accounts panel: POST /admin/usuarios, /admin/clientes, /admin/clientes/revocar, /admin/regionales and /admin/verificar.
UTN_MCP_ACCESS_SECRETNoBearer secret sent to UTN_MCP_ACCESS_URL when checking access.
UTN_MCP_ALLOWED_EMAILSNoComma-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_ALLOWNoComma-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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
aula_get_site_infoA

Datos del usuario logueado y del sitio Moodle de su aula virtual. regional es el campus de la UNAHUR de esa aula (por ejemplo, "Campus 2026"): cada año lectivo tiene su propio campus.

aula_list_coursesA

Lista los cursos (materias) en los que está inscripto el usuario. Es el punto de entrada: cada curso viene con su direccion, que se le pasa a aula_open para entrar.

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), entrega con el estado, el vencimiento, lo que se subió y la devolución con la nota; en una elección (choice) o selección de grupos (choicegroup), eleccion con las opciones y sus ids; en un foro, puedeAbrirHilo; en una discusión, el id, el autorId y las acciones permitidas de cada publicación. Es lo que piden las tools que escriben en el aula.

No hace falta armar la dirección: cada respuesta trae las direcciones de lo que hay adentro (direccion) y la de un nivel más arriba (padre), así que se navega pasando de vuelta una de esas. Para empezar, usar aula_list_courses o la dirección "/".

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 url, que sirve para leerlos con aula_read_file y también para dársela al usuario si quiere bajarlo: se abre con su sesión del aula.

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, siguiente dice desde cuál pedir; también se puede saltar directo a una parte con desde.

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 direccion de un foro abre un hilo nuevo (hace falta asunto); con la de una discusión responde en ella, a la publicación respuestaA o, si no se indica, a la primera.

Lo que se publica lo ven docentes y compañeros, y a muchos les llega por mail. Antes de abrir un hilo, mirá puedeAbrirHilo del foro; antes de responder, que la publicación tenga "responder" en acciones.

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 acciones: Moodle deja editar por un rato después de publicar.

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 acciones. Si es la primera publicación de la discusión, se borra la discusión entera.

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 opciones pasadas y reemplaza la respuesta anterior; con una lista vacía la borra.

Las opciones salen de eleccion al abrir el módulo con aula_open. Muchas no dejan cambiar la respuesta una vez dada (puedeCambiar: false), y las opciones deshabilitada están completas. Devuelve cómo quedó la elección.

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 usuarioId sale del autorId de un foro o una discusión abiertos con aula_open: no lo inventes ni lo deduzcas del nombre. La respuesta trae el nombre del destinatario.

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: entrega dice qué acepta (acepta, con tipos, cantidad y tamaño), si puedeEditar y lo que ya está subido.

Los archivos nuevos se pasan en archivos con su ruta absoluta en la compu del usuario. archivos es la lista final y reemplaza lo anterior: para sumar uno sin perder los otros, incluí la url de cada archivo que ya está en la entrega. Si no pasás archivos, quedan los que estaban; lo mismo con texto.

Si la tarea no usa borradores, guardar ya es entregar. Si los usa (requiereConfirmarEnvio), la tool además confirma el envío, salvo con enviar: false; una vez enviada, en general no se puede cambiar. Con declaracion, el usuario tiene que aceptarla (aceptoDeclaracion). Devuelve cómo quedó la entrega.

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 11 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues