使用说明
MCP多服务器系统
用于模型上下文协议(MCP)的多服务器系统,具有统一的前端和用于不同工具集的两个专用后端服务器。
🏗️ 建筑
该系统由三个主要部分组成:
- 前端API(端口3000): 一个FastAPI应用程序,为管理代理和工具提供web界面,并充当后端MCP服务器的网关。
- MCP服务器A(端口3001): 提供金融相关工具的FastAPI应用程序。
- MCP服务器B(端口3002): 提供通用实用工具的FastAPI应用程序。
- PostgreSQL数据库: 用于存储服务器、工具和代理信息的中央数据库。
🚀 入门指南
1.先决条件
- Python 3.8+
- PostgreSQL
2.安装
- 克隆存储库。
- 安装所需的Python包:
pip install -r requirements.txt
3.配置
-
创建一个
.env项目根目录中的文件。 -
将以下环境变量添加到
.env文件,根据需要调整值:# Database Configuration DATABASE_URL=postgresql://user:password@localhost/mcp_config # Server Ports PORT_A=3001 PORT_B=3002
4.运行系统
您可以使用一个命令运行整个系统:
python app/main.py
这将启动端口3000上的前端API、端口3001上的MCP服务器A和端口3002上的MCP Server B。
您可以通过导航访问web界面 http://localhost:3000 在您的网络浏览器中。
或者,您可以单独运行每台服务器:
# Terminal 1: Start the Frontend API
uvicorn app.frontend_api:app --port 3000 --reload
# Terminal 2: Start MCP Server A
uvicorn app.server_a:app --port 3001 --reload
# Terminal 3: Start MCP Server B
uvicorn app.server_b:app --port 3002 --reload
🔗 API终点
前端API(端口3000)
/:用于管理代理和工具的主要web界面。/servers:获取所有可用MCP服务器的列表。/agents:管理代理(创建、列出、更新、删除)。/manage-tools/{server_name}:用于管理特定服务器工具的web界面。
MCP服务器(端口3001和3002)
/health:检查服务器的运行状况。/tools:列出服务器上所有可用的工具。/check-tools:检查可用工具的简化端点。/tools/call:在服务器上执行工具。
示例:检查服务器A上的工具
curl http://localhost:3001/check-tools
示例:执行 get_stock_price 服务器A上的工具
curl -X POST http://localhost:3001/tools/call \
-H "Content-Type: application/json" \
-d
{
"name": "get_stock_price",
"arguments": {
"symbol": "AAPL"
}
}
🛠️ 发展
添加新工具
- 将工具的逻辑添加到相应的服务器(
app/server_a.py或app/server_b.py). - 使用web界面或通过调用
/tools终点。
数据库
数据库模式由中的SQLAlchemy模型定义 app/database.py系统启动时,数据库会使用一些默认数据进行初始化。
📝 许可证
该项目根据MIT许可证获得许可。