classover_mcp_server

pzpupu/classover_mcp_server

3.1

If you are the rightful owner of classover_mcp_server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The project is a Model Context Protocol (MCP) server for managing class schedules, built using Spring Boot and Spring AI.

课表管理 MCP 服务器

基于 Spring Boot 和 Spring AI MCP 的课表管理系统,提供课表查询、课程时间管理、教师更换等功能。

项目概述

本项目是一个基于 Spring Boot 3.5.5 和 Spring AI 1.0.1 构建的 MCP (Model Context Protocol) 服务器。系统提供了完整的课表管理功能,包括:

  • 课表查询:支持按课程、教师、星期、教室等多种方式查询课表
  • 课程时间管理:支持更新课程的上课时间、节次等信息
  • 教师更换:支持动态更换课程的授课教师
  • 基础数据管理:提供课程和教师信息的查询接口

技术栈

  • Java 21
  • Spring Boot 3.5.5
  • Spring AI 1.0.1 (MCP Server WebMVC)
  • Lombok - 减少样板代码
  • JUnit 5 - 单元测试
  • Maven - 项目构建和依赖管理

项目结构

src/main/java/com/classover/mcp/server/
├── McpServerApplication.java        # 主启动类
├── config/
│   └── McpServerConfig.java        # MCP 服务器配置
├── controller/
│   └── ScheduleController.java     # REST API 控制器
├── model/
│   ├── Course.java                 # 课程实体类
│   ├── Schedule.java               # 课程安排实体类
│   └── Teacher.java                # 教师实体类
└── service/
    └── ScheduleService.java        # 课表管理服务类

API 接口

查询接口

  • GET /api/schedule/all - 查询所有课表
  • GET /api/schedule/course/{courseId} - 根据课程ID查询课表
  • GET /api/schedule/teacher/{teacherId} - 根据教师ID查询课表
  • GET /api/schedule/day/{dayOfWeek} - 根据星期几查询课表 (1-7)
  • GET /api/schedule/classroom/{classroom} - 根据教室查询课表
  • GET /api/schedule/courses - 获取所有课程信息
  • GET /api/schedule/teachers - 获取所有教师信息

管理接口

  • PUT /api/schedule/{scheduleId}/time - 更新课程时间
  • PUT /api/schedule/{scheduleId}/teacher - 更换授课教师
  • PUT /api/schedule/{scheduleId}/classroom - 更新上课教室
  • POST /api/schedule - 添加新的课程安排
  • DELETE /api/schedule/{scheduleId} - 删除课程安排

使用示例

查询所有课表

curl http://localhost:8080/api/schedule/all

更换教师

curl -X PUT "http://localhost:8080/api/schedule/S001/teacher" \
     -H "Content-Type: application/json" \
     -d '{"newTeacherId": "T002"}'

更新课程时间

curl -X PUT "http://localhost:8080/api/schedule/S001/time" \
     -H "Content-Type: application/json" \
     -d '{
       "startTime": "2024-09-02 14:00",
       "endTime": "2024-09-02 15:40",
       "dayOfWeek": 1,
       "period": 7
     }'

构建和运行

构建项目

./mvnw clean install

运行测试

./mvnw test

启动应用

# 方式1:使用 Maven 插件
./mvnw spring-boot:run

# 方式2:运行打包后的 JAR
./mvnw package
java -jar target/server-0.0.1-SNAPSHOT.jar

应用启动后会在 http://localhost:8080 提供 REST API 服务。

测试数据

系统初始化时会创建以下测试数据:

教师信息:

  • T001: 张三 (教授, 计算机学院)
  • T002: 李四 (副教授, 数学学院)

课程信息:

  • C001: Java程序设计 (3学分, 必修)
  • C002: 高等数学 (4学分, 必修)

课程安排:

  • S001: Java程序设计 (周一第1节, 教学楼A101)
  • S002: 高等数学 (周二第3节, 教学楼B201)

扩展功能

作为 MCP 服务器,本项目支持通过 Model Context Protocol 与 AI 模型集成,可以:

  1. 通过自然语言查询课表信息
  2. 智能调度课程安排
  3. 自动处理课程冲突检测
  4. 生成课表报告和统计信息

开发规范

  • 所有 Java 类、方法和重要字段都包含详细的中文注释
  • 使用 JavaDoc 格式编写类和方法文档
  • 遵循 Spring Boot 最佳实践
  • 单元测试覆盖核心业务逻辑