io.github.santinohicke/uca-mcp

السجل الرسمي أخرى

MCP no oficial para estudiantes de la UCA: EVA y SIU Guaraní (materias, notas, horarios, exámenes).

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

NPM package uca-mcp
Claude Code
claude mcp add uca-mcp -- npx -y uca-mcp@1.1.0
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "uca-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "uca-mcp@1.1.0"
            ]
        }
    }
}

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. UCA MCP — Servidor Model Context Protocol para la Universidad Católica Argentina (UCA)
  2. Instalación
  3. Catálogo de Herramientas MCP
  4. Seguridad y Arquitectura
  5. Licencia

UCA MCP — Servidor Model Context Protocol para la Universidad Católica Argentina (UCA)

Servidor Model Context Protocol (MCP) open source para conectar a tus asistentes de IA (Claude Desktop, Cursor, VS Code, Gemini, etc.) de forma segura y directa con las plataformas institucionales de la Universidad Católica Argentina:

  • EVA (eva.uca.edu.ar)
  • SIU Guaraní (guarani.uca.edu.ar)
  • Campus Autogestión (autogestion.uca.edu.ar)

Privacidad y Tratamiento de Datos:

  • El software opera 100% de manera local en tu computadora.
  • Las credenciales se cifran localmente en tu computadora y se resguardan en el Llavero nativo del Sistema Operativo (Windows DPAPI, macOS Keychain, Linux Secret Service).
  • Todas las subidas (entrega de tareas, respuestas a foros o inscripciones) están protegidas por una confirmación explícita del usuario (Canal B / Elicitation).

Instalación

Prerequisito: Necesitás Node.js v20.18.1 o superior instalado en tu computadora (salvo la opción .mcpb de Claude Desktop que no lo requiere).

Elegí tu cliente y seguí los pasos. El uca-mcp login abre el navegador para que te loguees con tu cuenta @uca.edu.ar y el 2FA — hacelo una sola vez.


Claude Desktop

Opción A — Sin terminal (recomendada):

  1. Descargá uca-mcp-1.0.8.mcpb desde Releases.
  2. En Claude Desktop andá a Configuración → Extensiones y arrastrá el archivo .mcpb.
  3. Abrí un nuevo chat y escribí "Iniciá sesión en UCA". Listo.

Opción B — Desde terminal:

npm install -g uca-mcp
uca-mcp login
uca-mcp setup claude

Reiniciá Claude Desktop y ya está conectado.


Claude Code / Claude Code CLI
npm install -g uca-mcp
uca-mcp login
claude mcp add uca -- uca-mcp serve

Antigravity / Antigravity CLI
npm install -g uca-mcp
uca-mcp login
agy mcp add uca -- uca-mcp serve

ChatGPT Desktop / Codex CLI
npm install -g uca-mcp
uca-mcp login
codex mcp add uca -- uca-mcp serve

Cursor
npm install -g uca-mcp
uca-mcp login
uca-mcp setup cursor

Reiniciá Cursor y ya está conectado.


VS Code
npm install -g uca-mcp
uca-mcp login
uca-mcp setup vscode

Reiniciá VS Code y ya está conectado.


Hermes
npm install -g uca-mcp
uca-mcp login
hermes mcp add uca -- uca-mcp serve

OpenClaw
npm install -g uca-mcp
uca-mcp login
openclaw mcp add uca --command "uca-mcp" --arg "serve"

OpenCode
npm install -g uca-mcp
uca-mcp login
opencode mcp add uca -- uca-mcp serve

Pi
npm install -g uca-mcp
uca-mcp login
pi mcp add uca -- uca-mcp serve

Configuración manual (JSON) para cualquier cliente

Si tu cliente no está listado, agregá el servidor a su archivo de configuración MCP (mcpServers). Con la instalación global:

{
  "mcpServers": {
    "uca": { "command": "uca-mcp", "args": ["serve"] }
  }
}

Verificar que todo funcione (opcional)

Desde cualquier terminal, después de instalar y loguearte:

uca-mcp doctor

Comprueba Node.js, llavero del sistema, navegador, diálogo nativo y conectividad a EVA, SIU Guaraní y Campus.

