AI模型控制协议服务

基于Spring AI的模型控制协议(MCP)服务,提供AI模型交互工具和执行框架,适用于自然语言处理和客户端-服务器架构的应用场景。

  • by huffmantayler
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 huffmantayler/mcp-client-server

使用说明

Spring AI MCP项目

该存储库包含两个Spring Boot项目,演示了使用Spring AI实现模型控制协议(MCP)服务器和客户端。这些项目基于Spring AI的示例项目,并已修改为使用OpenAI的API协同工作。

项目起源

这两个项目都源于Spring AI的官方示例:

  • MCP服务器基于Spring AI starter-default-server 例子
  • MCP客户端基于Spring AI的 starter-default-client 例子

原始示例已被改编为:

  • 在客户端-服务器架构中协同工作
  • 使用OpenAI的API进行自然语言处理
  • 实施自定义工具(DateTool)以演示MCP功能
  • 配置客户端和服务器之间的正确通信

项目概述

1.MCP服务器(spring-ai-mcp-server)

MCP服务器是一个Spring Boot应用程序,它实现了模型控制协议,为AI模型交互提供了工具和端点。它充当处理工具执行和模型响应的后端服务。

主要特点:

  • 工具执行框架
  • 用于MCP交互的RESTful API端点
  • 与Spring AI集成进行模型管理
  • 示例工具实现(DateTool)

2.MCP客户端(spring-ai-mcp-client)

MCP客户端是一个Spring Boot应用程序,演示如何与MCP服务器交互。它提供了一个用户界面,并处理与MCP服务器的通信。

主要特点:

  • 与ChatGPT集成以进行自然语言处理
  • 服务器通信的MCP客户端配置
  • 用于客户端交互的RESTful API端点
  • 客户端-服务器通信的示例实现

入门指南

先决条件

  • Java 17或更高版本
  • 梅文
  • OpenAI API密钥(用于ChatGPT集成)

配置

  1. MCP服务器配置(spring-ai-mcp-server/src/main/resources/application.properties):
server.port=8080
spring.ai.openai.api-key=your-openai-api-key
  1. MCP客户端配置(spring-ai-mcp-client/src/main/resources/application.properties):
server.port=8081
spring.ai.openai.api-key=your-openai-api-key
spring.ai.mcp.server.url=http://localhost:8080

运行应用程序

  1. 启动MCP服务器:
cd spring-ai-mcp-server
mvn spring-boot:run
  1. 启动MCP客户端:
cd spring-ai-mcp-client
mvn spring-boot:run

API终点

MCP服务器端点

  • POST /mcp/chat:MCP交互的主要终点
  • POST /mcp/tools:工具执行的端点

MCP客户端端点

  • POST /chat:客户端聊天交互的端点
  • POST /mcp/chat:MCP特定交互的终点

项目结构

MCP服务器

spring-ai-mcp-server/
├── src/main/java/com/example/springaimcp/
│   ├── controller/
│   │   └── McpController.java
│   ├── tool/
│   │   └── DateTool.java
│   └── SpringAiMcpApplication.java
└── src/main/resources/
    └── application.properties

MCP客户端

spring-ai-mcp-client/
├── src/main/java/com/example/springaimcpclient/
│   ├── controller/
│   │   └── ChatController.java
│   ├── config/
│   │   └── McpConfig.java
│   └── SpringAiMcpClientApplication.java
└── src/main/resources/
    └── application.properties

依赖项

这两个项目都使用Spring Boot和Spring AI,并具有以下关键依赖关系:

  • spring-boot-starter-web
  • spring-ai-openai-spring-boot-starter
  • spring-ai-mcp-spring-boot-starter

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。