UniMCP

Official registry Other

Aula virtual (Moodle) y SIU Guaraní de universidades argentinas: cursos, entregas, notas, historia.

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package @nuwujix/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 configuration (Claude Desktop, Cursor, VS Code)
{
    "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>"
            }
        }
    }
}

Environment variables

  • UNI_CAMPUS Id del campus del registro (unju, unsa-exactas, uba-fiuba, utn-frba…). Sin definir, el que elegiste en `npx @nuwujix/unimcp login`.
  • UNI_USER Usuario del aula, si no usás `npx @nuwujix/unimcp login` (que lo guarda en el keychain).
  • UNI_PASS secret Contraseña del aula, si no usás `npx @nuwujix/unimcp login`.
  • UNI_GUARANI_USER Usuario de SIU Guaraní, si no usás `npx @nuwujix/unimcp login`.
  • UNI_GUARANI_PASS secret Contraseña de SIU Guaraní, si no usás `npx @nuwujix/unimcp login`.
  • UNI_AULA_BASE_URL URL del Moodle si tu campus no está en el registro, por ejemplo https://virtual.tu-universidad.edu.ar.
  • UNI_GUARANI_URL URL de la autogestión de Guaraní si tu campus no está en el registro.

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. UniMCP: el puente entre tu agente y los sistemas de tu universidad
  2. Qué podés pedirle
  3. Universidades y campus
  4. Tools
  5. Cómo instalar
  6. Dónde se guardan tus datos
  7. Desarrollo
  8. Aviso

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

