数据生成器Java MCP服务器
一个Spring Boot应用程序,它实现了用于数据生成的模型完成协议(MCP)服务器。该项目演示了如何使用Spring AI创建自定义MCP服务器,该服务器可以与AI模型集成,根据提示生成数据。
概述
此应用程序充当MCP服务器,提供数据生成工具。它使用Spring AI的MCP服务器功能将Java方法作为AI模型可以调用的工具公开。服务器配置为以同步模式运行。
特性
- 实现模型完成协议(MCP)服务器
- 提供数据生成工具
- 支持同步执行模式
- 包括用于外部API集成的REST客户端
- 简单用户数据模型实现
先决条件
- Java 21或更高版本
- Maven 3.9+(或使用附带的Maven包装器)
- 对Spring Boot和Spring AI的基本了解
入门指南
构建应用程序
- 克隆存储库:
git clone
cd data-generator-java-mcp-server- 使用Maven构建应用程序:
./mvnw clean install运行应用程序
使用Maven包装器运行应用程序:
./mvnw spring-boot:runMCP服务器将启动并准备接受请求。
配置
MCP服务器配置
MCP服务器配置在 application.properties 文件:
# Application name
spring.application.name=data-generator-java-mcp-server
# MCP server name
spring.ai.mcp.server.name=data-generator-java-mcp-server
# MCP server type (SYNC or ASYNC)
spring.ai.mcp.server.type=SYNC
# Disable Spring Boot banner
spring.main.banner-mode=off
# Run as a non-web application
spring.main.web-application-type=none自定义配置
您可以通过修改来定制MCP服务器 McpServerConfig 类别:
@Configuration
public class McpServerConfig {
@Bean
public ToolCallbackProvider dataGeneratorToolCallbackProvider(DataGeneratorService dataGeneratorService) {
return MethodToolCallbackProvider.builder()
.toolObjects(dataGeneratorService)
.build();
}
}可用工具
MCP服务器公开了以下工具:
- 生成数据 -根据提供的提示生成数据
- 参数: prompt (字符串) - 返回:以字符串形式生成的数据
- getUser数据 -根据提供的ID和年龄生成用户数据
- 参数: - id (字符串) - age (int) - 返回:具有ID、名称和年龄的用户对象
扩展应用程序
要向MCP服务器添加新工具,请执行以下操作:
- 创建新的服务类或扩展现有服务类
DataGeneratorService - 添加带注释的方法
@Tool注释 - 在中注册服务
McpServerConfig类
例子:
@Service
public class MyCustomService {
@Tool(
name = "myCustomTool",
description = "Description of what the tool does"
)
public SomeReturnType myCustomTool(String param1, int param2) {
// Implementation
return result;
}
}然后在配置中注册它:
@Bean
public ToolCallbackProvider myCustomToolCallbackProvider(MyCustomService myCustomService) {
return MethodToolCallbackProvider.builder()
.toolObjects(myCustomService)
.build();
}与AI模型集成
此MCP服务器可以与支持模型完成协议的AI模型集成。AI模型可以调用此服务器公开的工具来生成数据,作为其处理的一部分。
