langgraph-mcp-agents
基于 LangGraph + MCP 协议构建的 AI Agent,支持动态接入外部工具和实时流式对
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于 LangGraph + MCP 协议构建的 AI Agent,支持动态接入外部工具和实时流式对
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
在大型语言模型(LLM)刚刚兴起时,AI 能做的事很有限——它只能基于训练数据回答问题,无法实时查询天气、搜索文档、操作数据库。你问它"今天福州天气怎么样",它只能礼貌地说"抱歉,我无法访问实时数据"。这几乎是所有早期 AI 助手的共同痛点:AI 与真实世界之间隔着一堵墙。
2024 年底,Anthropic 发布的 Model Context Protocol(MCP) 协议改变了这一局面。MCP 的设计理念很优雅:让 AI Agent 通过一个标准化的中间层协议,像拼积木一样自由接入各种外部工具和数据源——不再需要为每个工具单独写适配代码。LangChain 团队随后推出了 langchain-mcp-adapters,将 MCP 协议无缝接入 LangGraph 生态。
本文要分析的项目 LangGraph-MCP-Agents 就是这个背景下的产物:它基于 LangGraph 构建 ReAct Agent,通过 MCP 协议连接各类外部工具,并以 Streamlit Web UI 的形式呈现给用户。GitHub 主页显示项目由 teddylee777 维护(GitHub 链接指向 teddylee777/langgraph-mcp-agents,与 braincrew-lab 为同一仓库),2024 年底发布 v0.1.0,目前已有 706 颗星。
从代码结构来看,LangGraph-MCP-Agents 采用了清晰的三层架构:
第一层:MCP Server(工具层)
项目内置了四个示例 MCP Server,均基于 mcp[cli] 的 FastMCP 框架实现:
mcp_server_local.py:天气查询工具(模拟数据)mcp_server_time.py:获取当前时间mcp_server_rag.py:基于 FAISS 的本地文档检索(RAG)工具mcp_server_remote.py:远程 MCP Server 连接器每个 Server 通过 @mcp.tool() 装饰器暴露函数,遵循标准 MCP 工具定义规范。
第二层:LangGraph Agent(推理层)
核心逻辑在 app.py 中:使用 langgraph.prebuilt.create_react_agent 创建 ReAct(Reasoning + Acting)Agent,底层由 langchain-anthropic(Claude)或 langchain-openai(GPT-4o)驱动。
Agent 的状态管理由 langgraph.checkpoint.memory.MemorySaver 实现,提供对话历史的持久化能力。utils.py 中的 astream_graph 函数负责流式输出——将 Agent 思考过程中的每个 token 实时推送至前端。
第三层:Streamlit UI(交互层)
app.py 使用 Streamlit 构建 Web 界面,核心功能包括:
USE_LOGIN 环境变量开启配置通过 config.json 文件持久化,启动时由 load_config_from_json() 加载。
LangGraph-MCP-Agents 的部署体验相当友好。项目根目录的 dockers/ 文件夹提供了完整的容器化方案:
# docker-compose.yaml 核心配置
services:
app:
image: teddylee777/langgraph-mcp-agents:0.2.1
ports:
- "8585:8585"
volumes:
- ./.env:/app/.env:ro
- ./data:/app/data:rw
- ./config.json:/app/config.json
用户只需三步即可完成部署:
dockers/ 目录,cp .env.example .env 创建环境变量文件ANTHROPIC_API_KEY 或 OPENAI_API_KEYdocker compose up 启动服务,访问 http://localhost:8585健康检查通过 /_stcore/health 端点实现,确保容器就绪后才对外服务。数据目录 ./data 通过卷挂载持久化,配置文件 config.json 同样支持热更新。
硬件要求方面,由于使用 faiss-cpu 而非 GPU 版本的 FAISS,项目对显卡无要求。实测 4GB 内存 + 2GB 磁盘即可运行,适合在普通开发机或低配服务器上部署。
作为一个 v0.1.0 的早期项目,LangGraph-MCP-Agents 的代码质量处于示例级别向生产级过渡的阶段。
值得肯定的地方:
pyproject.toml + uv.lock 管理依赖,明确要求 Python ≥ 3.12,这是 2024 年后的主流实践nest_asyncio.apply() 解决 Streamlit 与 asyncio 的事件循环冲突,astream_graph 的流式输出实现干净利落需要改进的地方:
mcp_server_rag.py 使用 faiss-cpu + pymupdf 实现文档解析,但缺乏分块策略、向量模型选择、检索策略的配置化支持.env 文件管理密钥是常见做法,但项目未提供密钥轮换、环境隔离等安全建议LangGraph-MCP-Agents 的价值不仅在于项目本身,更在于它作为 MCP 协议实际落地的活标本。
MCP 协议的核心优势在于"解耦":工具开发者只需实现 MCP Server,Agent 开发者只需接入 MCP Client,两端可以独立演进。Smithery 平台的出现更是加速了这一生态——用户可以从平台上直接复制 JSON 配置,一键将数千个社区开发的 MCP 工具接入自己的 Agent。
从这个角度看,LangGraph-MCP-Agents 展示了 LangGraph 生态如何承接 MCP 协议的能力下沉。随着 MCP 工具生态的壮大,这类项目的价值会持续增长——它们是 Agent 运行时与工具生态之间的"桥梁层"。
LangGraph-MCP-Agents 是一个架构清晰、部署友好、面向 MCP 生态的 AI Agent 入门级项目。它将 LangGraph 的 ReAct Agent、MCP 协议的标准化工具调用、Streamlit 的快速 UI 构建三者串联起来,提供了一个可上手、可扩展的 Agent 开发模板。
适合人群:对 AI Agent 感兴趣、想快速体验 MCP 协议威力的开发者
不适合:需要生产级测试覆盖、复杂 RAG 流水线、企业级安全管控的团队
一句话评价:MCP 生态的一个优秀入口项目,代码可改进,但思路值得学习。