Campus Cli

io.github.alejooroncoyPublished by GitHub account alejooroncoyv3.1.0Updated Oct 30, 2026

Campus relay MCP client: authenticated access to courses, assignments, grades and materials.

Overview

AI-generated overview

Local stdio MCP client that relays an assistant to the Campus service for authenticated access to university courses, assignments, grades and materials.

What you can do
  • List courses, course contents and grades, and read assignments, attempts and feedback
  • Read course messages and university-specific profile and grade data
  • Download course files and folders through temporary relay links
  • Discover and call the tools the relay publishes, and read public Blackboard API endpoints
  • Log in, check status and identity, and log out of the relay session
When to use it
Useful for students at supported universities (UPC and UPN in the initial hosted release) who want an AI client to read their Blackboard course data, grades and materials without opening the web portal each time.
Requirements
Node.js 22.13 or newer and a local browser (Chrome/Edge, or Chromium installed for login). Run campus login first: OAuth authorization plus a Playwright browser session on your machine to complete university login and MFA. Optional CAMPUS_RELAY_URL (HTTPS, defaults to the hosted relay) and CAMPUS_DOWNLOAD_DIR. Network access to the relay.
Before you install
Login asks consent to send only campus cookies to the hosted relay, which stores an encrypted session and issues an MCP token; passwords and Microsoft/Google cookies are not sent. The relay enforces the account plan and quota, and installing the CLI grants no free access. It is an unofficial integration not endorsed by Blackboard or the universities. Reads only: submissions and drafts must be done in Aula Virtual. Downloads write files to disk without overwriting existing ones.

Installation

In SourceWeft

  1. Open Campus Cli in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

campus-cli

[npm version]

Conecta tu campus universitario con tu terminal o cliente de IA mediante el relay de Campus.

Versión 3.1.0. Desde la 3.0.0 todos los comandos de datos y el MCP por stdio usan el relay autenticado. El servidor aplica el plan y el cupo de la cuenta en cada operación. Instalar la CLI no concede acceso gratuito ni permite omitir esos controles.

La política actual del relay conserva sus cinco consultas de prueba. Esta migración cierra la alternativa local de la nueva distribución; no cambia la política de pruebas del servidor ni puede retirar código o versiones 2.x ya descargados.

Campus es una integración no oficial. Blackboard, UPC, UPN y las demás universidades no patrocinan este proyecto. Canvas y Moodle siguen en el roadmap.

Instalación y login

Requiere Node.js 22.13 o superior y un navegador para autorizar la cuenta.

bash
npm install -g [email protected]campus logincampus courses list --jsoncampus assignments list <courseId> --json

campus login autoriza tu cuenta Campus con OAuth y luego abre Playwright en tu equipo para entrar a tu universidad y completar el MFA. Pide consentimiento para enviar únicamente las cookies del campus al relay; no envía contraseñas ni cookies de Microsoft o Google. El relay verifica la identidad contra Blackboard antes de guardar la sesión cifrada y habilitar tu token MCP. campus account login es un alias. Las sesiones locales antiguas de Blackboard y de la cuenta Google no conceden acceso al relay: hace falta autorizarlo una vez.

Playwright se incluye como dependencia del cliente y busca Chrome/Edge locales; si hace falta, instala Chromium para el login. El navegador usa un contexto temporal y se cierra al capturar la sesión. El cliente guarda únicamente su autorización del relay en ~/.blackboard-cli/relay/, con permisos privados y separada para cada URL del servicio.

CLI

Tras instalar la versión 3.x, estos comandos están disponibles como campus, campus-cli, blackboard y blackboard-upc:

bash
campus logincampus login --university upn-pecampus status --jsoncampus whoamicampus courses list --jsoncampus courses contents <courseId> --parent <contentId> --jsoncampus courses grades <courseId> --jsoncampus assignments list <courseId> --jsoncampus assignments attempts <courseId> <columnId> --jsoncampus assignments feedback <courseId> --jsoncampus messages --course <courseId> --jsoncampus upn profilecampus upn grades <courseCode>campus miupc coursescampus miupc grades --course <courseCode>campus logout

