Repository navigation
Releases: 0error0warning/stu-mcp
Release list
v0.7.1 · 理论课表与一卡通查询(学生预览版)
新增本人理论课表和一卡通查询,继续使用轻量 HTTP 核心,支持本地及个人服务器。
- 理论课表:
get_academic_timetable/stu-mcp timetable,复用教务会话,并衔接已有课表导出 Skill。未排课与待核对项明确返回;校历、作息和实验课继续独立核对。 - 一卡通:
get_campus_card、get_campus_card_transactions,可查卡概况及本人历史流水。卡余额与两项过渡余额分列;核对身份、交易类别、汇总及分页范围。 - 配置:私密设置页或真实终端填写独立查询密码和官方图片验证码,共用 HTTP 认证与加密会话,不需要服务端浏览器。学校一卡通官方入口为明文 HTTP,仅开放固定来源例外;普通学校密码、TOTP 仍使用 HTTPS。
- 修复 Windows 设置页状态读写和完成状态竞态。相对 v0.7.0 新增3项工具,共50项,原47项完整工具定义保持兼容。
升级:
stu-mcp update升级后重载 stdio MCP;私有 HTTP 实例须重启宿主 MCP 服务,再核对运行版本。安装和配置说明见README。
验收:本地完整测试 2458通过、4跳过,Ruff通过;独立安装包的 HTTP/stdio/设置页/Skill/后台生命周期,以及五种离线升级启动方式通过。四平台与Docker五项检查全部通过,合入main的代码树与该提交一致。正式一卡通认证、CLI和MCP概况、全部5条/转账记录1条/消费正常空态已有本人实读;详细记录。
学生预览版;多页流水明确标注部分范围,不办理充值、挂失、改密等写操作。wpay、r、综测和其它未接入业务保持各自调查状态。
最终提交为 0fa321cdbe94decdf15e1918394e9f09d452cfdb。main检查与v0.7.1标签检查各5项全部成功;附件已回下载核对,最终wheel内容与隔离安装验收候选逐字节一致。
附件为wheel、sdist和SHA256SUMS.txt。校验文件对应这两个实际构建包,GitHub自动源码归档是另两种文件。
STU MCP v0.7.0 · 统一账号与简洁设置页
v0.7.0 · 学生预览版
本版让首次配置更直接:学校账号一次输入,设置页可在自己的浏览器里完成登录,并展示配置后能用哪些功能。CLI 保持完整,47 项 MCP 工具接口保持兼容。继续以 GitHub prerelease 发布。
主要变化
- 学校账号统一配置。 新增
stu-mcp login school,为教务、MySTU 和宿舍报修分别认证、保存独立加密会话。学校密码只用于本次认证,不持久保存;原有单业务命令和参数继续可用。 - 可选的网页设置。 运行
stu-mcp setup,或让 agent 调用open_setup,在本机打开自己的浏览器。学校账号、雨课堂二维码、对分易原微信回调和 WebVPN 共用已有 HTTP 核心,无需服务端浏览器或虚拟桌面。凭据和授权内容不经过 agent。 - 简化配置界面。 学校账号直接连接全部已接入业务,显示汇总状态与对应功能;只列未完成项目的原因。移除业务勾选、技术许可框、重复管理面板和旧网页调度路径。
- WebVPN 令牌放在主表单。 已有的账号、密码和令牌密钥配置能力可直接使用,安全保存后由程序生成动态码并登录;也支持手动输入当前动态码。停用或暂停的自动配置不会被静默复用。
- 功能与入口对应。 设置页、CLI 状态和 MCP 能力展示复用同一目录,区分已接入功能、入口导航及未接入服务。校园入口调查、OA 读取条件与各业务范围集中整理;目录收录不等于业务已接入或当前可达。
- 错误恢复与并发修复。 配置中断后只读核对结果,不重复提交凭据;退出或换账号时阻止旧认证覆盖新状态。修复 Windows 锁文件初始化竞态及拒绝过大请求时丢失错误响应的问题。
学校账号的统一配置不共享业务 Cookie;某项失败保留其他已完成的结果。“已配置”表示本地配置状态,不承诺学校此刻在线可读。私密设置页仅在 MCP 宿主回环地址提供;无桌面服务器仍可完整使用 CLI。详见认证说明、校园服务目录和服务器说明。
安装与升级
首次安装:
uv tool install --python 3.12 https://github.com/0error0warning/stu-mcp/releases/download/v0.7.0/stu_mcp-0.7.0-py3-none-any.whl
stu-mcp connect codex --apply
stu-mcp setup将 codex 换成自己的客户端。已有受支持的 uv tool 安装可执行:
stu-mcp update升级后,本机 stdio 重新加载 MCP;私有 HTTP 需重启宿主 MCP 服务,仅重连客户端不会替换旧进程。已打开的设置页需关闭并重新打开。对分易后台在运行时会阻止更新,需要加载新版时先暂停、退出后台,再更新并按需恢复。数据、配置和独立会话保留;过期会话按需重新登录。源码、容器或旧版手动升级按安装说明处理。
本版不新增 MCP 工具,原有 47 项工具的名称、参数、输入/输出 schema、注解和描述均保持兼容。状态结果增加功能目录与本地配置状态。v0.6.2 的标签和发行附件保持原样。
验证范围
本次功能改动的 Windows 本机完整套件 2246 项通过、4 项跳过;跳过项均因当前主机没有创建符号链接的权限。Ruff、差异空白检查和两个随包 Skill 的格式检查通过。
隔离安装检查覆盖无 Playwright/TTY 的私密 HTTP 配置、独立加密会话、47 项完整工具契约、八种 stdio 客户端配置、三种 Skill 命令、课表资源及对分易后台生命周期。设置页宽窄屏与错误恢复使用合成账号、临时存储和回环服务验证。功能改动的详细过程及已修复的失败见设置页验收;v0.7.0 构建、升级检查与发行 CI 结果分别记录在发行复核。
本轮没有新增真实学校登录、扫码、报修或签到提交验收。此前各来源 HTTP 认证与有界读取的真人证据保留原日期和范围。更多账号、受保护 OA 正文与自然过期续登、真实新报修/签到提交、跨机及容器内学校业务仍不能由本轮合成测试推断为已验证。
发行文件
stu_mcp-0.7.0-py3-none-any.whl、stu_mcp-0.7.0.tar.gz 和 SHA256SUMS.txt。校验文件用于核对发行附件的 SHA-256,不包含凭据。发行包不包含真实学校会话或个人页面。
发布核对
- PR #12 已合并到 main,标签对应
c8db73ea5f4b6c54ae207b58cc41bd496a09df68,与受检分支代码树一致。 - PR Checks 与 分支 Checks 全部通过:Linux Python 3.11/3.13、Windows/macOS Python 3.12 和默认 Docker 镜像。四组平台均执行测试、构建、实际隔离安装和离线升级检查。
- v0.7.0 wheel 已在本机通过独立安装验收,最终附件与受检 wheel 逐字节一致;源码包的当前文档与版本文件均已核对。
- 发布后从 GitHub 下载的三个附件与本地发行文件完全一致,校验清单逐项通过。
- 公开升级复核通过:临时 uv tool 安装的 v0.6.2 通过官方 Atom 发行订阅发现 v0.7.0,实际执行
stu-mcp update下载、校验并升级成功;新进程的主命令与stu别名均为 0.7.0,后续检查为最新版,合成数据保留。未修改用户真实安装。Atom 路径的预览标记仍报告未知,不将其误称稳定版。
STU MCP v0.6.2 · 一键更新与匿名限流修复
完成单命令更新功能,并修复公开安装复核中遇到的 GitHub 匿名 API 限流。
stu-mcp update --check
stu-mcp updateAgent 使用同一实现的 check_updates / update_self。程序自动检查、校验和安装;无需 agent 手工拼安装命令,也不创建定时任务。
共享公网出口耗尽 GitHub 匿名 API 限额时,本版会读取同一官方仓库的公开发行订阅,并核对官方标签和校验文件。回退只针对明确限流;普通网络错误不会被掩盖。完整 SHA-256、包名、版本和 Python 兼容性校验保持不变,不需要 GitHub Token。
uv 安装自动识别,配置、加密会话、可选依赖与原 Python 路径保留。源码和容器使用各自更新指引。MCP 安装完成后,stdio 重载进程,HTTP 重启宿主服务,再核对运行版本。
首次从 v0.6.0 升级,或 v0.6.1 已受 API 限流影响时,按安装说明手动安装本版一次;之后使用更新命令。完整说明见更新文档。
98 项更新专项通过,包含 17 项新增限流/订阅边界测试。真实 API 限流时,源码与临时新安装的 CLI/MCP 均完成官方发行回读;没有修改用户真实安装或发起学校业务请求。详见本版复核。
本地 Windows / Python 3.12.13 完整回归:2116 项通过、4 项跳过(264.30 秒)。
主分支 Checks 和发行标签 Checks 均全部通过,覆盖 Linux/Python 3.11、3.13,Windows/Python 3.12,macOS/Python 3.12 与默认 Docker;各系统继续验证五种命令入口的真实离线升级。
保留 47 项工具及原接口、报修确认和提交保护、独立签到后台。默认 HTTP/CLI,无常驻更新 helper 或浏览器依赖。发行附件为 wheel、源码包和 SHA256SUMS.txt;当前未发布 PyPI 包或预构建 Docker 镜像。
发布后复核:三份公开附件匿名下载均与本地 SHA256 一致;从公开 wheel 临时新装 uv tool,CLI 检查及 SDK MCP 的 check_updates / update_self 实际调用通过,自动识别 uv 安装并返回当前已是 0.6.2。此次仍遇匿名 API 限流,实际使用 github_atom 回退成功。未修改用户真实安装、学校会话或发起学校业务请求。
STU MCP v0.6.1 · 单命令更新与版本检查
建议直接安装 v0.6.2。本版发布后发现共享公网出口可能耗尽 GitHub 匿名 API 限额;修订版已增加无需 Token 的官方发行订阅回退。若本版更新命令已受限流影响,请按新版安装说明手动升级一次。
支持一条命令检查并升级 STU MCP;继续作为学生预览版发布。
stu-mcp update --check
stu-mcp updateAgent 可调用 check_updates 或 update_self,与 CLI 共用同一套代码。检查立即执行,包含官方学生预览,不创建定时任务、不降级,也不需要 agent 手工校验安装包。
- 自动识别推荐的 uv tool 安装,校验官方 GitHub wheel、SHA-256、版本和 Python 兼容性,再调用 uv 安装。保留配置、加密会话、extras、附加依赖和原 Python 启动路径。
- 源码、Docker 与无法可靠识别的安装返回相应更新指引。远程 MCP 更新作用于服务器上的副本。
- 活动报修、设置页、同安装的其他已登记实例或签到后台会阻止升级。安装发生变更后,旧 MCP 连接暂停业务;stdio 重载 MCP,HTTP 重启宿主服务,再核对运行版本。
- Windows 运行中的 CLI 命令和别名已做真实隔离升级验证;不使用
--force重建运行环境,不增加常驻更新进程。失败不承诺整个环境自动回滚。
本版也收录 main 上已有的 7 项实验外卖目录与选餐工具;它们不下单、不支付、不修改地址。共有 47 项 MCP 工具,原有接口保持兼容。
v0.6.0 没有更新命令,首次升到本版请按安装说明完成一次手动升级;后续可直接使用上述命令。完整行为见更新说明。
发行检查包括本地全量回归、81 项更新专项、Windows 五种真实启动入口的连续离线升级,以及 core wheel 的 SDK stdio/HTTP、客户端配置、技能与独立后台验收。各项测试范围见验证记录。
主分支 Checks 和发行标签 Checks 全部通过:Linux/Python 3.11、3.13,Windows/Python 3.12,macOS/Python 3.12,以及默认 Docker。Linux 完整环境 2103 项测试通过;每个系统还实际完成五种启动入口的离线升级。
附件为 wheel、源码包及 SHA256SUMS.txt,最后一份用于核对下载文件完整性。当前未发布 PyPI 包或预构建 Docker 镜像;默认仍为 HTTP/CLI,浏览器兼容依赖须明确选择。
STU MCP v0.6.0 · 默认 HTTP CLI 与个人服务器
STU MCP v0.6.0 · 学生预览版
本版相对 v0.5.0 将默认认证改为纯 HTTP 与本人 CLI,并提供个人服务器私有接入。默认安装不需要 Playwright、Chromium 或桌面。继续以 GitHub prerelease 发布,学校协议变化、账号差异及未覆盖部署环境仍可能影响使用。
主要变化
- 同一个包,本机或个人服务器运行。 原 stdio 接入保留,新增私有 Streamable HTTP,共用一个人的账号、缓存和进程内草稿。服务器不需要安装 agent 或模型服务;HTTP 使用独立 Bearer、Host/Origin 校验和请求预算,不是公开 OAuth 或多用户服务。部署
- 无桌面登录。 教务、MySTU、报修通过 HTTPS CAS;雨课堂在本人终端显示官方二维码,由本人手机确认;对分易保留原微信授权回调,由本人隐藏输入返回链接。账号、密码、动态码及回调不进入 MCP 参数、聊天、命令行、环境变量或管道。认证
- WebVPN 纯 HTTP 密码/TOTP。 单次登录可由本人输入当前动态码;按需自动重登需另行明确保存已绑定令牌配置。遇到拒绝、图形挑战或绑定要求停止,不自动处理挑战。门户认证、资源目录和 OA 正文分别证明。
- 轻量 Docker 模板。 默认不安装浏览器、Xvfb 或远程桌面;单用户、单 worker、非 root、宿主回环端口及外置只读密钥。提供本地构建模板与独立 CI 镜像检查,未发布预构建镜像。容器
- 来源与状态边界。 CAS 与业务会话分开,保存及提交前核对退出/换账号代次。MySTU 身份和课程与 ELC/Campus 初始化分开,某个 Moodle 失败保留已核实的 API 会话。已登录 HTTP 请求抑制库日志中的票据、认证头和 Cookie,不改变其他线程日志。
- 签到连接安全修复。 配置代理不再关闭 HTTPS 证书校验,SignalR HTTPS/WSS 同时校验证书及主机名;旧关闭值归一为开启。后台控制和微信回调也使用请求范围的日志保护。使用不受信任抓包证书的旧配置会连接失败,不再静默绕过校验。
- 报修默认 HTTP WebForms。 七项工具继续展示实际完整表单,等本轮用户明确确认后只发送一次正式 POST,再核对新增单据、全部业务值、单号和处理状态。未知结果只读恢复,草稿及确认留在内存;独立加密保存报修会话。报修
- 保留已有查询与工具接口。 38 项工具的名称、参数、输入输出 schema 和注解保持兼容,报修描述更新为默认 HTTP 语义。OA 兼容实际完整文章路径、空白表头、正文容器及编号附件字段;关键字段歧义仍拒绝。
学校网络与远程接入是两段连接:SSH/Tailscale 让客户端访问 MCP,不会自动给服务器校园 DNS 或校园内网路径。诊断和业务请求发生在 MCP 宿主,不自动改 DNS、代理、TUN、hosts 或 TLS 校验。
安装或从 v0.5.0 升级
先安装 uv。当前通过本仓库发行文件安装,未发布到 PyPI:
uv tool install --python 3.12 https://github.com/0error0warning/stu-mcp/releases/download/v0.6.0/stu_mcp-0.6.0-py3-none-any.whl已有 v0.5.0 或更早版本时使用:
uv tool install --force --python 3.12 https://github.com/0error0warning/stu-mcp/releases/download/v0.6.0/stu_mcp-0.6.0-py3-none-any.whl
stu-mcp --version
stu-mcp connect codex --apply把 codex 换成当前客户端。安装保留数据目录、缓存、个人资料和已有配置;不要删数据、清空其他 MCP 配置或更换密钥后端。重新加载 MCP 或重启客户端,再调用 get_capabilities 核实实际连接。已有学校会话可能过期,按需单独登录,不能把安装成功当作来源已可读。
对分易旧后台不会热替换:需要加载新版时先暂停监听、退出旧服务,再重新打开并核对原账号及课程,按需恢复监听。原已授权持续计划仍按原规则恢复,升级或登录不创建新计划。旧设置页需关闭后重新运行 stu-mcp setup。使用导出技能的用户按需重新生成资源,使本机 Python 路径与安装环境一致。
默认流程无需重新安装浏览器。 已有 Chromium 可以保留;只有本人明确选择 --browser 兼容或可选离线 PNG 渲染时才需相应依赖。详细升级
在 MCP 宿主同一账号、数据目录和凭据后端中由本人执行:
stu-mcp login mystu
stu-mcp login yuketang
stu-mcp login repair
stu-mcp login webvpn
stu-mcp login duifene
stu-mcp login jw --allow-http-callback敏感输入要求真实 TTY、隐藏输入;雨课堂仍需手机确认,对分易仍需本人微信授权。HTTP 遇到未知挑战停止,不自动转浏览器或再次提交密码。
教务 --allow-http-callback 只允许本次官方 HTTP 票据回调,密码仍发 HTTPS SSO。持续兼容 stu-mcp transport --jw-http on 与 OA stu-mcp transport --oa-http on 是两个独立、默认关闭的本地选项。OA 仅允许认证后目录核实的固定 HTTP 8118 路由;明文传输可能暴露票据、会话或内容,必须由本人明确选择,不能互相借用许可。两个开关均不关闭 TLS 校验,密码与 TOTP 始终只走 HTTPS。
已验证和未验证
Windows / Python 3.12 本机最终完整套件 1938 项通过、4 项跳过,包含 TLS 与进程清理回归。Ruff、无浏览器依赖的 wheel 隔离安装、真实 SDK 的 stdio / 回环 Streamable HTTP 及 38 项完整工具契约通过。发行 CI 覆盖 Linux、Windows、macOS 四组环境,以及独立的默认 Docker 镜像构建和离线启动检查;具体结果与范围见本次发行验证记录。
正式适配器已在当前账号的有界范围内验证:教务 HTTPS 学生主页、39 条成绩及当前考试表明确为空;MySTU 身份匹配、10 门课程与 ELC/Campus 部分资源、任务和详情;雨课堂 10 门当前学期课程及活动;报修独立登录、明确空列表、真实完整表单预览。WebVPN 密码/TOTP 及真实资源目录通过。详情和当时失败保留在HTTP 正式实现验收。
以下仍不能视为已验收:
- 新 HTTP 报修的真实正式提交与学校回执;单次提交和恢复以合成、回环测试覆盖,没有为验收额外建单。
- 受保护 OA 正文、WebVPN 自然到期后续登,以及更多账号和未知人工挑战。
- 容器内真实学校认证/业务、Tailscale/SSH 跨机端到端及所有客户端应用内使用;平台 CI、离线镜像启动及回环 SDK 测试不能代替这些验收。
- 对分易真实新课堂自动签到、完整学期课表自动取数、WakeUp / Google Calendar / Outlook 真实导入。
匿名 OA 已验证实际列表、正文和附件解析;这不等于受保护 WebVPN OA 已通过。缓存保留自己的核查时间,历史成功不代表当前在线。
发行文件
发行附件为 stu_mcp-0.6.0-py3-none-any.whl、stu_mcp-0.6.0.tar.gz 与 SHA256SUMS.txt。后者列出前两份文件的 SHA-256 校验值,下载后可核对文件是否与本次构建一致;它不是凭据文件。GitHub 自动源码归档与单独构建的 sdist 是不同文件。发行不含学校凭据、真实会话或个人页面。
公开发布回执
PR #9 已合并至 main,标签 v0.6.0 指向 86f6994c354e4afcaa428181095003e4c7aec50f,源码树与已检查的候选提交一致。最终发行附件已单独完成正式隔离安装验收,校验值见 SHA256SUMS.txt。
main Checks 和候选 Checks 均全部通过。候选各组全量测试如下,每组还执行 Ruff、构建和真实 SDK 的隔离发行检查:
| 环境 | 全量测试 |
|---|---|
| Ubuntu / Python 3.11 | 1892 passed,50 skipped |
| Ubuntu / Python 3.13,含 Chromium 兼容回归 | 1942 passed,0 skipped |
| Windows / Python 3.12 | 1892 passed,50 skipped |
| macOS / Python 3.12 | 1892 passed,50 skipped |
独立 Docker 检查已实际构建默认镜像,并通过禁网容器的版本、核心导入、无 Playwright、默认 HTTP 与离线状态检查。浏览器挑战测试为强制离线的合成页面,不访问学校;容器内真人学校业务与跨机部署的未验收边界仍按上文保留。
STU MCP v0.5.0 · 校园工具与课表技能预览
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 命令的启动/工具发现、技能资源与本机后台检查。以上不替代各客户端应用内或学校真实业务验收。
STU MCP v0.4.1 · 教务登录与查询修复
修复 #6 的教务登录、成绩和考试查询适配。
- 使用学校当前的
jwglxtSSO 登录入口,并验证登录后的学生主页。实测成绩和考试查询仍由jsxsd学生模块提供。 - 按表头解析成绩、考试,修复新增「成绩标识」「补重学期」后学分、绩点等字段错位;旧解析缓存不再参与查询或统计。
- 查询优先使用 HTTPS;考试默认使用学校选定学期,支持第三学期。识别 SSO 重定向脚本与结构异常,考试失败单独报告。
- 本机正式产品流程通过真实手动登录,读取 39 条成绩和当前学期空考试表,字段、统计与加密缓存核对成功。有记录的考试安排使用合成样本验证。
升级后重新加载 MCP,关闭旧设置页,执行 stu-mcp setup,重新登录教务,再运行 stu-mcp refresh jw。
uv tool install --force --python 3.12 https://github.com/0error0warning/stu-mcp/releases/download/v0.4.1/stu_mcp-0.4.1-py3-none-any.whl下载附带 wheel、源码包和 SHA256SUMS.txt。版本仍为学生预览版,更多账号、有记录的真实考试安排和会话过期后的重登继续验收;完整范围见 验证记录。
Windows 完整回归 258 项通过、1 项符号链接测试跳过,Ruff、发行包内容检查、八种 stdio 配置和两种 Skill 的实际安装启动检查通过。PR 八项与主分支四项跨平台 CI 检查全部通过。
STU MCP v0.4.0 · 狐友与数据状态修复
v0.4.0 新增狐友公开讨论查询,并修复通知缓存与登录退出的两个问题。
- 狐友匿名查询:默认搜索汕大树洞,读取公开正文、评论和楼中楼回复;新增三项 MCP 工具及对应 CLI / Skill 入口。无需账号或 Cookie,社区内容标为非官方来源。
- 通知缓存保留详情:刷新列表后仍能检索和读取已有正文、附件,并保留详情原始获取时间;认证范围或 URL 改变时不沿用旧详情。
- 退出撤销在途登录:教务、MySTU、雨课堂与 WebVPN 的旧登录不能在退出后恢复会话,也不能覆盖后来切换的账号。
- README、复制安装 prompt 和发行包统一到 v0.4.0,保留此前的登录设置页、uv 启动修复和课程范围同步。
升级:
uv tool install --force --python 3.12 https://github.com/0error0warning/stu-mcp/releases/download/v0.4.0/stu_mcp-0.4.0-py3-none-any.whl
stu-mcp connect codex --apply第二条按自己的客户端替换;之后重新加载 MCP 或重启客户端。使用 Skill 的客户端重新导出并导入技能包。关闭旧设置页,需要登录时再运行 stu-mcp setup。用户数据目录保留。
验证:Windows 本机 240 项测试通过、1 项系统符号链接测试跳过,Ruff 通过。0.4.0 wheel 在隔离工具目录中安装后,八种 stdio 启动配置均发现 19 项工具,两种 Skill 的版本和状态命令执行通过。公开网站、匿名 OA 与狐友正文/讨论重新实测成功,未使用学生账号。源码包和 wheel 附 SHA256 校验文件,均不包含运行数据、会话或凭据。
Linux、macOS、Windows 的全部八项推送/PR 检查通过:推送 CI、PR CI。每个平台实际安装 wheel 并执行导出的启动命令;Linux Python 3.13 还执行真实 Chromium 合成交互回归。
合并后的主分支发行提交 CI四项检查也全部通过。标签 v0.4.0 指向主分支提交 ed7275527249c932a051a561892436bdf16f6c4f。
本版本仍为学生预览:教务、MySTU、雨课堂、WebVPN 的真实学生账号流程及失效恢复,各客户端应用内的完整接入仍待验收。详见验证范围与更新记录。
STU MCP v0.3.1 · 启动与登录设置修复
v0.3.1 修复 v0.3.0 在 macOS/Linux 的 uv 启动命令问题:保留安装环境中的 Python 路径,避免客户端连接时出现 ModuleNotFoundError。
- MySTU / 雨课堂按确认的课程范围同步,清理旧学期和已消失的待办;部分失败保留未确认的数据,成绩历史继续保留。
- 设置页采用 PR #3 的登录页设计,接入、刷新和资料配置由用户自己的 agent 通过 CLI/MCP 完成。
- 取消、切换或保存失败时清空 WebVPN 凭据输入;临时状态读取失败后恢复登录轮询,403 和重试预算会停止自动重试,不重复提交登录。
- 复制 prompt 与安装说明已更新到 v0.3.1。保留原有客户端适配,明确配置/命令验证与真实应用验收的区别。
升级时运行:
uv tool install --force --python 3.12 https://github.com/0error0warning/stu-mcp/releases/download/v0.3.1/stu_mcp-0.3.1-py3-none-any.whl
stu-mcp connect codex --apply第二条按自己的客户端换成 claude-code、cursor 或其他支持的接入方式;它会更新旧的启动路径。然后重新加载 MCP 或重启客户端,关闭旧设置页,需要登录时再运行 stu-mcp setup。学生数据目录保留。
验证:Windows 本机 174 项通过、1 项系统符号链接测试跳过,Ruff 通过。Linux、macOS、Windows 的四项 CI 任务全部通过,包括真正安装 wheel 后执行导出的命令;发行提交 CI、PR CI。Linux Python 3.13 执行 7 项真实浏览器合成回归。凭据、会话、个人数据与测试记录均不进入发行包。
本版本仍为预览:教务、MySTU、雨课堂和 WebVPN 的真实学生账号登录与失效恢复待本人验收;配置生成或 stdio 握手不代表所有真实客户端应用均已完成验收。狐友 PR #2 不包含在本补丁版中。
STU MCP v0.3.0 · WebVPN 自动重登预览
WebVPN 会话过期后,之前需要本人再次登录。0.3.0 可由用户在本机设置页主动配置学校账号、密码和已绑定令牌的 TOTP 密钥;读取受保护 OA 信息时先复用会话,失效后自动生成新的动态码并重新登录。默认不要求这份配置,公开 OA 仍直接使用。
- 凭据直接保存在系统密钥库,不进入 MCP 参数、客户端配置、日志或普通文件,设置页不回填保存的值。
- 自动恢复覆盖受保护 OA 列表、通知正文和附件。每次读取最多一轮认证;进程之间串行,共享至少 60 秒的失败尝试间隔。没有定时保活或独立后台 AI。
- 学校拒绝凭据或要求人工验证码、令牌绑定等操作时暂停自动尝试。退出 WebVPN 移除凭据与会话/缓存;配置替换、退出和在途请求相互隔离,其他来源保留。
- 手动重新登录 WebVPN 会移除旧自动配置,避免自动切回旧账号。可单独关闭并移除自动凭据,保留当前会话。密钥库删除失败时先关闭自动登录,并允许恢复后再次移除。
验证:Windows 本机 134 项通过、1 项符号链接测试跳过,代码检查与 Skill 格式检查通过。跨平台 CI 四个任务均通过。真实 Chromium 在拦截的合成学校页面验证了认证与跨站提交拦截;Edge 验证了设置页保存、输入清空、移除及桌面/手机布局。发行 wheel 在隔离目录安装成功,stdio 发现 16 个工具,匿名公开读取保存 55 条、OA 保存 5 条,来源错误为空。
这仍是预览版:真实学生账号的自动认证、令牌参数、会话失效后的恢复和 HTTPS OA 代理可用性尚待验收。教务、MySTU、雨课堂及新增客户端实际应用的端到端限制沿用验证说明。没有读取或迁移原项目/生产服务的凭据或会话。
从旧版升级时,使用新版 wheel 的安装命令并加 --force;重新加载 MCP 或重启客户端,关闭旧设置页,再运行 stu-mcp setup。展开“WebVPN 会话失效后自动重新登录”,由本人配置;填写令牌密钥或完整 otpauth://totp/ 地址,不能填写当前六位验证码。