UniMCP
Aula virtual (Moodle) y SIU Guaraní de universidades argentinas: cursos, entregas, notas, historia.
التثبيت
أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: .cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).
@nuwujix/unimcpclaude mcp add unimcp -e 'UNI_CAMPUS=<UNI_CAMPUS>' -e 'UNI_USER=<UNI_USER>' -e 'UNI_PASS=<your uni_pass>' -e 'UNI_GUARANI_USER=<UNI_GUARANI_USER>' -e 'UNI_GUARANI_PASS=<your uni_guarani_pass>' -e 'UNI_AULA_BASE_URL=<UNI_AULA_BASE_URL>' -e 'UNI_GUARANI_URL=<UNI_GUARANI_URL>' -- npx -y @nuwujix/unimcp@0.2.0
{
"mcpServers": {
"unimcp": {
"command": "npx",
"args": [
"-y",
"@nuwujix/unimcp@0.2.0"
],
"env": {
"UNI_CAMPUS": "<UNI_CAMPUS>",
"UNI_USER": "<UNI_USER>",
"UNI_PASS": "<your uni_pass>",
"UNI_GUARANI_USER": "<UNI_GUARANI_USER>",
"UNI_GUARANI_PASS": "<your uni_guarani_pass>",
"UNI_AULA_BASE_URL": "<UNI_AULA_BASE_URL>",
"UNI_GUARANI_URL": "<UNI_GUARANI_URL>"
}
}
}
}
متغيرات البيئة
UNI_CAMPUSId del campus del registro (unju, unsa-exactas, uba-fiuba, utn-frba…). Sin definir, el que elegiste en `npx @nuwujix/unimcp login`.UNI_USERUsuario del aula, si no usás `npx @nuwujix/unimcp login` (que lo guarda en el keychain).UNI_PASSسري Contraseña del aula, si no usás `npx @nuwujix/unimcp login`.UNI_GUARANI_USERUsuario de SIU Guaraní, si no usás `npx @nuwujix/unimcp login`.UNI_GUARANI_PASSسري Contraseña de SIU Guaraní, si no usás `npx @nuwujix/unimcp login`.UNI_AULA_BASE_URLURL del Moodle si tu campus no está en el registro, por ejemplo https://virtual.tu-universidad.edu.ar.UNI_GUARANI_URLURL de la autogestión de Guaraní si tu campus no está en el registro.
التوثيق
مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.
المحتويات
UniMCP: el puente entre tu agente y los sistemas de tu universidad
Este es un Model Context Protocol server NO OFICIAL para universidades argentinas. Con él podés pedirle a tu agente (Claude, ChatGPT, etc.) que lea los apuntes del aula virtual (Moodle) y consulte tu SIU Guaraní y, con tu confirmación, que publique en los foros o entregue tareas. Corre en tu computadora o como servidor HTTP con OAuth.
¿Sos alumno y no programás? Empezá por la guía para alumnos.
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."
- "¿Qué tengo que entregar esta semana?"
- "¿Cómo voy en Física?"
- "¿Hay algo nuevo en el aula esta semana?"
- "¿Me contestó el profe de Álgebra?"
- "¿Qué nota me pusieron en el TP1 y qué me corrigieron?"
- "¿Qué finales tengo aprobados y cuál es mi promedio?" (Guaraní)
- "¿En qué materias estoy inscripto este cuatrimestre?" (Guaraní)
- "¿Qué mesas de examen hay para Análisis II?" (Guaraní)
Universidades y campus
| Id | Universidad | Campus | Provincia | Aula (Moodle) | Guaraní |
|---|---|---|---|---|---|
unju | UNJu | Universidad Nacional de Jujuy | Jujuy | virtual.unju.edu.ar | alumnos.unju.edu.ar |
unsa-exactas | UNSa | Facultad de Ciencias Exactas | Salta | exavirtual.unsa.edu.ar | autogestiong3.unsa.edu.ar |
unsa-salud | UNSa | Facultad de Ciencias de la Salud | Salta | saludvirtual.unsa.edu.ar | autogestiong3.unsa.edu.ar |
unsa-humanidades | UNSa | Facultad de Humanidades | Salta | fhvirtual.unsa.edu.ar/moodle | — |
unsa-economicas | UNSa | Facultad de Ciencias Económicas, Jurídicas y Sociales | Salta | moodleeco.unsa.edu.ar/moodle | — |
unsa | UNSa | Otras facultades | Salta | — | autogestiong3.unsa.edu.ar |
unt-facet | UNT | FACET | Tucumán | facetvirtual.facet.unt.edu.ar | guarani.unt.edu.ar |
unt-face | UNT | Ciencias Económicas | Tucumán | campus2.unt.edu.ar | guarani.unt.edu.ar |
unt-filo | UNT | Filosofía y Letras | Tucumán | campus.filo.unt.edu.ar | guarani.unt.edu.ar |
unt-arquitectura | UNT | Facultad de Arquitectura y Urbanismo | Tucumán | campus3.unt.edu.ar | — |
unt-derecho | UNT | Facultad de Derecho y Ciencias Sociales | Tucumán | campus4.unt.edu.ar | — |
unt | UNT | Otras facultades | Tucumán | — | guarani.unt.edu.ar |
uba-fiuba | UBA | Ingeniería (FIUBA) | Ciudad Autónoma de Buenos Aires | campusgrado.fi.uba.ar | guaraniautogestion.fi.uba.ar |
uba-exactas | UBA | Ciencias Exactas y Naturales | Ciudad Autónoma de Buenos Aires | campus.exactas.uba.ar (SSO idEx) | inscripciones.exactas.uba.ar |
uba-agronomia | UBA | Agronomía (FAUBA) | Ciudad Autónoma de Buenos Aires | campus.agro.uba.ar | — |
uba-farmacia | UBA | Farmacia y Bioquímica | Ciudad Autónoma de Buenos Aires | campus.ffyb.uba.ar | — |
uba-filo | UBA | Filosofía y Letras | Ciudad Autónoma de Buenos Aires | campus.filo.uba.ar | — |
uba-sociales | UBA | Ciencias Sociales | Ciudad Autónoma de Buenos Aires | campus.sociales.uba.ar | — |
utn-frba | UTN | Regional Buenos Aires | Ciudad Autónoma de Buenos Aires | aulasvirtuales.frba.utn.edu.ar (SSO) | — |
utn-frt | UTN | Regional Tucumán | Tucumán | frt.cvg.utn.edu.ar | — |
utn-frc | UTN | Regional Córdoba | Córdoba | uv.frc.utn.edu.ar | — |
utn-frsf | UTN | Regional Santa Fe | Santa Fe | campusvirtual.frsf.utn.edu.ar | — |
utn-fra | UTN | Facultad Regional Avellaneda | Buenos Aires | www.utnfravirtual.org.ar | — |
utn-frbb | UTN | Facultad Regional Bahía Blanca | Buenos Aires | aulavirtual.frbb.utn.edu.ar | — |
utn-frgp | UTN | Facultad Regional General Pacheco | Buenos Aires | frgp.cvg.utn.edu.ar | — |
utn-frlp | UTN | Facultad Regional La Plata | Buenos Aires | frlp.cvg.utn.edu.ar | — |
utn-frp | UTN | Facultad Regional Paraná | Entre Ríos | frp.cvg.utn.edu.ar | — |
utn-frre | UTN | Facultad Regional Resistencia | Chaco | frre.cvg.utn.edu.ar | — |
utn-frro | UTN | Facultad Regional Rosario | Santa Fe | frro.cvg.utn.edu.ar | — |
utn-frch | UTN | Facultad Regional Chubut | Chubut | frch.cvg.utn.edu.ar | — |
utn-frcon | UTN | Facultad Regional Concordia | Entre Ríos | frcon.cvg.utn.edu.ar | — |
utn-frlr | UTN | Facultad Regional La Rioja | La Rioja | frlr.cvg.utn.edu.ar | — |
utn-frn | UTN | Facultad Regional del Neuquén | Neuquén | frn.cvg.utn.edu.ar | — |
utn-frra | UTN | Facultad Regional Rafaela | Santa Fe | frra.cvg.utn.edu.ar | — |
utn-frrq | UTN | Facultad Regional Reconquista | Santa Fe | frrq.cvg.utn.edu.ar | — |
utn-frsc | UTN | Facultad Regional Santa Cruz | Santa Cruz | frsc.cvg.utn.edu.ar | — |
utn-frsfco | UTN | Facultad Regional San Francisco | Córdoba | frsfco.cvg.utn.edu.ar | — |
utn-frsr | UTN | Facultad Regional San Rafael | Mendoza | campus.frsr.utn.edu.ar/moodle | — |
utn-frtl | UTN | Facultad Regional Trenque Lauquen | Buenos Aires | frtl.cvg.utn.edu.ar | — |
utn-frvm | UTN | Facultad Regional Villa María | Córdoba | cvirtual.frvm.utn.edu.ar | — |
unc-famaf | UNC | Matemática, Astronomía, Física y Computación (FAMAF) | Córdoba | famaf.aulavirtual.unc.edu.ar | — |
unicen-exactas | UNICEN | Ciencias Exactas | Buenos Aires | moodle.exa.unicen.edu.ar | — |
unicen-humanas | UNICEN | Facultad de Ciencias Humanas | Buenos Aires | campus.fch.unicen.edu.ar | — |
uns | UNS | Universidad Nacional del Sur | Buenos Aires | moodle.uns.edu.ar/moodle | — |
unne | UNNE | Universidad Nacional del Nordeste | Corrientes | virtual-moodle.unne.edu.ar | — |
uner-ingenieria | UNER | Ingeniería (FIUNER) | Entre Ríos | campus.ingenieria.uner.edu.ar | — |
uncuyo-fad | UNCuyo | Artes y Diseño | Mendoza | virtual.fad.uncu.edu.ar | — |
uncuyo-ingenieria | UNCuyo | Facultad de Ingeniería | Mendoza | aulaabierta.ingenieria.uncuyo.edu.ar | — |
unsj | UNSJ | Universidad Nacional de San Juan | San Juan | campusvirtual.unsj.edu.ar | — |
unsl | UNSL | Universidad Nacional de San Luis | San Luis | moodle4vz.unsl.edu.ar/moodle | — |
unlpam-agronomia | UNLPam | Agronomía | La Pampa | v5.campus.agro.unlpam.edu.ar | — |
unco | UNCo | Universidad Nacional del Comahue | Neuquén | pedco.uncoma.edu.ar | — |
unco-medicas | UNCo | Facultad de Ciencias Médicas | Río Negro | campusvirtualfacimed.uncoma.edu.ar | — |
unco-plena | UNCo | PLENA (Plataforma de Entorno Abierto) | Neuquén | plena.uncoma.edu.ar | — |
unpsjb | UNPSJB | Universidad Nacional de la Patagonia San Juan Bosco | Chubut | campusvirtual.unp.edu.ar | — |
untdf | UNTDF | Universidad Nacional de Tierra del Fuego | Tierra del Fuego | campus.untdf.edu.ar | — |
unaf-recursos-naturales | UNaF | Facultad de Recursos Naturales | Formosa | frn.ead3.unf.edu.ar | — |
unam-enfermeria | UNaM | Escuela de Enfermería | Misiones | aula.escenf.unam.edu.ar | — |
unam-forestales | UNaM | Facultad de Ciencias Forestales | Misiones | campusvirtual.fcf.unam.edu.ar | — |
unam-forestales-distancia | UNaM | Facultad de Ciencias Forestales (a distancia) | Misiones | aulavirtual.fcf.unam.edu.ar | — |
unam-economicas | UNaM | Facultad de Ciencias Económicas | Misiones | aulavirtual.fce.unam.edu.ar | — |
unam-economicas-distancia | UNaM | Facultad de Ciencias Económicas (a distancia) | Misiones | ead.fce.unam.edu.ar | — |
unam-exactas | UNaM | Facultad de Ciencias Exactas, Químicas y Naturales | Misiones | www.fceqyn.unam.edu.ar/moodle | — |
unam-humanidades | UNaM | Facultad de Humanidades y Ciencias Sociales | Misiones | virtual.fhycs.unam.edu.ar | — |
unam-ingenieria | UNaM | Facultad de Ingeniería | Misiones | aulavirtual.fio.unam.edu.ar | — |
unca | UNCA | Universidad Nacional de Catamarca | Catamarca | campus.unca.edu.ar/campus | — |
unlar | UNLaR | Universidad Nacional de La Rioja | La Rioja | campusvirtual.unlar.edu.ar | — |
unse | UNSE | Campus virtual (SIED) | Santiago del Estero | campusvirtual.unse.edu.ar | — |
unse-fceyt | UNSE | Facultad de Ciencias Exactas y Tecnologías | Santiago del Estero | cuv-fceyt.unse.edu.ar | — |
unlp-naturales | UNLP | Facultad de Ciencias Naturales y Museo | Buenos Aires | aulasvirtuales.fcnym.unlp.edu.ar | — |
unlp-aulasweb-grado | UNLP | AulasWeb Grado (varias facultades) | Buenos Aires | aulaswebgrado.ead.unlp.edu.ar | — |
unlp-aulasweb-posgrado | UNLP | AulasWeb Posgrado (varias facultades) | Buenos Aires | aulaswebposgrado.ead.unlp.edu.ar | — |
unr-comunidades | UNR | Comunidades (plataforma general) | Santa Fe | comunidades.campusvirtualunr.edu.ar | — |
unr-carreras-cursos | UNR | Carreras y Cursos (a distancia) | Santa Fe | cursos.campusvirtualunr.edu.ar | — |
unr-derecho | UNR | Facultad de Derecho | Santa Fe | comunidades5.campusvirtualunr.edu.ar | — |
unr-economicas | UNR | Facultad de Ciencias Económicas y Estadística | Santa Fe | comunidades3.campusvirtualunr.edu.ar | — |
unr-humanidades-artes | UNR | Facultad de Humanidades y Artes | Santa Fe | comunidades4.campusvirtualunr.edu.ar | — |
unr-medicas | UNR | Facultad de Ciencias Médicas | Santa Fe | comunidades2.campusvirtualunr.edu.ar | — |
unr-psicologia | UNR | Facultad de Psicología | Santa Fe | comunidades1.campusvirtualunr.edu.ar | — |
unvm | UNVM | Campus virtual | Córdoba | campusvirtual.unvm.edu.ar | — |
unvm-distancia | UNVM | Educación a distancia | Córdoba | distancia.unvm.edu.ar | — |
uader | UADER | Campus de educación a distancia | Entre Ríos | campusuader.entrerios.gov.ar | — |
uader-gestion | UADER | Facultad de Ciencias de la Gestión | Entre Ríos | fcgvirtual.entrerios.gov.ar | — |
uader-vida-salud | UADER | Facultad de Ciencias de la Vida y la Salud | Entre Ríos | fcvsvirtual.entrerios.gov.ar | — |
uader-ciencia-tecnologia | UADER | Facultad de Ciencia y Tecnología | Entre Ríos | fcytvirtual.entrerios.gov.ar | — |
uader-humanidades | UADER | Facultad de Humanidades, Artes y Ciencias Sociales | Entre Ríos | fhaycsvirtual.uader.edu.ar | — |
unl-economicas | UNL | Facultad de Ciencias Económicas | Santa Fe | servicios.unl.edu.ar/aulavirtual/fce | — |
unl-ingenieria-quimica | UNL | Facultad de Ingeniería Química | Santa Fe | servicios.unl.edu.ar/aulavirtual/fiq | — |
unlu | UNLu | Universidad Nacional de Luján | Buenos Aires | moodle.unlu.edu.ar | — |
unmdp-faud | UNMdP | Facultad de Arquitectura, Urbanismo y Diseño | Buenos Aires | campusfaud.mdp.edu.ar | — |
unsam-unidad-central | UNSAM | Unidad Central | Buenos Aires | campusvirtualunidadcentral.unsam.edu.ar | — |
unsam-ciencia-tecnologia | UNSAM | Ciencia y Tecnología (ECyT, EByN, INCALIN, Sabato y Dan Beninson) | Buenos Aires | campusvirtualecyt.unsam.edu.ar | — |
unsam-economia-negocios | UNSAM | Escuela de Economía y Negocios | Buenos Aires | campusvirtualeeyn.unsam.edu.ar | — |
unsam-habitat-arte-rehabilitacion | UNSAM | Escuelas de Hábitat y Sostenibilidad, Arte y Patrimonio e ICRM | Buenos Aires | campusvirtualhsyaeicrm.unsam.edu.ar | — |
unsam-humanidades | UNSAM | Escuela de Humanidades | Buenos Aires | campusvirtualhu.unsam.edu.ar | — |
unsam-lenguas | UNSAM | Programa de Lenguas | Buenos Aires | campusvirtuallenguas.unsam.edu.ar | — |
unsam-sociales | UNSAM | Sociales (EPyG e EIDAES) | Buenos Aires | campusvirtualsociales.unsam.edu.ar | — |
unahur | UNAHUR | Universidad Nacional de Hurlingham | Buenos Aires | campus2026.unahur.edu.ar | — |
unpaz | UNPAZ | Universidad Nacional de José C. Paz | Buenos Aires | campusvirtual.unpaz.edu.ar | — |
Cada aula se verificó con tool_mobile_get_public_config (el servicio móvil de Moodle tiene que estar habilitado) y cada Guaraní con su página de login de autogestión. Entran las aulas con login propio de Moodle o con SSO de Keycloak: las que entran con SAML, OAuth2 o un portal propio (como varias de la UNC) todavía no. Probado a fondo solo en UNJu; los demás faltan probarlos con usuarios reales. Si sos de otra universidad, probalo y contanos cómo te fue con la plantilla Probé mi universidad, aunque haya andado todo bien. Si tu facultad usa Moodle y no está, pedila con Pedir mi universidad. Más formas de colaborar en CONTRIBUTING.md.
Sumar tu campus
Si el tuyo no está, podés usarlo igual con variables de entorno (o un .env, ver .env.example):
UNI_AULA_BASE_URL=https://virtual.tu-universidad.edu.ar
UNI_GUARANI_URL=https://autogestion.tu-universidad.edu.ar/autogestion
# UNI_SSO_HOST=sso.tu-universidad.edu.ar # solo si el aula entra por Keycloak
y en el login elegís personalizado. Para sumarlo para todos, agregá una entrada en CAMPUSES de src/shared/campus.ts. Para saber si un Moodle sirve:
curl -s -X POST "https://TU-AULA/lib/ajax/service-nologin.php?info=tool_mobile_get_public_config" \
-H 'content-type: application/json' -d '[{"index":0,"methodname":"tool_mobile_get_public_config","args":{}}]'
Tiene que contestar "enablemobilewebservice":1. Si trae identityproviders, el login pasa por un SSO y hay que cargar su host en ssoHost.
Tools
Aula virtual (Moodle)
| Tool | Qué hace |
|---|---|
aula_list_courses | Lista tus cursos. Es el punto de partida. |
aula_open | Entra a un curso, una sección, 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. Un curso grande llega como índice de secciones con sus actividades, y cada sección se abre aparte. Un cuestionario trae si está abierto o cerrado, sus fechas, el límite de tiempo y los intentos que te quedan (nunca las preguntas). Si algo se recortó para que entre, la respuesta lo avisa y dice cómo verlo. |
aula_search | Busca palabras en uno o en todos tus cursos: secciones, módulos, nombres de archivo y discusiones de los foros. Compara palabras enteras e ignora las de menos de 3 letras, salvo los números. Sirve cuando no sabés en qué materia está algo. |
aula_list_upcoming | Lo que viene en todas tus materias: qué tenés pendiente de entregar o resolver y para cuándo, y el resto del calendario (aperturas, clases, eventos del curso). |
aula_list_grades | Tus notas: un resumen de cada materia o, en una, cada ítem del libro de calificaciones con su nota, rango y la devolución del docente. Avisa si el docente oculta las notas. |
aula_list_updates | Qué cambió en tus materias en los últimos días: material nuevo, actividades editadas, foros con mensajes nuevos, notas. |
aula_list_messages | Tus mensajes privados del aula: las conversaciones con lo último de cada una y cuántas tenés sin leer, o los mensajes de una. No las marca como leídas. |
aula_read_file | Lee un archivo del aula, por partes cuando es largo. |
aula_get_site_info | Datos de tu usuario 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. Primero muestra una vista previa (qué archivos se suman, cuáles quedan y cuáles se quitan) y entrega recién cuando confirmás. |
aula_assign_upload_link | Solo en modo HTTP: un link para subir los archivos de una entrega. |
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 de tus cursos. Primero muestra a quién le llega y con qué rol, y lo manda recién cuando confirmás. |
aula_calendar_add_event | Agrega un recordatorio a tu calendario del aula. |
También trae un prompt, aula_plan_semana (en Claude Desktop, en el menú "+"): arma el plan de la semana con lo que tenés que entregar, lo nuevo en el aula y cómo vas en cada materia.
SIU Guaraní (autogestión, G3W)
| Tool | Qué hace |
|---|---|
guarani_menu | Lista las operaciones que tu universidad habilitó (historia académica, plan, inscripciones, mesas…) con su dirección. Si tenés más de una carrera, dice cuál está activa y cómo cambiar a las otras. |
guarani_open | Abre una página de Guaraní y la devuelve como texto, con las tablas fila por fila, los avisos y los enlaces a otras páginas. La historia académica llega por materia, con nota, resultado, fecha y vencimiento de cada registro, y avisa qué regularidades ya vencieron. La oferta de comisiones llega por período y materia, y las dos se pueden filtrar por materia. |
Guaraní no tiene API: el servidor entra con tu usuario y lee las páginas como lo harías vos. Por ahora solo lee: para inscribirte, el agente te pasa el link. Las tools solo aparecen si tu campus tiene esa plataforma.
Cómo instalar
Instalación fácil: Claude Desktop
- Bajá
unimcp-<versión>.mcpbdel último release. - Hacele doble click (o arrastralo a Configuración → Extensiones de Claude Desktop) e instalalo.
- Completá tu campus (el id de la tabla de arriba, por ejemplo
unju) y tus usuarios y contraseñas del aula y de Guaraní. Claude Desktop guarda las contraseñas de forma segura y solo viajan a tu universidad.
No hace falta instalar nada más: Claude Desktop trae su propio Node.
Con la terminal (cualquier cliente)
Necesitás Node.js 22 o superior.
1. Iniciar sesión
npx -y @nuwujix/unimcp login
Buscás tu campus por sigla, facultad o provincia (UNC, exactas, Córdoba), y te pide el usuario y la contraseña del aula y después los de Guaraní (que suele ser tu DNI). Si te equivocás de contraseña, te la vuelve a pedir (hasta 3 veces, para que no se bloquee tu cuenta). Se hace una sola vez: después el servidor renueva las sesiones solo.
Para ver si anda todo, npx -y @nuwujix/unimcp check prueba los logins y dice qué tools funcionan en tu aula, sin mostrar datos personales. Si anduvo, pegá el resumen en el hilo del mapa y aparecés en la web, en el pin de tu campus.
2. Agregarlo a tu cliente
Claude Code
claude mcp add uni -- npx -y @nuwujix/unimcp
Claude Desktop: en Settings → Developer → Edit Config, dentro de mcpServers:
"uni": {
"command": "npx",
"args": ["-y", "@nuwujix/unimcp"]
}
En Windows, si no arranca, usá "command": "cmd" y "args": ["/c", "npx", "-y", "@nuwujix/unimcp"].
Codex: codex mcp add uni -- npx -y @nuwujix/unimcp · Gemini CLI: gemini mcp add uni npx -y @nuwujix/unimcp
Cursor (~/.cursor/mcp.json) y VS Code (.vscode/mcp.json): un servidor STDIO con "command": "npx" y "args": ["-y", "@nuwujix/unimcp"].
Cualquier cliente MCP que lance servidores por STDIO sirve con npx -y @nuwujix/unimcp.
Modo HTTP (opcional)
Necesita Node 22.13 o más nuevo:
npx -y @nuwujix/unimcp login --http # una vez: te muestra el token para el header Authorization
npx -y @nuwujix/unimcp --http --port 3000
Hosteado, el servidor también hace de servidor de autorización OAuth: el cliente MCP abre una página donde el alumno elige su campus y entra con su usuario del aula. La contraseña se usa una sola vez y no se guarda. La configuración (quién puede entrar, URL pública, clave de cifrado) está en .env.example, con las variables UNIMCP_*.
En modo HTTP, por defecto no hay tools que escriben (publicar, mandar mensajes, entregar): así, un post que intente darle órdenes al modelo no puede hacer que publique en nombre del alumno. Quien hostea las habilita con UNIMCP_WRITE_TOOLS (all o una lista de nombres), y si faltan, el servidor se lo avisa al agente para que te diga que lo hagas desde el aula. Instalado en tu compu están todas, y UNIMCP_WRITE_TOOLS=none las saca.
En modo HTTP SIU Guaraní todavía no está disponible: su sesión vence en minutos y renovarla necesita la contraseña, que el servidor hosteado no guarda.
Con Docker:
docker build -t unimcp .
docker run -d --name unimcp --network host --restart unless-stopped \
-e HOST=127.0.0.1 -e PORT=8100 -e UNIMCP_PUBLIC_URL=https://mcp.tu-dominio.com \
-e UNIMCP_KEY=$(openssl rand -base64 32) -v unimcp-data:/data unimcp
Dónde se guardan tus datos
Instalado en tu computadora, todo queda ahí:
- Usuarios y contraseñas (aula y Guaraní): en el gestor de credenciales del sistema (Windows Credential Manager, Keychain en macOS, Secret Service en Linux). Sin gestor, por variables de entorno:
UNI_USER/UNI_PASSyUNI_GUARANI_USER/UNI_GUARANI_PASS. - Campus elegido, token del aula y cookies de sesión: en
%APPDATA%\unimcp\(Windows) o~/.config/unimcp/(Linux y macOS). - Con la extensión de Claude Desktop: las contraseñas las guarda Claude Desktop (en los campos marcados como sensibles de la extensión), y el token y las cookies van a la misma carpeta.
- En modo HTTP: la contraseña no se guarda; la sesión va cifrada en
unimcp.db, con la clave destore.key(o la deUNIMCP_KEY). Del token del cliente solo se guarda el hash.
Los links que el agente te pasa abren con la sesión de tu navegador y nunca incluyen tu token.
Los datos de otras personas que aparecen en el aula (una lista de alumnos con DNI o legajo, el teléfono o el mail de un compañero) no le llegan al agente: las listas se resumen en si figurás o no, y los DNI, emails y teléfonos sueltos se tapan. Quedan los tuyos y los mails institucionales o de contacto de la cátedra. En tu compu podés verlos enteros con UNI_SHOW_THIRD_PARTY_DATA=1.
Si encontrás una falla de seguridad, reportala en privado como explica SECURITY.md.
Desarrollo
npm install
npm run login # una vez
npm run dev # servidor por STDIO desde src/, con tsx
npm test # tests, con respuestas inventadas de Moodle y G3W
npm run build # compila a build/
npm run mcpb # arma la extensión de Claude Desktop (unimcp-<versión>.mcpb)
La arquitectura y las convenciones están en AGENTS.md, y lo que sigue en el roadmap.
Aviso
Este proyecto no está afiliado ni avalado por ninguna universidad ni por el SIU. Usalo bajo tu responsabilidad.
الأسئلة الشائعة
ما هو UniMCP؟
Aula virtual (Moodle) y SIU Guaraní de universidades argentinas: cursos, entregas, notas, historia.
كيف أثبّت UniMCP؟
يعمل على جهازك. في Claude Code: claude mcp add unimcp -e 'UNI_CAMPUS=<UNI_CAMPUS>' -e 'UNI_USER=<UNI_USER>' -e 'UNI_PASS=<your uni_pass>' -e 'UNI_GUARANI_USER=<UNI_GUARANI_USER>' -e 'UNI_GUARANI_PASS=<your uni_guarani_pass>' -e 'UNI_AULA_BASE_URL=<UNI_AULA_BASE_URL>' -e 'UNI_GUARANI_URL=<UNI_GUARANI_URL>' -- npx -y @nuwujix/unimcp@0.2.0. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.
هل يحتاج UniMCP إلى مفتاح API؟
نعم. يتطلب UNI_PASS, UNI_GUARANI_PASS، وتضبطها في إعداداته.
هل UniMCP مفتوح المصدر؟
شيفرته علنية على GitHub، لكن المستودع لا يعلن ترخيصًا قياسيًا.
من يصون UniMCP؟
ينشره HyNuwa. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.
من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.