[!NOTE] Transporte Exclusivo STDIO Local: En esta versión (v1), no cuenta con transporte HTTP/SSE remoto, por lo que no es compatible directamente con ChatGPT Web ni aplicaciones móviles sin un túnel MCP local autogestionado.


Catálogo de Herramientas MCP

HerramientaPlataformaTipoDescripción
uca_diagnosticar_sistemaLocalAuth/DiagAudita conectividad, validez del entorno gráfico y estado de la sesión cifrada.
uca_iniciar_sesionEntra IDAuthAbre el navegador de forma no bloqueante para completar o renovar el login con 2FA.
uca_resumen_semanalCompuestaLecturaConsulta en paralelo entregas próximas de EVA, avisos de foros y cursadas de Guaraní.
eva_materiasEVALecturaLista las aulas virtuales matriculadas y sus identificadores (curso_id).
eva_contenido_cursoEVALecturaLista las secciones, temas, recursos y tareas de un curso.
eva_cronogramaEVALecturaBusca el cronograma o programa de la materia y extrae fechas de parciales, recuperatorios y entregas.
eva_entregas_proximasEVALecturaConsulta qué entregas vencen en los próximos días (ej. la semana que viene) y avisos de cátedra.
eva_cuestionariosEVALecturaConsulta cuestionarios, fechas de cierre, intentos y calificaciones en EVA.
eva_tareas_y_notasEVALecturaConsulta tareas pendientes, fechas límite y estado de calificaciones.
eva_forosEVALecturaObtiene avisos de cátedra y discusiones recientes (con aviso de contenido no confiable).
eva_hilo_foroEVALecturaObtiene el debate o hilo completo de un foro de cátedra con todas sus respuestas y mensajes.
eva_buscar_materialesEVALecturaBusca recursos y consignas por palabra clave en todas tus aulas.
eva_leer_archivoEVALecturaDescarga y extrae texto de PDFs y Office (.docx/.xlsx/.pptx) con allowlist estricta HTTPS y anti zip-bombs.
eva_guardar_borrador_tareaEVAMutaciónSube un borrador editable de entrega tras validación y aprobación física en Canal B.
eva_responder_foroEVAMutaciónPublica una respuesta en un foro mostrando el texto completo tras aprobación en Canal B.
guarani_progreso_carreraSIU GuaraníLecturaResponde exactamente cuántas materias te faltan para recibirte, cuáles estás cursando y el avance por año.
guarani_plan_optimoSIU GuaraníLecturaCalcula el plan óptimo de cursada rankeando materias por cierre transitivo de correlativas y camino crítico.
guarani_materias_habilitadasSIU GuaraníLecturaComputa qué materias pendientes podés cursar el próximo período según tu grafo de correlativas.
guarani_estado_cursadaSIU GuaraníLecturaHorarios, asistencias acumuladas, porcentaje de faltas y predictor de regularidad de cursadas activas.
guarani_horario_semanalSIU GuaraníLecturaHorario semanal estructurado con materias, días, horarios, aulas y comisiones (admite filtro 'hoy').
guarani_cronograma_evaluacionesSIU GuaraníLecturaFechas oficiales de parciales, recuperatorios y otras evaluaciones de tus cursadas actuales.
guarani_historia_academicaSIU GuaraníLecturaAnalítico completo: finales aprobados, materias regulares, libro, folio y promedios.
guarani_mesas_disponiblesSIU GuaraníLecturaMesas de examen final con fechas, turnos, tribunales y estado de inscripción.
guarani_mis_inscripciones_examenSIU GuaraníLecturaConsulta inscripciones vigentes a examen final y actuaciones provisorias.
guarani_encuestas_pendientesSIU GuaraníLecturaVerifica si hay encuestas docentes institucionales obligatorias o pendientes de responder.
guarani_historial_constanciasSIU GuaraníLecturaConsulta el historial de solicitudes de constancias y certificados emitidos con descarga de PDF.
guarani_correlatividades_y_planSIU GuaraníLecturaPlan interactivo, materias por año, correlativas para cursar/rendir e impacto a futuro.
guarani_certificado_alumno_regularSIU GuaraníMutaciónEmite y descarga formalmente en PDF la Constancia de Alumno Regular (o aprobadas/promedio) con código de validación institucional tras aprobación en Canal B.
guarani_inscribir_examenSIU GuaraníMutaciónCiclo atómico en 2 fases con confirmación física en Canal B. Nota: La baja de examen no está disponible vía MCP (v1) y debe realizarse en SIU Guaraní.
campus_aranceles_y_tramitesCampusLecturaConsulta de cuotas al día/pendientes y estado de trámites administrativos (estricto read-only).