IdUniversidadCampusProvinciaAula (Moodle)Guaraní
unjuUNJuUniversidad Nacional de JujuyJujuyvirtual.unju.edu.aralumnos.unju.edu.ar
unsa-exactasUNSaFacultad de Ciencias ExactasSaltaexavirtual.unsa.edu.arautogestiong3.unsa.edu.ar
unsa-saludUNSaFacultad de Ciencias de la SaludSaltasaludvirtual.unsa.edu.arautogestiong3.unsa.edu.ar
unsa-humanidadesUNSaFacultad de HumanidadesSaltafhvirtual.unsa.edu.ar/moodle—
unsa-economicasUNSaFacultad de Ciencias Económicas, Jurídicas y SocialesSaltamoodleeco.unsa.edu.ar/moodle—
unsaUNSaOtras facultadesSalta—autogestiong3.unsa.edu.ar
unt-facetUNTFACETTucumánfacetvirtual.facet.unt.edu.arguarani.unt.edu.ar
unt-faceUNTCiencias EconómicasTucumáncampus2.unt.edu.arguarani.unt.edu.ar
unt-filoUNTFilosofía y LetrasTucumáncampus.filo.unt.edu.arguarani.unt.edu.ar
unt-arquitecturaUNTFacultad de Arquitectura y UrbanismoTucumáncampus3.unt.edu.ar—
unt-derechoUNTFacultad de Derecho y Ciencias SocialesTucumáncampus4.unt.edu.ar—
untUNTOtras facultadesTucumán—guarani.unt.edu.ar
uba-fiubaUBAIngeniería (FIUBA)Ciudad Autónoma de Buenos Airescampusgrado.fi.uba.arguaraniautogestion.fi.uba.ar
uba-exactasUBACiencias Exactas y NaturalesCiudad Autónoma de Buenos Airescampus.exactas.uba.ar (SSO idEx)inscripciones.exactas.uba.ar
uba-agronomiaUBAAgronomía (FAUBA)Ciudad Autónoma de Buenos Airescampus.agro.uba.ar—
uba-farmaciaUBAFarmacia y BioquímicaCiudad Autónoma de Buenos Airescampus.ffyb.uba.ar—
uba-filoUBAFilosofía y LetrasCiudad Autónoma de Buenos Airescampus.filo.uba.ar—
uba-socialesUBACiencias SocialesCiudad Autónoma de Buenos Airescampus.sociales.uba.ar—
utn-frbaUTNRegional Buenos AiresCiudad Autónoma de Buenos Airesaulasvirtuales.frba.utn.edu.ar (SSO)—
utn-frtUTNRegional TucumánTucumánfrt.cvg.utn.edu.ar—
utn-frcUTNRegional CórdobaCórdobauv.frc.utn.edu.ar—
utn-frsfUTNRegional Santa FeSanta Fecampusvirtual.frsf.utn.edu.ar—
utn-fraUTNFacultad Regional AvellanedaBuenos Aireswww.utnfravirtual.org.ar—
utn-frbbUTNFacultad Regional Bahía BlancaBuenos Airesaulavirtual.frbb.utn.edu.ar—
utn-frgpUTNFacultad Regional General PachecoBuenos Airesfrgp.cvg.utn.edu.ar—
utn-frlpUTNFacultad Regional La PlataBuenos Airesfrlp.cvg.utn.edu.ar—
utn-frpUTNFacultad Regional ParanáEntre Ríosfrp.cvg.utn.edu.ar—
utn-frreUTNFacultad Regional ResistenciaChacofrre.cvg.utn.edu.ar—
utn-frroUTNFacultad Regional RosarioSanta Fefrro.cvg.utn.edu.ar—
utn-frchUTNFacultad Regional ChubutChubutfrch.cvg.utn.edu.ar—
utn-frconUTNFacultad Regional ConcordiaEntre Ríosfrcon.cvg.utn.edu.ar—
utn-frlrUTNFacultad Regional La RiojaLa Riojafrlr.cvg.utn.edu.ar—
utn-frnUTNFacultad Regional del NeuquénNeuquénfrn.cvg.utn.edu.ar—
utn-frraUTNFacultad Regional RafaelaSanta Fefrra.cvg.utn.edu.ar—
utn-frrqUTNFacultad Regional ReconquistaSanta Fefrrq.cvg.utn.edu.ar—
utn-frscUTNFacultad Regional Santa CruzSanta Cruzfrsc.cvg.utn.edu.ar—
utn-frsfcoUTNFacultad Regional San FranciscoCórdobafrsfco.cvg.utn.edu.ar—
utn-frsrUTNFacultad Regional San RafaelMendozacampus.frsr.utn.edu.ar/moodle—
utn-frtlUTNFacultad Regional Trenque LauquenBuenos Airesfrtl.cvg.utn.edu.ar—
utn-frvmUTNFacultad Regional Villa MaríaCórdobacvirtual.frvm.utn.edu.ar—
unc-famafUNCMatemática, Astronomía, Física y Computación (FAMAF)Córdobafamaf.aulavirtual.unc.edu.ar—
unicen-exactasUNICENCiencias ExactasBuenos Airesmoodle.exa.unicen.edu.ar—
unicen-humanasUNICENFacultad de Ciencias HumanasBuenos Airescampus.fch.unicen.edu.ar—
unsUNSUniversidad Nacional del SurBuenos Airesmoodle.uns.edu.ar/moodle—
unneUNNEUniversidad Nacional del NordesteCorrientesvirtual-moodle.unne.edu.ar—
uner-ingenieriaUNERIngeniería (FIUNER)Entre Ríoscampus.ingenieria.uner.edu.ar—
uncuyo-fadUNCuyoArtes y DiseñoMendozavirtual.fad.uncu.edu.ar—
uncuyo-ingenieriaUNCuyoFacultad de IngenieríaMendozaaulaabierta.ingenieria.uncuyo.edu.ar—
unsjUNSJUniversidad Nacional de San JuanSan Juancampusvirtual.unsj.edu.ar—
unslUNSLUniversidad Nacional de San LuisSan Luismoodle4vz.unsl.edu.ar/moodle—
unlpam-agronomiaUNLPamAgronomíaLa Pampav5.campus.agro.unlpam.edu.ar—
uncoUNCoUniversidad Nacional del ComahueNeuquénpedco.uncoma.edu.ar—
unco-medicasUNCoFacultad de Ciencias MédicasRío Negrocampusvirtualfacimed.uncoma.edu.ar—
unco-plenaUNCoPLENA (Plataforma de Entorno Abierto)Neuquénplena.uncoma.edu.ar—
unpsjbUNPSJBUniversidad Nacional de la Patagonia San Juan BoscoChubutcampusvirtual.unp.edu.ar—
untdfUNTDFUniversidad Nacional de Tierra del FuegoTierra del Fuegocampus.untdf.edu.ar—
unaf-recursos-naturalesUNaFFacultad de Recursos NaturalesFormosafrn.ead3.unf.edu.ar—
unam-enfermeriaUNaMEscuela de EnfermeríaMisionesaula.escenf.unam.edu.ar—
unam-forestalesUNaMFacultad de Ciencias ForestalesMisionescampusvirtual.fcf.unam.edu.ar—
unam-forestales-distanciaUNaMFacultad de Ciencias Forestales (a distancia)Misionesaulavirtual.fcf.unam.edu.ar—
unam-economicasUNaMFacultad de Ciencias EconómicasMisionesaulavirtual.fce.unam.edu.ar—
unam-economicas-distanciaUNaMFacultad de Ciencias Económicas (a distancia)Misionesead.fce.unam.edu.ar—
unam-exactasUNaMFacultad de Ciencias Exactas, Químicas y NaturalesMisioneswww.fceqyn.unam.edu.ar/moodle—
unam-humanidadesUNaMFacultad de Humanidades y Ciencias SocialesMisionesvirtual.fhycs.unam.edu.ar—
unam-ingenieriaUNaMFacultad de IngenieríaMisionesaulavirtual.fio.unam.edu.ar—
uncaUNCAUniversidad Nacional de CatamarcaCatamarcacampus.unca.edu.ar/campus—
unlarUNLaRUniversidad Nacional de La RiojaLa Riojacampusvirtual.unlar.edu.ar—
unseUNSECampus virtual (SIED)Santiago del Esterocampusvirtual.unse.edu.ar—
unse-fceytUNSEFacultad de Ciencias Exactas y TecnologíasSantiago del Esterocuv-fceyt.unse.edu.ar—
unlp-naturalesUNLPFacultad de Ciencias Naturales y MuseoBuenos Airesaulasvirtuales.fcnym.unlp.edu.ar—
unlp-aulasweb-gradoUNLPAulasWeb Grado (varias facultades)Buenos Airesaulaswebgrado.ead.unlp.edu.ar—
unlp-aulasweb-posgradoUNLPAulasWeb Posgrado (varias facultades)Buenos Airesaulaswebposgrado.ead.unlp.edu.ar—
unr-comunidadesUNRComunidades (plataforma general)Santa Fecomunidades.campusvirtualunr.edu.ar—
unr-carreras-cursosUNRCarreras y Cursos (a distancia)Santa Fecursos.campusvirtualunr.edu.ar—
unr-derechoUNRFacultad de DerechoSanta Fecomunidades5.campusvirtualunr.edu.ar—
unr-economicasUNRFacultad de Ciencias Económicas y EstadísticaSanta Fecomunidades3.campusvirtualunr.edu.ar—
unr-humanidades-artesUNRFacultad de Humanidades y ArtesSanta Fecomunidades4.campusvirtualunr.edu.ar—
unr-medicasUNRFacultad de Ciencias MédicasSanta Fecomunidades2.campusvirtualunr.edu.ar—
unr-psicologiaUNRFacultad de PsicologíaSanta Fecomunidades1.campusvirtualunr.edu.ar—
unvmUNVMCampus virtualCórdobacampusvirtual.unvm.edu.ar—
unvm-distanciaUNVMEducación a distanciaCórdobadistancia.unvm.edu.ar—
uaderUADERCampus de educación a distanciaEntre Ríoscampusuader.entrerios.gov.ar—
uader-gestionUADERFacultad de Ciencias de la GestiónEntre Ríosfcgvirtual.entrerios.gov.ar—
uader-vida-saludUADERFacultad de Ciencias de la Vida y la SaludEntre Ríosfcvsvirtual.entrerios.gov.ar—
uader-ciencia-tecnologiaUADERFacultad de Ciencia y TecnologíaEntre Ríosfcytvirtual.entrerios.gov.ar—
uader-humanidadesUADERFacultad de Humanidades, Artes y Ciencias SocialesEntre Ríosfhaycsvirtual.uader.edu.ar—
unl-economicasUNLFacultad de Ciencias EconómicasSanta Feservicios.unl.edu.ar/aulavirtual/fce—
unl-ingenieria-quimicaUNLFacultad de Ingeniería QuímicaSanta Feservicios.unl.edu.ar/aulavirtual/fiq—
unluUNLuUniversidad Nacional de LujánBuenos Airesmoodle.unlu.edu.ar—
unmdp-faudUNMdPFacultad de Arquitectura, Urbanismo y DiseñoBuenos Airescampusfaud.mdp.edu.ar—
unsam-unidad-centralUNSAMUnidad CentralBuenos Airescampusvirtualunidadcentral.unsam.edu.ar—
unsam-ciencia-tecnologiaUNSAMCiencia y Tecnología (ECyT, EByN, INCALIN, Sabato y Dan Beninson)Buenos Airescampusvirtualecyt.unsam.edu.ar—
unsam-economia-negociosUNSAMEscuela de Economía y NegociosBuenos Airescampusvirtualeeyn.unsam.edu.ar—
unsam-habitat-arte-rehabilitacionUNSAMEscuelas de Hábitat y Sostenibilidad, Arte y Patrimonio e ICRMBuenos Airescampusvirtualhsyaeicrm.unsam.edu.ar—
unsam-humanidadesUNSAMEscuela de HumanidadesBuenos Airescampusvirtualhu.unsam.edu.ar—
unsam-lenguasUNSAMPrograma de LenguasBuenos Airescampusvirtuallenguas.unsam.edu.ar—
unsam-socialesUNSAMSociales (EPyG e EIDAES)Buenos Airescampusvirtualsociales.unsam.edu.ar—
unahurUNAHURUniversidad Nacional de HurlinghamBuenos Airescampus2026.unahur.edu.ar—
unpazUNPAZUniversidad Nacional de José C. PazBuenos Airescampusvirtual.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)
ToolQué hace
aula_list_coursesLista tus cursos. Es el punto de partida.
aula_openEntra 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_searchBusca 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_upcomingLo 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_gradesTus 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_updatesQué cambió en tus materias en los últimos días: material nuevo, actividades editadas, foros con mensajes nuevos, notas.
aula_list_messagesTus 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_fileLee un archivo del aula, por partes cuando es largo.
aula_get_site_infoDatos de tu usuario en el aula virtual.
aula_forum_postAbre un hilo en un foro o responde en una discusión.
aula_forum_edit_postEdita una publicación tuya.
aula_forum_delete_postBorra una publicación tuya.
aula_assign_submitEntrega 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_linkSolo en modo HTTP: un link para subir los archivos de una entrega.
aula_choice_answerResponde una elección o te anota en un grupo.
aula_send_messageManda 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_eventAgrega 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)
ToolQué hace
guarani_menuLista 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_openAbre 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
  1. Bajá unimcp-<versión>.mcpb del último release.
  2. Hacele doble click (o arrastralo a Configuración → Extensiones de Claude Desktop) e instalalo.
  3. 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_PASS y UNI_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 de store.key (o la de UNIMCP_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.

Frequently asked questions

What is UniMCP?

Aula virtual (Moodle) y SIU Guaraní de universidades argentinas: cursos, entregas, notas, historia.

How do I install UniMCP?

It runs on your machine. In 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. For other clients, paste the JSON configuration from this page into their MCP settings.

Does UniMCP need an API key?

Yes. It expects UNI_PASS, UNI_GUARANI_PASS, which you set in its configuration.

Is UniMCP open source?

Its code is public on GitHub, but the repository does not declare a standard license.

Who maintains UniMCP?

It is published by HyNuwa. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.