mcpField
C
campus-cli

campus-cli

本地服务
campuscli.com科研与教育121 天前更新

关于 campus-cli

campus-cli 是通过 Campus relay 访问大学 Blackboard 数据的命令行客户端。学生可查看课程、作业、成绩和材料,也可将 MCP 客户端连接到 relay 提供的工具与资源。

主要功能

  1. 01通过 relay 访问 Blackboard 数据
  2. 02课程、作业和成绩命令
  3. 03MCP 工具发现与调用
  4. 04下载课程文件
  5. 05OAuth 登录与校园 MFA 流程

适用场景

  1. 01查看课程和作业列表
  2. 02检查成绩与课程内容
  3. 03查找并运行已发布的校园工具
  4. 04将课程材料下载到本地目录

MCP 相关

stdio MCP 进程将协议通信转发到经过身份验证的 Campus relay,包括工具、资源、指令、结果和确认请求。兼容 MCP 的客户端也可通过 OAuth 直接连接远程端点。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"alejooroncoy-campus-cli": {
"command": "npx",
"args": [
"-y",
"campus-cli"
]
}
}
}
启动命令npx -y campus-cli

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmcampus-cli1.4.1

工具

19

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

campus-cli

npm version

通过 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_DIRCLI 下载文件的根目录。

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 许可证。托管服务条款及其访问控制独立于客户端许可证。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。