关于 campus-cli
campus-cli 是通过 Campus relay 访问大学 Blackboard 数据的命令行客户端。学生可查看课程、作业、成绩和材料,也可将 MCP 客户端连接到 relay 提供的工具与资源。
主要功能
- 01通过 relay 访问 Blackboard 数据
- 02课程、作业和成绩命令
- 03MCP 工具发现与调用
- 04下载课程文件
- 05OAuth 登录与校园 MFA 流程
适用场景
- 01查看课程和作业列表
- 02检查成绩与课程内容
- 03查找并运行已发布的校园工具
- 04将课程材料下载到本地目录
MCP 相关
stdio MCP 进程将协议通信转发到经过身份验证的 Campus relay,包括工具、资源、指令、结果和确认请求。兼容 MCP 的客户端也可通过 OAuth 直接连接远程端点。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
19收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
campus-cli
通过 Campus 中继,将你的大学校园连接到终端或 AI 客户端。
版本 3.0.0。 此版本更改了架构:所有数据命令和基于 stdio 的 MCP 都使用经过身份验证的中继。服务器会在每次操作时应用账户套餐和配额。安装 CLI 不会授予免费访问权限,也无法绕过这些限制。
当前的中继策略保留五次试用查询。此次迁移关闭了新版分发中的本地备用方案;不会更改服务器的试用策略,也无法撤回已下载的代码或 2.x 版本。
Campus 是一项非官方集成。Blackboard、UPC、UPN 和其他大学均未赞助此项目。Canvas 和 Moodle 仍在路线图中。
安装和登录
需要 Node.js 22.13 或更高版本,以及用于授权账户的浏览器。
npm install -g [email protected]
campus login
campus courses list --json
campus assignments list <courseId> --json
campus login 通过 OAuth 授权你的 Campus 账户,然后在你的设备上启动 Playwright,以登录大学系统并完成 MFA。此流程会征得同意,仅将校园 Cookie 发送到中继;不会发送密码或 Microsoft、Google 的 Cookie。中继会先向 Blackboard 验证身份,再保存加密会话并启用 MCP 令牌。campus account login 是一个别名。旧版 Blackboard 本地会话和 Google 账户会话无法授予中继访问权限:你需要授权一次。
Playwright 是客户端的依赖项,会查找本地 Chrome/Edge;如有需要,会安装 Chromium 以用于登录。浏览器使用临时上下文,并在捕获会话后关闭。客户端仅将中继授权信息保存在 ~/.blackboard-cli/relay/ 中,设置私有权限,并按服务 URL 分开存储。
CLI
安装 3.x 版本后,可以使用 campus、campus-cli、blackboard 和 blackboard-upc 运行以下命令:
campus login
campus login --university upn-pe
campus status --json
campus whoami
campus courses list --json
campus courses contents <courseId> --parent <contentId> --json
campus courses grades <courseId> --json
campus assignments list <courseId> --json
campus assignments attempts <courseId> <columnId> --json
campus assignments feedback <courseId> --json
campus messages --course <courseId> --json
campus upn profile
campus upn grades <courseCode>
campus miupc courses
campus miupc grades --course <courseCode>
campus logout
响应以 JSON 格式输出;为保持兼容,仍支持 --json。Mi UPC 和 Mi Mundo UPN 使用的 ID 与 Blackboard ID 不同。中继会根据已连接的大学决定提供哪些工具。本地登录会在捕获 Cookie 前检查该中继支持的大学列表。托管版契约的首次发布支持 UPC 和 UPN;未公布的大学会被明确拒绝。对于自动化终端,--consent-session-upload 表示同意;用户仍需在浏览器中完成登录和 MFA。大学会话过期后,请重新运行 campus login。
如需发现工具目录并执行任何已发布的工具:
campus tools list
campus tools call banner_get_weekly_schedule
campus 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 会保留完整的 MCP 结果,包括链接、元数据和付费提示。要读取 Blackboard 的其他公开端点:
campus api GET /learn/api/public/v1/users/me
当前中继提供 Blackboard 读取功能。作业提交和草稿需在 Aula Virtual 中完成;CLI 不会直接提交或更改内容。兼容性以及已更改的命令详见中继迁移说明。
下载
campus download <courseId> <contentId> --out curso/semana1
campus download-folder <courseId> <folderId> --out curso --filter diapositivas
文件通过中继在授权后发放的临时链接获取。文件会保存在 ~/Downloads/campus-cli 或 CAMPUS_DOWNLOAD_DIR 下的相对路径子目录中,并受大小限制,且不会覆盖现有文件。MCP 结果会保留服务发布的链接和资源。
通过 stdio 使用 MCP
首先运行 campus login。然后使用此版本的可执行文件连接 MCP 客户端:
{
"mcpServers": {
"campus": {
"command": "campus",
"args": ["mcp"]
}
}
}
如需从检出目录进行测试,请将 node 用作 command,并使用 run.js 的绝对路径以及参数 mcp。此进程会将协议转发到中继服务:指令、工具、资源、结果、取消操作以及客户端的确认请求。遇到付款、会话或网络拒绝时,它不会注册本地大学工具,也不会切换到本地提供商。
兼容远程 MCP 的客户端可以使用其 OAuth 流程直接连接到 https://mcp.campuscli.com/mcp。
配置
| 变量 | 用途 |
|---|---|
CAMPUS_RELAY_URL | 完整的 MCP 端点;默认为 https://mcp.campuscli.com/mcp。除开发环境中的 loopback 外,必须使用 HTTPS。 |
CAMPUS_DOWNLOAD_DIR | CLI 下载文件的根目录。 |
OAuth/MCP 授权不会跟随网络重定向,也不会将令牌发送到其他源。更改中继服务 URL 需要单独授权。campus logout 会删除该中继服务的本地凭据;不会撤销该账户的其他连接。
开发
npm run build
node --import tsx --test tests/relay-client.test.ts
npm pack --dry-run
以前提供商的源代码会予以保留,以保护核心代码及其测试。npm 3.x 发行包仅包含中继客户端和下载实用工具;不包含大学查询引擎、旧版会话或旧版库子路径。客户端中唯一的大学模块用于临时捕获登录信息。托管后端继续使用按版本固定的核心构件;不得用此客户端包替换它。
请参阅历史版 2.x 文档、3.x 迁移指南和变更日志。
ISC 许可证。托管服务条款及其访问控制独立于客户端许可证。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。