AI模型工具协议服务

Spring AI MCP Server and Client 是一个基于Spring Boot的AI模型工具协议服务,提供工具注册、发现和使用功能,适用于AI模型与外部工具的交互场景。

  • by augmentia-de
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 TorstenS1/mcp-server

使用说明

Spring AI MCP服务器和客户端

该项目包含两个主要组成部分:

  • mcp服务器:实现模型上下文协议(MCP)服务器的Spring Boot应用程序。它将工具暴露给AI模型,并可以将OpenAPI规范转换为MCP工具。
  • mcp客户端:充当MCP服务器客户端的Spring Boot应用程序。它动态地发现并使用服务器公开的工具与大型语言模型(LLM)进行交互。
  • python_mcp_server:第一个相当于Spring mcp服务器的热门Python实现。

入门指南

该项目旨在使用Docker Compose运行,Docker Compose协调所有服务(Java MCP服务器、Python MCP服务器、示例工具应用程序和MCP客户端)。

先决条件

  • Docker和Docker编写: 您的系统上必须安装Docker和Docker Compose。
  • OpenAI API密钥: 这 mcp-client 需要有效的OpenAI API密钥。运行前,编辑 mcp-client/config.yml 并替换 YOUR_OPENAI_API_KEY 用你真正的钥匙。

建筑工程

要构建所有Java项目并安装Python依赖项,请使用提供的构建脚本:

chmod +x build-all.sh
./build-all.sh

运行项目

要使用Docker Compose启动所有服务(Java MCP服务器、Python MCP服务器、示例工具应用程序和MCP客户端):

docker-compose up --build

运行后,这些服务将可在主机上的以下端口上访问:

  • Java MCP服务器: http://localhost:18001
  • Python MCP服务器: http://localhost:18002
  • 示例工具应用程序: http://localhost:18003
  • MCP客户端: http://localhost:18004

他们如何协同工作

这 mcp-server 充当工具提供者 mcp-client客户端连接到服务器以获取可用工具的列表,然后使用该列表与配置的LLM进行交互。这允许关注点分离,服务器管理工具,客户端专注于与LLM的交互。

如何注册新工具

一旦你有了一个具有OpenAPI规范的服务,你就可以在Python或Java MCP服务器中将其注册为工具。

Python MCP服务器

将工具添加到 tools 列表中 python_mcp_server/mcp_server.yml 文件。例如,要添加 sample-tools-app:

mcp_server:
  host: 0.0.0.0
  port: 18002
  tools:
  - description: API for managing users and orders
    name: sample-tools
    rest_api_url: http://sample-tools-app:18003/v3/api-docs

Java MCP服务器

Java MCP服务器可以在启动时从 mcp_server.yml 文件位于其 /config 目录。示例见 mcp-server/config/mcp_server.yml.

或者,您可以通过向发送POST请求来动态注册工具 /api/register-openapi 终点。在Docker中运行时,使用服务名称(例如。, sample-tools-app)作为主机名 source URL。

curl -X POST http://localhost:18001/api/register-openapi \
-H "Content-Type: application/json" \
-d '{
      "type": "URL",
      "source": "http://sample-tools-app:18003/v3/api-docs",
      "friendlyName": "sample-tools",
      "description": "Tools for managing users and orders"
    }'

端到端测试

该项目包括一个完整的端到端测试,以验证所有组件(mcp-server-java, sample-tools-app,以及 mcp-client)正在正确地协同工作。

先决条件

  1. Docker和Docker编写: 您必须安装Docker和Docker Compose。
  2. OpenAI API密钥: 这 mcp-client 需要有效的OpenAI API密钥才能运行。在运行测试之前,您必须编辑 mcp-client/config.yml 归档并替换占位符 YOUR_OPENAI_API_KEY 用你真正的钥匙。

运行测试

shell脚本 test-e2e.sh 提供用于自动化整个过程。

  1. 使脚本可执行:

    chmod +x test-e2e.sh
    
  2. 运行脚本:

    ./test-e2e.sh
    

脚本将:

  • 在Docker中构建并启动所有必要的服务。
  • 等待服务初始化。
  • 向发送提示 mcp-client 这要求它使用来自 sample-tools-app.
  • 打印LLM的最终回复。
  • 关闭并清理所有服务。

贡献

欢迎投稿!请随时提交拉取请求。

许可证

该项目根据MIT许可证获得许可。请参阅 LICENSE 文件以获取更多信息。