About this project
campus-cli is an unofficial command-line tool and MCP server for UPC (Peru) students who use Blackboard Learn (Aula Virtual). It allows querying courses, schedules, pending assignments, due dates, grades, announcements, messages, and materials without opening a browser, and exposes that information to AI assistants compatible with Model Context Protocol.
Main capabilities:
- List term courses, view contents, folders, announcements, messages, and grades.
- Check pending assignments, attempt history, instructor feedback, and weekly schedule (Banner UPC).
- Download files and entire folders from Blackboard, with size limits and without overwriting files.
- Upload files, save drafts, and submit assignments, with explicit confirmation from the MCP client.
- Search academic publications in Crossref, OpenAlex, IEEE Xplore, ACM, Scopus, Web of Science, and ScienceDirect, verify DOI and retraction notices.
- Access UPC Class recordings and transcripts through the existing SSO session.
- Make direct calls to the public Blackboard API and JSON output for scripting.
Usage modes: direct CLI, MCP server via stdio (npx campus-cli mcp), and raw API. It integrates with Claude Desktop, Claude Code, Cursor, GitHub Copilot, OpenAI Codex CLI, and Windsurf through MCP server configuration.
Authentication and privacy: uses Playwright to open Chromium and complete Microsoft SSO; cookies are stored locally in ~/.blackboard-cli/session.json. It does not require the university's OAuth key or an intermediary server. Optional analytics with PostHog uses an allowlist of properties and can be disabled with POSTHOG_DISABLED=1.
Requirements: Node.js 22.13.0 or higher, an active UPC account, and an environment where Playwright can open Chromium. Stack: TypeScript, Playwright, Axios, Commander.js, MCP SDK. ISC license. Canvas and Moodle are on the roadmap.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.