Skip to main content
Glama
WTS-bupt-unOfficial-mcp
by Nemoyuzx

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

get_campuses

Campus information (Xitucheng 01 / Shahe 04) and main teaching buildings

get_classrooms

Query today's empty classrooms, supports filtering by campus_id / slot (periods 1-14) / building

get_schedule

Query class schedule, defaults to current week, supports week (week number) or date (week containing the date)

get_today_overview

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 build

2. 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.js

4. 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

MIT

Available Tools

4 tools
get_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

    A4.2/5.0

    Scored across 4 tools

    Disambiguation5/5

    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.

    Naming Consistency5/5

    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.

    Tool Count5/5

    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.

    Completeness4/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers