使用Spring Boot Java的MCP服务器
使用Spring Boot和Java 21构建的模型上下文协议(MCP)服务器实现。该项目演示了如何创建一个MCP服务器,为AI助手提供用户管理工具。
特性
- 使用Spring AI实现MCP服务器功能
- 通过MCP公开用户管理工具
- 同步通信模式
- 支持标准I/O和服务器发送事件传输
- 与DummyJSON外部API集成,用于用户数据
技术
- Java 21
- 弹簧靴3.4.3
- Spring AI(模型上下文协议)
- 龙目岛项目
- 梅文
入门指南
先决条件
- Java 21或更高版本
- 梅文
安装
- 克隆存储库
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上运行
- 服务器名称:我的虚拟用户服务器
- 同步通信模式
- 支持基于终端的通信的STDIO传输
- 暴露
/mcp/messageSSE通信端点
可用工具
服务器公开了以下用户管理工具:
getAllUsers-获取所有具有分页功能的用户getAllUsersDefault-使用默认分页获取所有用户getUserById-按ID获取单个用户searchUsers-按查询搜索用户addUser-添加新用户updateUser-更新用户deleteUser-删除用户
使用Postman进行测试
您可以使用Postman测试MCP服务器端点:
- 启动MCP服务器
- 打开Postman并创建新请求:
- 方法:POST - 网址:http://localhost:8090/mcp/message - 标题: - 内容类型:应用程序/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"
]
}
}
}许可证
此项目根据许可文件中提供的条款获得许可。

