MCP CRUD面试问题
基于Spring Boot的模型控制协议(MCP)服务器,旨在管理面试问题数据库。该项目利用Spring AI的MCP功能,提供基于工具的面试问题数据访问。
概述
该项目是一个使用Spring Boot和Spring AI构建的MCP(模型控制协议)服务器。它通过基于工具的交互提供管理面试问题的服务,使从数据库中检索、创建、更新和删除面试问题变得容易。
特性
- 面试问题管理:创建、阅读、更新和删除面试问题
- 基于类别的过滤:按特定类别检索问题
- 基于工具的API:Spring AI的工具注释,便于集成
- MySQL数据库集成:坚持回答面试问题
项目结构
src/
├── main/
│ ├── java/
│ │ └── io/
│ │ └── michaeljgkopp/
│ │ └── github/
│ │ ├── dao/
│ │ │ └── InterviewQuestionRepository.java
│ │ ├── entity/
│ │ │ └── InterviewQuestion.java
│ │ ├── service/
│ │ │ └── InterviewQuestionService.java
│ │ └── SpringMcpServerApplication.java
│ └── resources/
│ ├── application.properties
│ └── create_db.sql需求
- Java 24
- mysql数据库
- Maven 3.6+或兼容的构建工具
安装
克隆存储库
git clone https://github.com/MichaelJGKopp/MCP-CRUD-Interview-Question.git
cd MCP-CRUD-Interview-Question数据库设置
- 创建所需的MySQL数据库:
CREATE DATABASE IF NOT EXISTS mcp_interview_questions_db;- 为MySQL用户配置适当的权限(或使用具有适当访问权限的现有凭据)
配置
应用程序通过以下方式配置 application.properties。您可以自定义这些设置或使用环境变量覆盖它们:
spring.application.name=interview-questions-mcp-server
spring.main.web-application-type=none
spring.ai.mcp.server.name=interview-questions-mcp-server
spring.ai.mcp.server.version=0.0.1
server.port=${SERVER_PORT:3001}
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=${DB_URL:jdbc:mysql://localhost:3306/mcp_interview_questions_db}
spring.datasource.username=${DB_USERNAME:springstudent}
spring.datasource.password=${DB_PASSWORD:springstudent}构建项目
mvn clean package运行服务器
java -jar target/spring-mcp-server-0.0.1-SNAPSHOT.jar或者使用自定义环境变量:
SERVER_PORT=3002 DB_USERNAME=custom_user DB_PASSWORD=secure_password java -jar target/spring-mcp-server-0.0.1-SNAPSHOT.jar可用工具
MCP服务器公开了以下交互工具:
| 工具名称 | 描述 |
|---|---|
iqs_get_interview_questions_by_category | 检索按特定类别筛选的面试问题 |
iqs_get_interview_questions_all | 检索数据库中的所有面试问题 |
iqs_save_interview_question | 创建新的面试问题或更新现有问题 |
iqs_delete_interview_question_by_id | 按ID删除面试问题 |
iqs_delete_all_interview_questions | 删除所有面试问题(谨慎使用) |
面试问题模型
每个面试问题由以下字段组成:
| 字段 | 描述 |
|---|---|
| id | 唯一标识符(自动生成) |
| 难度 | 问题的难度级别(限制为10个字符) |
| category | 问题的类别(例如,“Java”、“SQL”、“Spring”) |
| title | 问题的简要标题 |
| question | 面试问题文本(限制1000个字符) |
| answer | 答案或解决方案(限制在10000个字符以内) |
与AI模型集成
此MCP服务器旨在与Spring AI配合使用,允许AI模型使用提供的工具与面试问题数据库进行交互。服务器不公开传统的web界面,如所示 spring.main.web-application-type=none 在配置中。
发展
添加新类别
系统支持任何基于字符串的类别。要在新类别中添加问题,只需在创建问题时使用该类别名称。
扩展模型
要扩展 InterviewQuestion 带有附加字段的模型:
- 更新
InterviewQuestion.java实体类 - 添加适当的getter和setter
- 重新启动应用程序(由于以下原因,数据库架构将自动更新
spring.jpa.hibernate.ddl-auto=update)
许可证
这个项目是开源的。有关详细的许可证信息,请联系存储库所有者。
联系
如有疑问或需要支持,请联系 迈克尔·J·G·科普.
