MCP服务器客户端项目
项目介绍
该项目是模型上下文协议(MCP)的实现,允许AI模型和外部工具之间的通信。该应用程序由三个主要组件组成:
- Python MCP服务器 -使用FastMCP库用Python编写的轻量级MCP服务器
- MCP Spring Boot服务器 -使用服务器发送事件(SSE)协议的基于Spring Boot的MCP服务器
- 客户端MCP弹簧启动 -连接到MCP服务器并使用Anthropic Claude API实现AI功能的客户端
项目结构
mcp-server-client-spring-ai-main/
│
├── python-mcp-server/ # Serveur MCP Python
│ ├── server.py # Point d'entrée du serveur MCP Python
│ └── main.py # Fichier Python principal
│
├── sse-mcp-server/ # Serveur MCP Spring Boot
│ ├── pom.xml # Configuration Maven
│ └── src/ # Code source Java
│
├── mcp-client/ # Client MCP Spring Boot
│ ├── pom.xml # Configuration Maven
│ ├── src/ # Code source Java
│ └── resources/ # Fichiers de configuration
│ ├── application.properties # Configuration principale
│ ├── application-secrets.properties # Clés API (non versionnées)
│ └── mcp-servers.json # Configuration des serveurs MCP
│
└── run-all.bat # Script pour démarrer tous les composants先决条件
- Java 21或更高版本
- Python 3.10或更高版本
- Maven(包括在MVNW包装器中)
- CléAPI人类克劳德
安装
- 安装Python依赖项
cd python-mcp-server
pip install fastmcp- 配置Anthropic API密钥(必需)
应用程序需要有效的Anthropic Claude API密钥才能运行。如果没有此密钥,您将收到身份验证错误(HTTP 401 - invalid x-api-key).
以下是如何配置API密钥:
a)创建文件 application-secrets.properties 在文件中 mcp-client/src/main/resources/ 基于提供的模型:
# Clé API Anthropic
spring.ai.anthropic.api-key=sk-ant-api03-VOTRE_CLÉ_API_ICIb)或者,您可以定义一个名为的系统环境变量 CLAUDE_API_KEY 使用API密钥作为值。
重要:切勿共享API密钥或将其发布到GitHub或任何其他公共存储库。文件 application-secrets.properties Git会自动忽略它以保护您的密钥。启动应用程序
启动前的先决条件
- 确保已配置Anthropic API密钥(请参阅上一节)
- 确保已安装Python且FastMCP库可用
- 如果使用文件系统服务器,请确保已安装并可访问Node.js
方法1:自动启动(推荐)
使用批处理脚本,以正确的顺序在适当的时间范围内启动所有组件:
run-all.batCe脚本:
- 首先在单独的窗口中启动Python MCP服务器
- 参加3秒钟的初始化
- 在第二个窗口中启动MCP Spring Boot服务器
- 参加5秒的初始化
- 在当前窗口中启动MCP客户端
方法2:手动启动部件
如果您喜欢更精确的控制,可以手动启动每个组件 按这个顺序:
- 启动Python MCP服务器
cd python-mcp-server
python server.py- 启动MCP Spring Boot服务器
cd sse-mcp-server
./mvnw spring-boot:run # Sous Windows: mvnw.cmd spring-boot:run- 启动MCP客户端
cd mcp-client
./mvnw spring-boot:run # Sous Windows: mvnw.cmd spring-boot:run访问应用程序
启动后,可以访问客户端应用程序:
- 网址:
http://localhost:8080 - Python MCP服务器在端口8878上运行
- Spring Boot MCP服务器在端口8877上运行
建筑
系统使用模型上下文协议(MCP)实现不同组件之间的通信:
- 乐 Python MCP服务器 提供简单的工具,如恢复员工信息
- 乐 MCP Spring Boot服务器 通过Spring Boot提供额外服务
- 乐 客户端MCP 连接到这些服务器以访问其工具,并通过web界面公开它们
配置
客户端MCP配置
文件 application.properties 包含主要配置:
# Configuration du client MCP
spring.ai.mcp.client.type=sync
spring.ai.mcp.client.connection-timeout=60000
spring.ai.mcp.client.read-timeout=60000
spring.ai.mcp.client.sse.connections.server1.url=http://localhost:8877MCP服务器配置
文件 mcp-servers.json 定义可用的MCP服务器:
{
"mcpServers": {
"filesystem": {
"command": "C:/Program Files/nodejs/npx.cmd",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"chemin/vers/dossier"
]
},
"Python-MCP-Server": {
"command": "python",
"args": [
"chemin/vers/server.py"
]
}
}
}安全
敏感API密钥存储在文件中 application-secrets.properties 这被排除在Git版本控制之外。切勿共享此文件或将其包含在提交中。
故障排除
- 错误“无效x-api-key”
- 检查您的Anthropic API密钥是否正确配置 application-secrets.properties
- 错误“无法运行程序'npx'”
- 验证是否安装了Node.js,或通过添加以下内容禁用文件系统服务器: - spring.ai.mcp.client.stdio.filesystem.auto-initialization.enabled=false 在 application.properties
- MCP服务器连接问题
- 验证MCP服务器是否正在运行 - 检查中的超时设置 application.properties
贡献
要为本项目做出贡献,请:
- 分叉存款
- 为您的功能创建分支(
git checkout -b nouvelle-fonctionnalite) - 验证您的更改(
git commit -am 'Ajouter une nouvelle fonctionnalité') - 向分支推(
git push origin nouvelle-fonctionnalite) - 创建拉取请求
许可证
该项目在MIT许可下发布。