Seguridad y Arquitectura

  1. Blindaje de STDOUT (src/silence-stdout.ts): Todo log, advertencia o salida de procesos secundarios se redirige a stderr. El transporte JSON-RPC corre exclusivamente sobre mcpStdoutStream, garantizando que la trama no se corrompa jamás.
  2. Canal B Independiente y Elicitation: Las acciones de mutación no pueden ser auto-aprobadas por el LLM ni por inyecciones de prompt. Se despliega una ventana modal nativa del sistema operativo (WScript.Shell.Popup en Windows, osascript en macOS, zenity / kdialog / yad en Linux) con botón Cancelar por defecto y timeout de 45 segundos (fail-closed). En entornos headless o donde las ventanas nativas no estén disponibles, conmuta de forma transparente a Canal A (formulario interactivo MCP Elicitation) sin falsos rechazos de usuario.
  3. Llavero Nativo y Cero Secretos en argv: Las claves maestras se manejan mediante canal stdin (en Windows DPAPI, macOS Keychain mediante security -i, y Linux Secret Service vía secret-tool con soporte de UCA_PASSPHRASE y fallback degradado a machine-id), evitando que secretos aparezcan en ps o en variables de entorno. Asimismo, las cookies de sesión de Entra ID se alojan en el perfil persistente de navegador (browser-profile/), protegidas bajo el cifrado nativo de Chromium en el sistema operativo (DPAPI en Windows). En macOS y Linux, el aislamiento recae en los permisos de archivo locales del usuario del sistema operativo. El comando uca-mcp logout (o invocar uca_iniciar_sesion con forzar_relogin: true) purga este directorio y los certificados descargados por completo.
  4. Protección Anti-SSRF y Anti Zip-Bomb:
    • Descargas restringidas exclusivamente a https://eva.uca.edu.ar bajo /pluginfile.php o /mod/.
    • Streaming de descarga con límite rígido de 25 MB.
    • Descompresión en streaming con BoundedUnzipInflate de fflate para abortar inmediatamente durante la descompresión si los bytes reales superan los 60 MB, neutralizando cabeceras falsificadas.
  5. Modelo de Amenazas y Límites de Seguridad del Sistema Operativo:
    • Canal B y Elicitation previenen inyecciones de prompt indirectas, escalamiento de contexto o ejecución autónoma no autorizada de herramientas por parte del LLM.
    • Límites de aislamiento del host: Si un agente de IA o proceso secundario posee permisos de shell o ejecución arbitraria de comandos en el sistema operativo bajo la misma cuenta de usuario (mismo UID/SID), dicho proceso tiene acceso nativo al sistema de archivos local y podría leer las cookies de sesión, el llavero o los perfiles de navegador. Se recomienda ejecutar agentes con acceso a shell en entornos aislados o contenedores.

Esta herramienta fue creada para estudiantes de la UCA y no cuenta con patrocinio, aval, asociación ni relación formal con la Universidad Católica Argentina.

Licencia

Este proyecto se distribuye bajo los términos de la Licencia MIT. Consultá el archivo LICENSE para más detalles.

الأسئلة الشائعة

ما هو io.github.santinohicke/uca-mcp؟

MCP no oficial para estudiantes de la UCA: EVA y SIU Guaraní (materias, notas, horarios, exámenes).

كيف أثبّت io.github.santinohicke/uca-mcp؟

يعمل على جهازك. في Claude Code: claude mcp add uca-mcp -- npx -y uca-mcp@1.1.0. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج io.github.santinohicke/uca-mcp إلى مفتاح API؟

لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.

هل io.github.santinohicke/uca-mcp مفتوح المصدر؟

نعم. شيفرته متاحة على GitHub بترخيص MIT.

من يصون io.github.santinohicke/uca-mcp؟

ينشره santinohicke. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.