使用Spring Boot Java的MCP服务器
一个使用Spring Boot和Java 21构建的模型上下文协议(MCP)服务器实现。该项目展示了如何创建一个MCP服务器,该服务器为AI助手提供用户管理工具。
特点/功能
- 使用Spring AI实现MCP服务器功能
- 通过MCP暴露用户管理工具
- 同步通信模式
- 支持标准I/O和服务器发送事件(Server-Sent Events)传输
- 集成与DummyJSON外部API以获取用户数据
技术
- Java 21
- Spring Boot 3.4.3
- Spring AI(模型上下文协议)
- Project Lombok(项目:Lombok)
- Maven
入门指南
先决条件
- Java 21 或更高版本
- Maven
安装
- 克隆仓库
git clone https://github.com/yourusername/mcp-spring-java.git
cd mcp-spring-java- 构建项目
mvn clean package- 运行应用程序
java -jar target/mcp-spring-java-0.0.1-SNAPSHOT.jar配置
MCP服务器已配置在 application.yml:
- 服务器运行在8090端口
- 服务器名称:my-dummy-users-server(中文可译为“我的虚拟用户服务器”)
- 同步通信模式
- 支持基于终端的通信中的STDIO传输
- 揭露(或曝光)
/mcp/messageSSE通信的端点
可用工具
服务器提供了以下用户管理工具:
getAllUsers- 获取所有用户并进行分页getAllUsersDefault- 获取所有用户,使用默认分页getUserById- 通过ID获取单个用户searchUsers- 通过查询搜索用户addUser- 添加一个新用户updateUser- 更新用户信息deleteUser- 删除用户
使用Postman进行测试
你可以使用Postman来测试MCP服务器的端点:
- 启动MCP服务器
- 打开 Postman 并创建一个新的请求:
- 方法:POST - URL: http://localhost:8090/mcp/message(中文可表述为:本地主机8090端口的MCP消息服务URL) - 标题/头部信息: - 内容类型:application/json - 接受:application/json(表示客户端接受JSON格式的响应)
- 对于请求体,请使用以下JSON格式来调用任何可用的工具:
{
"message": {
"toolCalls": [
{
"id": "call-123",
"name": "[TOOL_NAME]",
"parameters": {
"[PARAMETER_NAME]": "[PARAMETER_VALUE]"
}
}
]
}
}示例请求
获取所有用户(默认分页)
{
"message": {
"toolCalls": [
{
"id": "call-123",
"name": "getAllUsersDefault",
"parameters": {}
}
]
}
}按ID获取用户
{
"message": {
"toolCalls": [
{
"id": "call-123",
"name": "getUserById",
"parameters": {
"id": 1
}
}
]
}
}搜索用户
{
"message": {
"toolCalls": [
{
"id": "call-123",
"name": "searchUsers",
"parameters": {
"query": "John"
}
}
]
}
}响应将包含一个JSON对象,其中包含工具执行的结果。
与MCP客户端的使用
您可以在MCP客户端应用程序中使用以下配置来设置此服务器:
{
"mcpServers": {
"dummy-user-server": {
"command": "java",
"args": [
"-Dspring.ai.mcp.server.stdio=true",
"-Dspring.main.web-application-type=none",
"-Dlogging.pattern.console=",
"-jar",
"path/to/mcp-spring-java-0.0.1-SNAPSHOT.jar"
]
}
}
}许可证
本项目根据LICENSE文件中提供的条款进行授权。
