多服务器系统

MCP多服务器系统是一个统一前端和两个专用后端服务器的架构,提供金融相关工具和通用实用工具。

  • by ohm41321
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ohm41321/MCPSERVER

使用说明

MCP多服务器系统

用于模型上下文协议(MCP)的多服务器系统,具有统一的前端和用于不同工具集的两个专用后端服务器。

🏗️ 建筑

该系统由三个主要部分组成:

  • 前端API(端口3000): 一个FastAPI应用程序,为管理代理和工具提供web界面,并充当后端MCP服务器的网关。
  • MCP服务器A(端口3001): 提供金融相关工具的FastAPI应用程序。
  • MCP服务器B(端口3002): 提供通用实用工具的FastAPI应用程序。
  • PostgreSQL数据库: 用于存储服务器、工具和代理信息的中央数据库。

🚀 入门指南

1.先决条件

  • Python 3.8+
  • PostgreSQL

2.安装

  1. 克隆存储库。
  2. 安装所需的Python包:
    pip install -r requirements.txt
    

3.配置

  1. 创建一个 .env 项目根目录中的文件。

  2. 将以下环境变量添加到 .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"
    }
  }

🛠️ 发展

添加新工具

  1. 将工具的逻辑添加到相应的服务器(app/server_a.py 或 app/server_b.py).
  2. 使用web界面或通过调用 /tools 终点。

数据库

数据库模式由中的SQLAlchemy模型定义 app/database.py系统启动时,数据库会使用一些默认数据进行初始化。

📝 许可证

该项目根据MIT许可证获得许可。