使用说明
项目简介
本项目 '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 服务器。
- 易于扩展: 项目结构清晰,方便用户添加自定义工具服务器。
安装步骤
-
克隆仓库:
git clone https://github.com/prsdm/langgraph-mcp.git cd langgraph-mcp -
安装依赖:
pip install -r requirements.txt -
配置环境变量:
- 创建 '.env' 文件,并添加 API 密钥:
请替换 '<your-tavily-api-key>' 和 '<your-openai-api-key>' 为你自己的 API 密钥。 如果你不需要使用 Tavily 搜索工具,可以只保留 'OPENAI_API_KEY'。TAVILY_API_KEY=<your-tavily-api-key> OPENAI_API_KEY=<your-openai-api-key>
- 创建 '.env' 文件,并添加 API 密钥:
服务器配置
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' 协议,客户端会自动启动和管理这些服务器进程。
基本使用方法
-
启动 MCP 服务器:
- 对于使用 'stdio' 协议的服务器 (tavily, youtube_transcript, math),无需手动启动,客户端 'agent.py' 会自动启动。
- 对于使用 'sse' 协议的服务器 (weather),需要手动启动。打开一个新的终端窗口,进入 'langgraph-mcp' 目录,运行以下命令启动 'weather' 服务器:
注意: 'weather.py' 服务器默认使用 'sse' 协议,在代码中已指定 ('mcp.run(transport="sse")')。python servers/weather.py
-
运行 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 服务器获取结果,最终输出响应。
- 打开一个新的终端窗口,进入 'langgraph-mcp' 目录,运行客户端 'agent.py':
代码示例: 'agent.py' 文件中包含了如何配置和使用 'MultiServerMCPClient' 连接多个 MCP 服务器,并使用 LangGraph Agent 调用工具的完整示例代码。 'servers' 目录下包含了各种工具服务器的实现代码,可以参考学习如何使用 'FastMCP' 框架构建 MCP 服务器。
信息
分类
AI与计算