campus-cliCAUTION
CLI no oficial para UPC Aula Virtual (Blackboard Learn) — terminal + MCP para Claude
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://www.npmjs.com/package/campus-cli) [](https://www.npmjs.com/package/campus-cli)
Conecta Blackboard UPC con ChatGPT y Claude (vía MCP), o úsalo directo desde la terminal.
campus-cli (también conocido como Campus o Campus CLI, campuscli.com) es un CLI y servidor MCP no oficial para estudiantes de UPC. Le da a asistentes de IA como ChatGPT y Claude acceso directo a tu Blackboard Learn: cursos, tareas, notas, anuncios, mensajes y materiales, sin abrir el navegador. Canvas y Moodle están en el roadmap.
No confundir con: el paquete campus-cli de PyPI (Python, gestión de notebooks de Jupyter, proyecto no relacionado) ni con otras plataformas de "IA para programadores" o "resolver tareas con IA" que usan nombres parecidos — este proyecto es específicamente la integración de Blackboard con asistentes de IA vía MCP.
npx [email protected] account login campus courses list campus assignments list --pending
English summary — campus-cli is an unofficial Blackboard MCP server and CLI for students. It exposes Blackboard Learn (currently UPC Aula Virtual, Peru) to any Model Context Protocol client — Claude Desktop, Claude Code, Cursor, GitHub Copilot, Codex CLI, Windsurf — so an AI assistant can read your courses, assignments, due dates, grades, instructor feedback, announcements and course materials, and download files, without you copying anything by hand. Unlike institutional Blackboard integrations, it needs no OAuth developer key from your university: it uses the student's own SSO session, locally. Run it with npx [email protected] mcp (stdio). Canvas and Moodle are on the roadmap.
Qué puedes hacer
- Ver tus cursos del ciclo.
- Consultar tu horario semanal, con horas y aulas de tus cursos matriculados.
- Revisar tareas pendientes, fechas de entrega y notas.
e3ad72eed363OBSERVED · 2026-10-10Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add campus-cli -- npx -y [email protected] mcp
Exposed tools (34)
30 read · 4 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
banner_get_weekly_schedule | write | |
campus_apa7_guidance | read | |
campus_get_overview | read | Obtiene una descripción breve de Campus Plus, Campus Profes y Blackboard MCP para UPC. |
campus_get_weekly_schedule | write | |
campus_mendeley_list | read | |
campus_mendeley_list_folder_documents | read | |
campus_mendeley_list_folders | read | |
campus_mendeley_list_group_documents | read | |
campus_mendeley_list_groups | read | |
campus_mendeley_raw_api | read | |
campus_mendeley_save_doi | write | |
campus_mendeley_save_reference | write | |
campus_open_section | read | Abre una sección pública de Campus en la pestaña actual. |
campus_research_audit_indexed_pdf | read | |
campus_research_google_scholar | read | |
campus_research_index_pdf | read | |
campus_research_index_status | read | |
campus_research_read_document | read | |
campus_research_read_indexed_pdf | read | |
campus_research_read_pdf | read | |
campus_research_read_source_file | read | |
campus_research_resolve_document | read | |
campus_research_search | read | |
campus_research_search_databases | read | |
campus_research_search_index | read | |
campus_research_verify_citation | read | |
campus_research_verify_document_identity | read | |
campus_research_verify_doi | read | |
campus_research_verify_evidence | read | |
campus_research_verify_quote | read | |
campus_research_verify_quotes | read | |
uclass_list_recordings | read | |
uclass_read_transcript | read | |
uclass_search_transcript | read |
Trust audit
CAUTIONgrade B · trust 89/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (3 observation(s))
- Network
- declared (3 observation(s))
- Shell
- declared (2 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (15)
const url = new URL(req.url ?? '/', 'http://127.0.0.1');
currentRedirectUri = `http://127.0.0.1:${port}/callback`;import body from "../../html/blackboard-chatgpt/index.html?raw";
import { htmlToMarkdown } from "../../lib/html-to-markdown";import body from "../../html/blackboard-cli/index.html?raw";
import { htmlToMarkdown } from "../../lib/html-to-markdown";import clients from "../../../data/mcp-clients.json";
const requests = mockHttp(t, [{ status: 302, location: 'https://169.254.169.254/latest' }]);for (const address of ['127.0.0.1', '10.0.0.1', '169.254.169.254', '192.168.0.1', '100.64.0.1',
? "http://127.0.0.1:8787/v1/founders"
{id:'website-record',title:'Website record',websites:['https://127.0.0.1/private','https://journal.example.edu/article']},client.defaults.baseURL = `http://127.0.0.1:${port}`;@modelcontextprotocol/sdk, axios, chalk, commander, entities, fflate, form-data, inquirer
@astrojs/sitemap, astro, esbuild
OAuth endpoint, credential header, or arbitrary host. POST, PUT, PATCH and DELETE
Gates applied: no_behavioural_pass.
e3ad72eed363full audit observations/trust-audit/mcp-server/alejooroncoy__campus-cli.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-10 | e3ad72eed363 | CAUTION | B | 89 | first audit |
Questions
What is the campus-cli MCP server?
CLI no oficial para UPC Aula Virtual (Blackboard Learn) — terminal + MCP para Claude
What tools does campus-cli expose?
34 in total: 30 read-only, 4 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is campus-cli safe to connect to an agent?
With care. The audit graded it B (89/100) and found 15 things worth knowing before you trust this server, listed below with the exact line each was found on.
What credentials does campus-cli need?
It reads MENDELEY_CLIENT_SECRET, MENDELEY_TOKEN_FILE and POSTHOG_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does campus-cli run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as campuscli-site at 2.2.1.
How current is this page?
The grade is for one exact copy of the source (e3ad72eed363), read on 2026-10-10. The repository is watched and re-audited when it changes.