使用说明

项目简介

本项目是一个使用模型上下文协议(MCP)构建的模块化多代理系统的原型。它包含一个网关代理,能够根据用户查询的关键词,将其路由到不同的后端服务器,例如私人教练服务器和工作助理服务器。这个项目展示了不同MCP服务器之间的互操作性。

主要功能点

  • MCP网关代理:根据关键词将用户查询路由到合适的后端服务器。
  • 私人教练服务器:使用语言模型(Anthropic Claude)提供健康和健身建议。
  • 工作助理服务器:使用语言模型(Anthropic Claude)提供生产力和工作组织方面的建议。
  • 工具路由:演示了网关代理中的 'route_task' 工具,用于任务分发。
  • 基于HTTP的MCP通信:服务器之间通过HTTP和JSON-RPC进行MCP协议通信。

安装步骤

  1. 克隆代码仓库:
    git clone https://github.com/dazzaji/mcp-agent-router
  2. 进入代码仓库目录:
    cd mcp-agent-router
  3. 创建并激活虚拟环境(推荐使用Python 3.11):
    /Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11 -m venv ./venv
    source ./venv/bin/activate
  4. 安装依赖:
    uv pip install flask anthropic requests python-dotenv mcp
  5. 在 'server-a' 和 'server-b' 目录下创建 '.env' 文件,并设置 Anthropic API 密钥。在两个 '.env' 文件中添加内容:'ANTHROPIC_API_KEY=YOUR_ANTHROPIC_API_KEY',替换 'YOUR_ANTHROPIC_API_KEY' 为你的实际密钥。

服务器配置

以下是 MCP 客户端(例如 Claude Desktop)需要配置的服务器信息,用于连接到本项目的 MCP 服务器。

{
  "mcpServers": {
    "gateway-agent": {
      "url": "http://localhost:8000/mcp/v1"
    },
    "server-a": {
      "url": "http://localhost:5010/mcp/v1"
    },
    "server-b": {
      "url": "http://localhost:5001/mcp/v1"
    }
  }
}
  • 'gateway-agent': 网关代理服务器,作为主要入口点,负责路由请求。'url' 指向网关代理服务器地址。
  • 'server-a': 私人教练服务器。'url' 指向私人教练服务器地址。
  • 'server-b': 工作助理服务器。'url' 指向工作助理服务器地址。

注意:需要将以上配置添加到 Claude Desktop 的 'claude_desktop_config.json' 配置文件中,以便 Claude Desktop 能够连接到网关代理以及后端服务器。

基本使用方法

  1. 打开四个终端窗口。
  2. 在终端 1 中,启动 Server A (私人教练服务器):
    cd server-a
    source ../venv/bin/activate
    python server.py
  3. 在终端 2 中,启动 Server B (工作助理服务器):
    cd ../server-b
    source ../venv/bin/activate
    python server.py
  4. 在终端 3 中,启动网关代理服务器:
    cd ../gateway-agent
    source ../venv/bin/activate
    uv run service.py
  5. 在终端 4 中,可以选择启动 MCP Inspector 进行测试和调试 (可选):
    cd ../gateway-agent
    source ../venv/bin/activate
    npx @modelcontextprotocol/inspector http://localhost:8000/mcp/v1
  6. 配置 Claude Desktop 的 'claude_desktop_config.json' 文件,如 "服务器配置" 章节所述。重启 Claude Desktop。
  7. 在 Claude Desktop 中,提出与健康相关的问题 (例如 "我应该如何减肥?") 或工作效率相关的问题 (例如 "我这周的截止日期是什么?"),测试请求路由功能。

信息

分类

AI与计算