Las respuestas se imprimen como JSON; --json se conserva por compatibilidad. Los códigos de Mi UPC y Mi Mundo UPN son distintos de los IDs de Blackboard. El relay decide qué herramientas ofrece según la universidad conectada. El login local comprueba la lista de universidades que admite ese relay antes de capturar cookies. La publicación inicial del contrato hospedado admite UPC y UPN; las universidades no anunciadas se rechazan explícitamente. Para una terminal automatizada, --consent-session-upload expresa el consentimiento; el usuario sigue completando el login y MFA en el navegador. Cuando expire la sesión universitaria, vuelve a ejecutar campus login.

Para descubrir el catálogo y ejecutar cualquier herramienta publicada:

bash
campus tools listcampus tools call banner_get_weekly_schedulecampus tools call blackboard_get_course --args '{"courseId":"_100004_1"}'campus tools call campus_archimate_guidance --args '{"topic":"overview"}'campus tools call campus_mendeley_connect

tools call conserva el resultado MCP completo, incluidos enlaces, metadatos y mensajes de pago. Para leer otros endpoints públicos de Blackboard:

bash
campus api GET /learn/api/public/v1/users/me

El relay actual ofrece lecturas de Blackboard. Las entregas y borradores se realizan en Aula Virtual; la CLI no ejecuta envíos ni cambios directos. La compatibilidad y los comandos que cambiaron se detallan en la migración al relay.

Descargas

bash
campus download <courseId> <contentId> --out curso/semana1campus download-folder <courseId> <folderId> --out curso --filter diapositivas

Los archivos se obtienen con enlaces temporales emitidos por el relay después de su autorización. Se guardan bajo ~/Downloads/campus-cli o CAMPUS_DOWNLOAD_DIR, en subdirectorios relativos, con límites de tamaño y sin sobrescribir archivos. Los resultados MCP conservan los enlaces y recursos que publica el servicio.

MCP por stdio

Primero ejecuta campus login. Después conecta tu cliente MCP con el ejecutable de esta versión:

json
{  "mcpServers": {    "campus": {      "command": "campus",      "args": ["mcp"]    }  }}

Para probar desde el checkout usa node como command y las rutas absolutas de run.js y el argumento mcp. El proceso reenvía el protocolo al relay: instrucciones, herramientas, recursos, resultados, cancelaciones y solicitudes de confirmación del cliente. No registra herramientas universitarias locales ni cambia a proveedores locales cuando hay un rechazo de pago, sesión o red.

Los clientes compatibles con MCP remoto pueden conectarse directamente a https://mcp.campuscli.com/mcp usando su flujo OAuth.

Configuración

VariableUso
CAMPUS_RELAY_URLEndpoint MCP completo; por defecto https://mcp.campuscli.com/mcp. HTTPS obligatorio, salvo loopback para desarrollo.
CAMPUS_DOWNLOAD_DIRDirectorio raíz de las descargas de la CLI.

La autorización OAuth/MCP no sigue redirecciones de red ni envía tokens a otro origen. Cambiar la URL del relay exige su propia autorización. campus logout elimina las credenciales locales de ese relay; no revoca otras conexiones de la cuenta.

Desarrollo

bash
npm run buildnode --import tsx --test tests/relay-client.test.tsnpm pack --dry-run

El código fuente de los proveedores anteriores se conserva para mantener el núcleo privado y sus pruebas. La distribución npm 3.x incluye únicamente el cliente del relay y utilidades de descarga; no incluye el motor de consultas universitarias, sesiones heredadas ni los antiguos subpaths de biblioteca. El único módulo de universidad del cliente realiza la captura temporal de login. El backend hospedado continúa utilizando su artefacto de núcleo fijado por versión; no debe sustituirse por este paquete cliente.

Consulta la documentación histórica 2.x, la migración 3.x y el registro de cambios.

Licencia ISC. Los términos del servicio hospedado y sus controles de acceso son independientes de la licencia del cliente.

Source: README.md at commit 5a05856

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the server did not start.

Version history

2
  1. v3.1.0LatestOct 30, 2026
  2. v1.4.1Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts