使用说明
课程学生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设置
- 创建数据库:
CREATE DATABASE course_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 更新
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设置
- 在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"
]
}
}
}
- 重新启动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呼叫都在本地运行;您的数据保持私密。