LangChain 是 LLM 应用开发 / 编排框架,MCP 是 “模型 ↔ 外部工具 / 数据” 的标准化通信协议;LangChain 用官方适配器把 MCP 当作统一 “工具总线” 来集成
LangChain 是 LLM 应用开发 / 编排框架,MCP 是 “模型 ↔ 外部工具 / 数据” 的标准化通信协议;LangChain 用官方适配器把 MCP 当作统一 “工具总线” 来集成,二者互补、不是竞争关系LangChain。
先给结论:LangChain 是 LLM 应用开发 / 编排框架,MCP 是“模型 ↔ 外部工具 / 数据” 的标准化通信协议;LangChain 用官方适配器把 MCP 当作统一 “工具总线” 来集成,二者互补、不是竞争关系LangChain。
下面从定位、架构、集成方式、区别与场景讲清楚。
一、LangChain 与 MCP 各自是什么
LangChain(框架)
- 定位:LLM 应用开发与编排框架
- 核心:
Runnable、Tool、Memory、Prompt、Chain、LangGraph - 作用:把 “模型 + 提示词 + 记忆 + 检索 + 工具” 编排成对话、RAG、Agent 等完整应用
- 一句话:LangChain 负责“怎么组织流程”
MCP(协议,Model Context Protocol)
- 发起:Anthropic(2024 年底开源)
- 定位:LLM 与外部工具 / 数据源的统一通信标准,号称 AI 的 “USB‑C”
- 架构:Client ↔ Server,基于 JSON‑RPC 2.0,有状态双向会话Model Context Protocol (MCP)
- 三大原语:
- Tools:模型可调用的函数(查库、调用 API)
- Resources:上下文数据(文件、日志、知识库)
- Prompts:可复用提示模板
- 一句话:MCP负责 “工具 / 上下文怎么被调用”
二、LangChain 与 MCP 的关系:框架 + 标准总线
1. 总体关系:集成互补、非竞争
- LangChain 官方提供
langchain-mcp-adapters,将 MCP 作为一等公民支持LangChain - MCP 对 LangChain 是统一外部工具接入层,解决 “模型 × 工具”N×M 适配爆炸问题
- 类比:
- LangChain = 电脑(CPU / 内存 / 软件 / 编排)
- MCP = USB‑C(统一连接硬盘、显示器、外设)
- MCP Server = 各类外设(数据库、搜索、地图)
2. 架构位置(数据流)
plaintext
用户/前端 ↓ LangServe / LangGraph(编排、状态、分支、循环) ↓ LangChain 核心(LLM、Prompt、Memory、RAG、Tool) ↓ langchain-mcp-adapters(适配层) ↓ MCP Client ↔ MCP Server(JSON‑RPC、有状态会话) ↓ 外部工具/数据源(DB、API、文件、搜索、第三方服务)3. 集成核心:MCP 工具 → LangChain 原生 Tool
- 适配器把 MCP Server 暴露的工具自动转为 LangChain 的
BaseToolLangChain - 在 LangChain Agent 里用 MCP 工具,和用
@tool写的本地工具完全一样LangChain - 支持同时连接多个 MCP Server(数学、天气、地图、数据库)
4. 集成代码示例(Python)
python
运行
from langchain_mcp_adapters.client import MultiServerMCPClient from langchain_openai import ChatOpenAI from langchain.agents import create_tool_calling_agent # 1. 配置多个 MCP Server(本地+远程) mcp_config = { "math": { "transport": "stdio", "command": "python", "args": ["math_server.py"] }, "amap": { "transport": "stdio", "command": "npx", "args": ["-y", "@amap/amap-maps-mcp-server"], "env": {"AMAP_KEY": "xxx"} } } # 2. 连接并加载所有 MCP 工具 async with MultiServerMCPClient(mcp_config) as client: tools = await client.get_tools() # 转为 LangChain 工具列表 # 3. 正常创建 Agent,直接使用 MCP 工具 llm = ChatOpenAI(model="gpt-4o") agent = create_tool_calling_agent(llm, tools, prompt=...) res = agent.invoke({"input": "计算 (3+5)*12 并查北京天气"})三、LangChain vs MCP:关键区别
表格
| 维度 | LangChain | MCP |
|---|---|---|
| 本质 | 应用开发框架 / 编排引擎 | 通信协议 / 接口标准 |
| 核心能力 | 流程编排、记忆、RAG、多轮对话、LangGraph 状态流 | 工具 / 资源 / 提示的标准化接入、安全边界、双向会话 |
| 解决问题 | 如何把模型与能力串成复杂应用 | 模型如何统一、安全地调用外部世界 |
| 依赖关系 | 可独立运行,也可集成 MCP | 不依赖 LangChain,可被任何 LLM 框架集成 |
| 生态成熟度 | 成熟(500 + 工具、大量案例) | 较新(2024 年底推出,生态快速扩张) |
四、什么时候用谁?怎么组合?
1. 只用 LangChain
- 简单对话、RAG、少量内部工具
- 不想额外部署 MCP Server,快速落地
2. 引入 MCP
- 需对接多个异构外部系统(数据库、API、云服务)
- 希望工具可跨框架复用(LangChain/LlamaIndex/ 原生 Claude 都能用)
- 需要安全隔离:工具在独立 Server 运行,不污染主应用
- 构建企业级、可插拔的工具生态
3. 最佳组合(生产常用)
- LangChain + LangGraph + MCP + LangSmith
- LangGraph:处理复杂状态、分支、多轮工具调用
- MCP:统一对接所有外部工具 / 数据
- LangSmith:全链路追踪、调试、评估
五、一句话总结
LangChain 是 “大脑 + 骨架”,负责思考与流程;MCP 是 “统一神经接口”,负责安全、标准地连接外部世界;两者叠加,才能高效构建企业级、可扩展、可观测的 LLM 应用。
