WTS-bupt-unOfficial-mcp
WTS-bupt-unOfficial-mcp
非官方北邮(BUPT)移动教务 MCP(Model Context Protocol)服务:查询今日空教室、课程表,以及两者的联合查询。
服务请求参考并移植自开源项目 where_to_study。
⚠️ 本项目为非官方服务,仅供学习交流,请勿滥用。使用即表示你同意自行承担账号风险。
功能(MCP Tools)
Tool | 说明 |
| 校区信息(西土城 01 / 沙河 04)及主要教学楼 |
| 查询今日空教室,支持按 |
| 查询课程表,默认当前周,支持 |
| 联合查询:今日课程 + 每节次空闲教室数 + 当前节次空闲教室 + 全天空闲教室 |
快速开始
1. 克隆与安装
git clone https://github.com/Nemoyuzx/WTS-bupt-unOfficial-mcp.git
cd WTS-bupt-unOfficial-mcp
npm install
npm run build2. 配置账号(配置文件)
创建 config.json(可复制 config.example.json 修改),账号密码在配置文件中设置,不再使用环境变量:
{
"userNo": "你的学号",
"pwd": "你的移动教务密码",
"campusId": "01"
}字段 | 说明 |
| 北邮移动教务账号(学号) |
| 北邮移动教务密码(与"移动教务"小程序/公众号一致) |
| 可选,默认 |
学期号与开学日期无需配置:服务会自动从课表接口响应中识别(学期 ID 取自 semesterId,开学日期由返回的周次与日期推算),接口无法推断时按北邮校历规律(春季 3 月初 / 秋季 9 月初)自动兜底。config.json 已被 gitignore,不会提交。
3. 直接运行
node dist/index.js默认读取运行目录下的 config.json;也可用 --config <路径> 指定配置文件位置。
4. 接入 Claude Desktop / Cursor 等 MCP 客户端
在 MCP 客户端配置中添加(stdio 方式):
{
"mcpServers": {
"wts-bupt": {
"command": "node",
"args": [
"/绝对路径/WTS-bupt-unOfficial-mcp/dist/index.js",
"--config",
"/绝对路径/WTS-bupt-unOfficial-mcp/config.json"
]
}
}
}使用示例
问 MCP 客户端:
「查一下今天沙河校区第 3 节有哪些空教室」
「这周我有什么课?」
「现在哪些教室空着?」(联合查询:
get_today_overview)
开发与测试
npm test # 使用 where_to_study 的原始响应样例做解析器单测
npm run build # 编译到 dist/目录结构
src/
├── index.ts # MCP 服务入口(4 个工具)
├── config.ts # 配置文件加载(config.json / --config)
├── api.ts # 移动教务 HTTP 客户端(登录/课表/空教室)
├── date.ts # 北京时区日期/周次/节次工具
├── term.ts # 学期参数自动识别(移植 auto-term-detection 分支)
├── parsers/
│ ├── classrooms.ts # 空教室响应解析(移植 SJDClassroomParser)
│ └── schedule.ts # 课表响应解析(移植 SJDScheduleParser + ScheduleLogic)
└── types.ts # 数据模型(Course / Classroom / 节次时刻表)
test/
└── run-tests.ts # 单元测试(含参考项目原始响应样例)License
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Nemoyuzx/WTS-bupt-unOfficial-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server