使用说明
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)正在正确地协同工作。
先决条件
- Docker和Docker编写: 您必须安装Docker和Docker Compose。
- OpenAI API密钥: 这
mcp-client需要有效的OpenAI API密钥才能运行。在运行测试之前,您必须编辑mcp-client/config.yml归档并替换占位符YOUR_OPENAI_API_KEY用你真正的钥匙。
运行测试
shell脚本 test-e2e.sh 提供用于自动化整个过程。
-
使脚本可执行:
chmod +x test-e2e.sh -
运行脚本:
./test-e2e.sh
脚本将:
- 在Docker中构建并启动所有必要的服务。
- 等待服务初始化。
- 向发送提示
mcp-client这要求它使用来自sample-tools-app. - 打印LLM的最终回复。
- 关闭并清理所有服务。
贡献
欢迎投稿!请随时提交拉取请求。
许可证
该项目根据MIT许可证获得许可。请参阅 LICENSE 文件以获取更多信息。
