WTS-bupt-unOfficial-mcp
This server is a non-official MCP service for BUPT mobile academic affairs that lets you query campuses, empty classrooms, course schedules, and combined daily overviews.
get_campuses: Retrieve BUPT campus info (西土城 01 / 沙河 04) and main teaching buildings.
get_classrooms: Query today's empty classrooms, optionally filtered by campus, class slot (1–14), or building name.
get_schedule: Get the course schedule for the current week, a specific week number, or the week containing a given date.
get_today_overview: Get a combined view of today's courses, occupied slots, free classroom counts per slot, currently free classrooms, and all-day free classrooms.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@WTS-bupt-unOfficial-mcp What empty classrooms are there in the Shahe campus for the 5th period today?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
WTS-bupt-unOfficial-mcp
Unofficial BUPT Mobile Academic MCP (Model Context Protocol) Service: Query today's empty classrooms, class schedules, and a combined query of both.
The service request is adapted and ported from the open-source project where_to_study.
⚠️ This project is an unofficial service for learning and communication purposes only. Do not misuse it. By using it, you agree to assume all account-related risks.
Features (MCP Tools)
Tool | Description |
| Campus information (Xitucheng 01 / Shahe 04) and main teaching buildings |
| Query today's empty classrooms, supports filtering by |
| Query class schedule, defaults to current week, supports |
| Combined query: today's classes + number of free classrooms per period + free classrooms for the current period + free classrooms for the entire day |
Related MCP server: mydy-lms
Quick Start
1. Clone and Install
git clone https://github.com/Nemoyuzx/WTS-bupt-unOfficial-mcp.git
cd WTS-bupt-unOfficial-mcp
npm install
npm run build2. Configure Environment Variables
export BUPT_USER_NO=你的学号
export BUPT_PWD=你的移动教务密码
export BUPT_CAMPUS_ID=01 # 可选,默认 01=西土城;04=沙河
export BUPT_TERM_START_DATE= # 可选,学期开学日 YYYY-MM-DD(无法从接口推断时兜底)3. Run Directly
node dist/index.js4. Connect to Claude Desktop / Cursor or Other MCP Clients
Add the following configuration to your MCP client (stdio mode):
{
"mcpServers": {
"wts-bupt": {
"command": "node",
"args": ["/绝对路径/WTS-bupt-unOfficial-mcp/dist/index.js"],
"env": {
"BUPT_USER_NO": "你的学号",
"BUPT_PWD": "你的密码",
"BUPT_CAMPUS_ID": "01"
}
}
}
}Usage Examples
Ask the MCP client:
"Check which empty classrooms are available in Shahe campus during period 3 today"
"What classes do I have this week?"
"Which classrooms are empty right now?" (combined query:
get_today_overview)
Development and Testing
npm test # 使用 where_to_study 的原始响应样例做解析器单测
npm run build # 编译到 dist/Directory Structure
src/
├── index.ts # MCP 服务入口(4 个工具)
├── api.ts # 移动教务 HTTP 客户端(登录/课表/空教室)
├── date.ts # 北京时区日期/周次/节次工具
├── parsers/
│ ├── classrooms.ts # 空教室响应解析(移植 SJDClassroomParser)
│ └── schedule.ts # 课表响应解析(移植 SJDScheduleParser + ScheduleLogic)
└── types.ts # 数据模型(Course / Classroom / 节次时刻表)
test/
└── run-tests.ts # 单元测试(含参考项目原始响应样例)License
Available Tools
4 toolsget_campuses获取北邮校区信息A
返回北邮移动教务支持的两个校区(西土城 01 / 沙河 04)及其主要教学楼,用于空教室查询时选择 campus_id。
Inputs: no named parameters.
get_classrooms获取今日空教室A
查询北邮移动教务的今日空教室。返回每个教室今日空闲的节次(1-14节)与时间。可选参数:campus_id(默认取环境变量 BUPT_CAMPUS_ID,01=西土城,04=沙河)、slot(1-14,只看该节次空闲的教室)、building(按教学楼名过滤,如"教1"、"主楼"、"综合教学楼N")。
Inputs: slot, building, campus_id.
get_schedule获取课程表A
查询北邮移动教务的课程表。默认返回当前周的课程;可通过 week 指定周次,或通过 date(YYYY-MM-DD)指定日期所在的周。返回课程名称、教师、教室、节次与时间。
Inputs: date, week.
get_today_overview今日空教室与课表联合查询A
一次查询返回:今日日期/星期/当前周次、今日课程列表、课程占用节次、每个节次的空闲教室数量、当前节次空闲教室、全天空闲教室。用于回答"今天有哪些课""现在哪些教室空着""第 X 节有哪些空教室"等问题。
Inputs: campus_id.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a clear, distinct purpose: campuses list, classroom availability, schedule, and a combined daily overview. There is no overlap; get_classrooms and get_today_overview serve different query granularities.
All tools follow a consistent 'get_' prefix with lowercase underscore-separated names. The verb_noun pattern is uniform, even the compound name 'get_today_overview' fits the pattern without mixing conventions.
With 4 tools, the server is tightly scoped to the domain of querying campus, classroom, and schedule information. Each tool earns its place, and the count is neither too few nor excessive for a focused utility.
The tool set covers the core queries for a university timetable system: campuses, empty classrooms (with filters), schedule, and a combined overview. Minor gaps like querying classroom details or multi-day views exist, but the surface is practical and unlikely to cause agent failures.
Maintenance
Related MCP Connectors
MCP server providing attendance data queries via the CloudTime API.
MCP server for China Railway 12306 ticket availability: schedules and seats by Chinese station name.
MCP server for China Railway 12306 ticket availability: schedules and seats by Chinese station name.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server for the Bakaláři v3 API that provides access to the popular Czech school management system. It enables users to retrieve schedules, permanent timetables, absence records, and grades through a standardized interface.3MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server for interacting with the MyDy (Moodle-based) LMS, enabling attendance viewing, course browsing, assignment and grade checking, announcement reading, and material downloading.7MIT
- FlicenseNot gradedqualityDmaintenance武汉大学校园服务 MCP 服务器,提供图书馆座位、课表、成绩、考试、天气等工具,通过 SSE 协议供 Claude Code 远程调用。-
- FlicenseCqualityDmaintenanceMCP server that reads Korean school class and teacher timetables from Comci's public schedules, detects schedule changes, and exposes structured data via CLI, local REST, and MCP stdio.81-