使用说明

项目简介

本项目演示了如何使用 MCP(模型上下文协议)构建模块化的 AI 系统。它将 LLM 智能体的编排(使用 LangGraph)与工具的实际执行(通过独立的 MCP 服务器)分离开来。这种架构使得工具可以独立部署和扩展,并支持实时通信,为构建可维护和可扩展的 AI 应用提供了基础。

主要功能点

  • 模块化工具服务器: 工具功能在独立的 MCP 服务器中实现,易于维护和扩展。
  • 实时通信: 使用 SSE 和 STDIO 等协议实现智能体与工具服务器之间的实时、异步通信。
  • LangGraph 集成: 无缝集成 LangGraph 智能体框架,方便构建复杂的智能体工作流程。
  • 多服务器支持: 客户端可以同时连接和管理多个 MCP 服务器,扩展系统能力。
  • 灵活的传输协议: 支持 SSE 和 STDIO 等多种传输协议,适应不同的部署环境。

安装步骤

  1. 克隆仓库
    git clone https://github.com/junfanz1/MCP-MultiServer-Interoperable-Agent2Agent-LangGraph-AI-System.git
    cd MCP-MultiServer-Interoperable-Agent2Agent-LangGraph-AI-System
  2. 创建并激活虚拟环境 (推荐)
    python -m venv venv
    source venv/bin/activate  # 或 venv\Scripts\activate for Windows
  3. 安装依赖 (虽然仓库中未明确列出依赖,但根据代码推测可能需要安装 'langchain', 'langgraph', 'langchain_openai', 'mcp' 等库。请根据实际运行情况安装。)
    pip install langchain langgraph langchain_openai mcp python-dotenv
  4. 配置 OpenAI API 密钥
    • 创建 '.env' 文件,并在其中设置 'OPENAI_API_KEY' 环境变量。
      OPENAI_API_KEY=YOUR_API_KEY

服务器配置

MCP 客户端需要配置连接的 MCP 服务器信息。配置信息为 JSON 格式,在客户端代码中定义。以下是两种客户端 ('langchain_client.py', 'main.py') 连接 MCP 服务器的配置示例,您需要根据实际情况修改服务器启动命令和参数。

1. 'langchain_client.py' (MultiServerMCPClient 配置示例)

async with MultiServerMCPClient({
    "math": {"command": "python", "args": ["/path/to/MCP-MultiServer-Interoperable-Agent2Agent-LangGraph-AI-System/servers/math_server.py"]},  // 数学服务器配置:使用 python 命令启动 math_server.py,请替换为实际路径
    "weather": {"url": "http://localhost:8000/sse", "transport": "sse"}   // 天气服务器配置:SSE 传输,URL 为 http://localhost:8000/sse
}) as client:
    # ... 客户端代码 ...

2. 'main.py' (StdioServerParameters 配置示例)

stdio_server_params = StdioServerParameters(
    command="python",  // 使用 python 命令启动服务器
    args=["/path/to/MCP-MultiServer-Interoperable-Agent2Agent-LangGraph-AI-System/servers/math_server.py"], // 服务器脚本路径,请替换为实际路径
)

配置说明:

  • 'server name': 服务器名称,例如 "math", "weather",用于在客户端代码中引用。
  • 'command': 启动服务器的命令,例如 "python", "node", "docker"。
  • 'args': 命令参数列表,例如服务器脚本路径,端口号等。请根据实际服务器脚本的路径进行修改。
  • 'url': 当 'transport' 为 "sse" 或 "websocket" 时,服务器的 URL 地址。
  • 'transport': 传输协议,例如 "sse" (SSE), "stdio" (标准输入输出), "websocket" (WebSocket)。

注意: 请将 '/path/to/MCP-MultiServer-Interoperable-Agent2Agent-LangGraph-AI-System' 替换为您实际的仓库克隆路径。

基本使用方法

  1. 启动 MCP 服务器

    • 根据您要使用的服务器类型,分别运行 'servers' 目录下的 'math_server.py' 和 'weather_server.py'。
      • 例如,在终端中分别执行:
        python /path/to/MCP-MultiServer-Interoperable-Agent2Agent-LangGraph-AI-System/servers/math_server.py
        python /path/to/MCP-MultiServer-Interoperable-Agent2Agent-LangGraph-AI-System/servers/weather_server.py
      • 对于 'weather_server.py' (SSE 服务器),默认监听 'http://localhost:8000/sse'。
      • 对于 'math_server.py' (STDIO 服务器),将在标准输入输出中运行。
  2. 运行 MCP 客户端

    • 运行 'client' 目录下的客户端脚本 'langchain_client.py' 或 'main.py'。
      • 例如,在终端中执行:
        python /path/to/MCP-MultiServer-Interoperable-Agent2Agent-LangGraph-AI-System/client/langchain_client.py
      • 客户端将连接到配置的 MCP 服务器,并使用 LangGraph 智能体调用服务器提供的工具。
      • 您将在终端中看到智能体的输出结果。

示例说明:

  • 'langchain_client.py' 演示了如何使用 'MultiServerMCPClient' 同时连接和使用 'math_server.py' (STDIO) 和 'weather_server.py' (SSE) 两个 MCP 服务器提供的工具。
  • 'main.py' 演示了如何使用 'StdioServerParameters' 和 'ClientSession' 连接和使用 'math_server.py' (STDIO) 服务器提供的工具。

请根据您的需求选择合适的客户端脚本和服务器配置进行测试和使用。

信息

分类

AI与计算