Skip to content

STU MCP v0.5.0 · 校园工具与课表技能预览

Pre-release
Pre-release

Choose a tag to compare

@0error0warning 0error0warning released this 21 Oct 01:37
· 74 commits to main since this release

STU MCP v0.5.0 · 学生预览版

本版相对 v0.4.1 新增充电查询、对分易本地后台、桑浦山宿舍报修及校园连接诊断,并整理学校网页/API 的适配与失败处理。继续作为学生预览版发布,学校或第三方平台变化仍可能使部分来源不可用。

新增与改进

  • 充电查询,两项工具。 按位置查询设备总览、逐台查看插座。当前登记 14 台已核验设备,保留逐台采集时间、失败和过期标记,不代表全校完整清单;不操作充电、订单或支付。用法
  • 对分易,八项工具。 本地网页与 MCP 共用随包分发的独立后台,支持选课、开始/暂停监听、查询结果和退出服务。状态查询不会偷偷启动监听;用户主动开启后,关闭 MCP 仍可继续运行,电脑需保持运行和联网。定位签到未启用,数字码、二维码、汉字的新课堂自动提交仍待实测。用法
  • 宿舍报修,七项工具。 在独立直连窗口填写桑浦山学生社区表单,先完整展示实际姓名、联系方式、地址、预约和故障描述,等本人明确确认后只提交一次,再核对新增单据、单号与处理状态。结果未知时只读恢复,不自动重发。repair.stu.edu.cn 宿舍报修与 r.stu.edu.cn 综合/网络故障报修分别识别。流程与范围
  • 校园网络诊断,两项工具。 按服务检查业务站及 SSO,或批量检测目录内的学校入口;分别报告系统 DNS、可选公共 DNS、匿名直连和按需开启的本机代理对照。不改代理、DNS、hosts 或无线网络,校外访问失败也不等于学校服务故障。单项诊断 · 批量检测
  • 来源分层与兼容。 官网/OA、MySTU/ELC、教务成绩与考试、雨课堂、充电、狐友及报修分别维护契约、纯解析、访问和业务编排。处理有证据的表头换序/增列和容器变化,关键字段歧义明确报错;雨课堂活动与公告各自失败不影响另一部分,未知结果不覆盖完整旧缓存。架构
  • 可选课表导出技能。 stu-timetable-export 组织完整课表、目标学期最新有效官方校历、节次时刻及目标平台官方格式的核对,再将已核对输入转换为 WakeUp CSV / 日历 ICS、设置文件和审阅报告。OA 专项调课检索默认关闭,用户明确开启后才执行。未核实项和冲突会阻止受影响导出;只生成文件,不写入 Google/Microsoft 等远端日历。范围与用法

本版共有 38 项 MCP 工具,包含相对 v0.4.1 新增的上述工具。此次代码整理前后,38 项完整工具定义保持一致;这不表示 v0.4.1 也有 38 项工具。已有工具接口和旧 Python 导入入口继续保留,课表技能不新增 MCP 工具。

安装或升级

先安装 uv,使用本发行附带的明确版本 wheel。当前未发布到 PyPI,不安装同名来源不明的包。

首次安装:

uv tool install --python 3.12 https://github.com/0error0warning/stu-mcp/releases/download/v0.5.0/stu_mcp-0.5.0-py3-none-any.whl

从旧版升级:

uv tool install --force --python 3.12 https://github.com/0error0warning/stu-mcp/releases/download/v0.5.0/stu_mcp-0.5.0-py3-none-any.whl

安装后检查版本,重新连接当前使用的客户端,然后重新加载 MCP 或重启客户端:

stu-mcp --version
stu-mcp connect codex --apply
stu-mcp status

将 codex 替换为实际客户端。配置更新会保留其他服务和设置;只配置当前使用的客户端,不删除用户数据。客户端加载后发现并调用 get_capabilities,才算本次 MCP 连接已核实。CLI 执行成功或配置写入成功不等于客户端应用内完整验收。安装说明 · 客户端接入

