数据生成MCP服务器

一个基于Spring Boot的Model Completion Protocol (MCP)服务器,用于通过AI模型生成数据。

  • by uthircloudnative
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 uthircloudnative/data-generator-mcp-server-java

使用说明

数据生成器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的基本了解

入门指南

构建应用程序

  1. 克隆存储库:

    git clone <repository-url>
    cd data-generator-java-mcp-server
    
  2. 使用Maven构建应用程序:

    ./mvnw clean install
    

运行应用程序

使用Maven包装器运行应用程序:

./mvnw spring-boot:run

MCP服务器将启动并准备接受请求。

配置

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服务器公开了以下工具:

  1. 生成数据 -根据提供的提示生成数据

    • 参数: prompt (字符串)
    • 返回:以字符串形式生成的数据
  2. getUser数据 -根据提供的ID和年龄生成用户数据

    • 参数:
      • id (字符串)
      • age (int)
    • 返回:具有ID、名称和年龄的用户对象

扩展应用程序

要向MCP服务器添加新工具,请执行以下操作:

  1. 创建新的服务类或扩展现有服务类 DataGeneratorService
  2. 添加带注释的方法 @Tool 注释
  3. 在中注册服务 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模型可以调用此服务器公开的工具来生成数据,作为其处理的一部分。