课程学生管理服务

一个基于Spring Boot的REST API服务,提供课程和学生管理的CRUD操作,并支持AI客户端通过MCP工具进行交互。

  • by Nafiuli131
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 nafiuli131/mcp-server

使用说明

课程学生MCP服务器

一个Spring Boot应用程序,提供REST CRUD API用于管理 课程 和 学生,与 MySQL (或H2用于显影),并暴露 MCP(多通道处理)工具 对于像Claude Desktop这样的AI客户端。


特性

  • REST API 课程和学生(创建、阅读、更新、删除)
  • 学生入学 进入课程
  • MCP STDIO工具 可由AI代理访问(Claude Desktop)
  • 可选HTTP MCP发现 适用于基于web的客户端
  • 持久性 通过MySQL(生产)或H2(内存开发)
  • 使用Spring Boot、Spring Data JPA和Spring AI MCP starter的完全结构化、可维护的项目

技术

  • Java 21
  • 弹簧靴3.3
  • Spring数据JPA
  • MySQL / 氢
  • Spring AI MCP服务器
  • 龙目 (可选)

设置

先决条件

  • Java 21+
  • 梅文
  • MySQL(或用于内存开发的H2)
  • (可选)用于MCP交互的Claude桌面

MySQL设置

  1. 创建数据库:
CREATE DATABASE course_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. 更新 application.properties 使用您的MySQL凭据:
spring.datasource.url=jdbc:mysql://localhost:3306/course_db?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=your_mysql_password

构建与运行

mvn clean package
java -jar target/course-student-mcp-1.0.0.jar

REST API端点

学生

方法 端点 描述
得到 /api/students 列出所有学生
职位 /api/students 创建学生(name, email)
得到 /api/students/{id} 通过ID获取学生
PUT /api/students/{id} 更新学生信息
删除 /api/students/{id} 删除学生
职位 /api/students/{studentId}/enroll/{courseId} 为学生注册课程

课程

方法 端点 描述
得到 /api/courses 列出所有课程
职位 /api/courses 创建课程(title, description)
得到 /api/courses/{id} 通过ID获取课程
PUT /api/courses/{id} 更新课程信息
删除 /api/courses/{id} 删除课程

MCP(克劳德桌面)

MCP服务器通过以下方式公开方法 标准输入输出 对于AI客户端:

  • listStudents() --列出所有学生
  • addStudent(name, email) --添加学生
  • listCourses() --列出所有课程
  • addCourse(title, description) --添加课程
  • enrollStudent(studentId, courseId) --让学生报名参加课程

克劳德桌面的STDIO设置

  1. 在Claude Desktop中,添加MCP服务器配置:

{
  "mcpServers": {
    "education-mcp": {
      "command": "/usr/bin/java",
      "args": [
        "-Dspring.main.banner-mode=off",
        "-Dlogging.level.root=OFF",
        "-jar",
        "/ABSOLUTE/PATH/TO/target/course-student-mcp-1.0.0.jar"
      ]
    }
  }
}
  1. 重新启动Claude Desktop——MCP服务器将自动启动。

可选HTTP MCP

  • 发现工具: GET http://localhost:8080/mcp/tools
  • 呼叫工具: POST http://localhost:8080/mcp/call 身体:
{
  "method": "addStudent",
  "params": {"name":"Alice","email":"alice@example.com"}
}

可选演示数据

通过添加一些初始记录 data.sql:

INSERT INTO courses (title, description) VALUES ('Java Basics', 'Intro to Java'), ('Spring Boot', 'REST & JPA');
INSERT INTO students (name, email) VALUES ('Alice','alice@example.com'), ('Bob','bob@example.com');
INSERT INTO student_course (student_id, course_id) VALUES (1,1);

备注

  • 交易与验证: 实施基本检查;您可以通过以下方式进行扩展 @Valid 注释。
  • 错误处理: 添加 @ControllerAdvice 以获得更好的REST响应。
  • 安全: MCP和HTTP端点是开放的;添加JWT/OAuth以供生产使用。
  • 克劳德桌面: 所有MCP呼叫都在本地运行;您的数据保持私密。