已有对分易后台不会随安装自动替换:先暂停监听、退出服务,再重新打开网页加载新版,按需重新开始监听。关闭旧设置页后运行 stu-mcp setup 打开新版;需要个人来源时再本人登录,不把密码、cookie、回调链接或令牌交给 agent。

技能安装与 MCP 接入分别处理。课表技能是可选工作流资源,生成 ZIP 不会自动安装技能或注册 MCP,也不承诺所有客户端支持 ZIP 导入。资源包的 runtime.json 指向生成机器的 Python 环境;换机或重建环境需重新生成或配置。技能使用与分发

验证范围和已知限制

本版保留自动测试、构建、隔离安装、MCP 协议、来源真实读取和业务提交的独立证据。发布准备阶段 Windows / Python 3.12.13 全量回归为 1489 项通过、2 项跳过,跳过项是符号链接权限检查;Ruff、构建和隔离安装检查通过。这些结果不证明学校当前在线,也不替代各客户端与真实账号验收。验证索引 · 本地发行验证

  • 宿舍报修真实学校页面流程曾在用户浏览器跑通;原生 MCP 的确认、单次提交和恢复使用离线合成页面及本机回环服务验证,没有为测试另建真实工单。
  • 对分易后台生命周期、状态及结果通过合成平台响应验证,不能宣称真实新课堂自动签到已成功。MySTU/ELC、更多雨课堂题型、会话失效恢复和客户端应用内完整使用仍有待验收范围。
  • 当前 get_courses 是课程库存,get_schedule 是过去 7 天至未来 31 天的个人日程;完整学期课表自动取数尚未实现。不能将短期日程当作完整课表。校历及调课依据由 agent 核实,转换脚本不会自行联网证明输入“最新/完整”。
  • WakeUp、Google Calendar、Outlook 等真实 App 导入仍待验收。OA 默认未检索应如实标明,不能宣称不存在额外调课。文件导入不自动同步,也不承诺重复导入去重或覆盖。
  • 校园域名可用性取决于当前网络。诊断有固定目标和时间预算,不能扫描全校或由一次网络快照推断永久可达性;不会自动切换网络、关闭代理或更改 DNS。

发行文件

发行附件提供 stu_mcp-0.5.0-py3-none-any.whl、stu_mcp-0.5.0.tar.gz 与 SHA256SUMS.txt。校验值对应本发行实际构建产物;学校凭据、个人课表和登录数据不进入发行包。GitHub 自动生成的源码归档与这里单独构建的 sdist 是不同文件,应按相应文件核对校验值。

本次发行核查

发行提交:3d0afda0f47485409c7cfb09d74a30db541fc2ee。对应 main 分支的 四组跨平台检查 均通过;各组包含 Ruff、测试、构建及隔离安装。

CI 环境 测试结果
check (ubuntu-latest, 3.13) 1491 passed in 66.89s (0:01:06)
check (ubuntu-latest, 3.11) 1454 passed, 37 skipped in 41.99s
check (macos-latest, 3.12) 1454 passed, 37 skipped in 51.48s
check (windows-latest, 3.12) 1454 passed, 37 skipped in 119.84s (0:01:59)

以下校验值对应本次附带的 wheel 和 sdist:

e1a6e07e0e38fd5fea8be5f95f9a406246f47b9ff153b87c1eaaaeb84622066b  stu_mcp-0.5.0-py3-none-any.whl
3c2376bdc67f0cd4b23a8f117b608e86c6cb1584dac9080261d522a8cf80e028  stu_mcp-0.5.0.tar.gz

标签推送触发的同提交四组复核也全部通过。三个文档中的下载地址已在不带 GitHub 身份认证的情况下重新下载,内容与最终产物逐字节一致;下载后的 wheel 已再次通过隔离安装、8 种 stdio 命令的启动/工具发现、技能资源与本机后台检查。以上不替代各客户端应用内或学校真实业务验收。