使用说明

项目简介

本项目 'langgraph-mcp' 是一个基于 Model Context Protocol (MCP) 的服务器实现示例,旨在演示如何将外部工具和服务集成到 LangGraph Agent 中。它使用 'FastMCP' 框架简化了 MCP 服务器的开发,并提供了多种工具服务器的示例,例如网页搜索(Tavily)、YouTube 视频摘要、数学计算和天气查询。通过本项目,开发者可以学习如何构建 MCP 服务器,并将其与 LLM 应用(如 LangGraph Agent)连接,扩展 LLM 的能力。

主要功能点

  • 工具集成: 集成了多个实用工具,如 Tavily 网页搜索、YouTube 视频摘要、基础数学计算和模拟天气查询,展示了 MCP 服务器工具扩展能力。
  • 多协议支持: 示例中使用了 Stdio 和 SSE 两种传输协议,演示了 MCP 服务器的多协议支持能力。
  • 快速开发框架: 使用 'FastMCP' 框架简化 MCP 服务器的开发流程,降低开发门槛。
  • 客户端示例: 提供 'agent.py' 作为 MCP 客户端示例,展示如何连接和使用多个 MCP 服务器。
  • 易于扩展: 项目结构清晰,方便用户添加自定义工具服务器。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/prsdm/langgraph-mcp.git
    cd langgraph-mcp
  2. 安装依赖:

    pip install -r requirements.txt
  3. 配置环境变量:

    • 创建 '.env' 文件,并添加 API 密钥:
      TAVILY_API_KEY=<your-tavily-api-key>
      OPENAI_API_KEY=<your-openai-api-key>
      请替换 '<your-tavily-api-key>' 和 '<your-openai-api-key>' 为你自己的 API 密钥。 如果你不需要使用 Tavily 搜索工具,可以只保留 'OPENAI_API_KEY'。

服务器配置

MCP 客户端(例如 'agent.py')需要配置 MCP 服务器的连接信息。以下是 'agent.py' 中配置的服务器信息,JSON 格式如下:

{
    "tavily": {
        "command": "python",
        "args": ["servers/tavily.py"],
        "transport": "stdio"
    },
    "youtube_transcript": {
        "command": "python",
        "args": ["servers/yt_transcript.py"],
        "transport": "stdio"
    },
    "math": {
        "command": "python",
        "args": ["servers/math.py"],
        "transport": "stdio"
    },
    "weather": {
        "command": "python",
        "args": ["servers/weather.py"],
        "transport": "sse"
    }
}

配置参数说明:

  • server name (例如 "tavily", "youtube_transcript", "math", "weather"): 服务器名称,用于客户端标识和引用。
  • command: 启动服务器的命令,通常是 Python 解释器路径 ('python')。
  • args: 启动服务器命令的参数列表,这里指定了各个服务器脚本的路径 ('servers/tavily.py' 等)。
  • transport: 服务器使用的传输协议,示例中 "tavily"、"youtube_transcript" 和 "math" 使用 'stdio' 协议, "weather" 使用 'sse' 协议。

注意: 'weather' 服务器配置使用了 'sse' 协议,需要在运行 'servers/weather.py' 后,另起终端运行 'agent.py' 才能正常连接。 其他服务器 ('tavily', 'youtube_transcript', 'math') 使用 'stdio' 协议,客户端会自动启动和管理这些服务器进程。

基本使用方法

  1. 启动 MCP 服务器:

    • 对于使用 'stdio' 协议的服务器 (tavily, youtube_transcript, math),无需手动启动,客户端 'agent.py' 会自动启动。
    • 对于使用 'sse' 协议的服务器 (weather),需要手动启动。打开一个新的终端窗口,进入 'langgraph-mcp' 目录,运行以下命令启动 'weather' 服务器:
      python servers/weather.py
      注意: 'weather.py' 服务器默认使用 'sse' 协议,在代码中已指定 ('mcp.run(transport="sse")')。
  2. 运行 LangGraph Agent 客户端:

    • 打开一个新的终端窗口,进入 'langgraph-mcp' 目录,运行客户端 'agent.py':
      python agent.py
    • 客户端启动后,会提示 "Query:",输入你的查询内容,例如:
      • 'What is weather in newyork' (使用 weather 工具)
      • 'What is FastMCP?' (使用 tavily 搜索工具)
      • 'summarize this youtube video in 50 words, here is a video link: https://www.youtube.com/watch?v=2f3K43FHRKo' (使用 youtube_transcript 工具)
      • 'What is 123 + 456 * 789?' (使用 math 工具)
    • Agent 将根据你的查询,自动选择合适的工具并调用 MCP 服务器获取结果,最终输出响应。

代码示例: 'agent.py' 文件中包含了如何配置和使用 'MultiServerMCPClient' 连接多个 MCP 服务器,并使用 LangGraph Agent 调用工具的完整示例代码。 'servers' 目录下包含了各种工具服务器的实现代码,可以参考学习如何使用 'FastMCP' 框架构建 MCP 服务器。

信息

分类

AI与计算