LangChain+MCP实战:大模型工具接入标准化完全解析

从大模型到AI应用:为什么需要LangChain
大语言模型(LLM)之所以强大,核心在于它的推理能力。我们可以与它对话,它能理解意图并给出有逻辑的回复。这种推理能力来源于其在海量文本数据上的预训练过程——通过自注意力机制(Self-Attention)和Transformer架构,模型学会了语言中的深层模式、逻辑关系和世界知识。但大模型有一个天然的局限:它的知识只停留在训练时的那个时间点,无法获取企业内部的实时业务数据。这种"知识截断"问题是所有预训练模型的固有局限,例如GPT-4的知识截止于2023年底,无法回答此后发生的任何事情。这也正是RAG(检索增强生成)和工具调用等技术方案诞生的根本驱动力。
要解决这个问题,思路很直接——给大模型绑定工具(Tools)。工具调用的核心机制是:大模型在生成回复时,不直接输出最终答案,而是输出一个结构化的"函数调用请求"(通常是JSON格式),指明要调用哪个工具、传入什么参数。外部系统接收到这个请求后执行实际操作(如查询数据库、调用API),将结果返回给大模型,大模型再基于返回结果生成最终的自然语言回复。这样大模型不仅能理解你的问题,还能调用工具去获取企业内部的业务数据,再依靠推理能力整理出答案。
但现实中,如果每个开发者都从零开始手写大模型调用、工具管理、对话历史管理,精力就全消耗在底层搭建上,无法聚焦于真正的业务价值。这正是 LangChain 存在的意义——它是一套专门用于开发大模型应用(AI应用)的框架,封装了从模型调用到工具管理的完整链路。LangChain由Harrison Chase于2022年创建,如今已发展为完整的AI应用开发生态,其核心组件包括LangChain Core(基础抽象层)、LangChain Community(社区集成)、LangGraph(有状态多步骤应用构建)、LangSmith(可观测性和调试平台)以及LangServe(部署工具)。它的设计哲学是"组合优于继承",通过将模型调用、提示词管理、记忆系统、工具集成等能力抽象为可组合的模块,让开发者能像搭积木一样快速构建复杂的AI应用。
一个实用建议:不建议开发者自己从头造轮子去实现 LangChain 或 Claude SDK 的功能。站在巨人的肩膀上应用成熟框架,把精力留给业务逻辑,才是更高效的选择。
从大模型对话到Agent智能体
单纯的大模型对话只是「推理 + 回复」,缺乏上下文管理和执行能力。而 Agent(智能体) 则在大模型之上做了更高层的封装:
- 自动管理历史对话记录:不需要开发者手动维护上下文;
- 真正执行工具调用:大模型本身只能「说」要调用某个工具,而Agent能真正去执行并拿回结果;
- 多轮推理决策:Agent会根据工具返回的结果,判断是否需要继续调用其他工具。
Agent的核心运行机制通常被称为ReAct(Reasoning + Acting)循环:首先,Agent接收用户输入并进行推理(Reasoning),判断是否需要调用工具;如果需要,则执行动作(Acting),调用相应工具;然后观察(Observation)工具返回的结果;最后再次推理,决定是给出最终答案还是继续调用其他工具。这个循环可以迭代多次,使Agent能够处理需要多步骤才能完成的复杂任务。例如,回答"今天北京的天气适合穿什么"这个问题,Agent可能先调用天气API获取温度,再基于温度推理出穿衣建议。
在 LangChain 生态中,Agent的底层实现依赖于 LangGraph——一个更靠近底层、更灵活的API层。LangGraph的核心思想是将Agent的执行流程建模为一个有向图(Directed Graph),其中节点(Node)代表计算步骤(如调用LLM、执行工具、处理数据),边(Edge)代表步骤之间的转移条件。与传统的链式调用不同,LangGraph支持循环、条件分支和并行执行,能够表达更复杂的业务逻辑。它还内置了状态持久化机制,支持检查点(Checkpoint)和人机交互中断,使得长时间运行的Agent任务变得可控可追溯。Agent是在LangGraph之上做的上层封装,越往上封装越完善、使用越方便;越往下越灵活、可控性越强。

MCP协议究竟解决了什么问题
理解了LangChain是「构建AI应用的框架」之后,我们来看MCP要解决的核心痛点。
设想一个真实场景:你开发了一个Agent,它底层可以接入DeepSeek、OpenAI、Claude等不同厂商的大模型。在没有统一标准之前,每个厂商的大模型调用工具都有自己的一套API写法。
假设你要调用4个工具,A模型有A的写法,B模型有B的写法,C模型又是另一套。这就带来一个致命问题:一旦底层更换大模型,调用工具的整套代码就要全部重写。

MCP:大模型世界的「USB接口」
MCP(Model Context Protocol,模型上下文协议) 正是为解决这一痛点而生。它是一套标准协议,明确规定了三件事:
- 工具应该如何被发现;
- 工具应该如何被调用;
- 工具返回的结果应该如何被处理。
MCP采用JSON-RPC 2.0作为消息格式,定义了完整的能力协商、工具发现、调用执行的生命周期管理。只要按照MCP协议开发工具,那么无论底层是哪家厂商的大模型,都能兼容适配。当你更换大模型时,调用工具的代码完全不需要重写。
用一个形象的类比来理解:MCP就像电脑的 USB接口。工具就像U盘、移动硬盘等外设,只要兼容USB协议,插上电脑就能识别。同理,只要工具符合MCP协议,任何支持MCP的大模型都能直接调用。
MCP的来历与发展现状
MCP由 Anthropic(Claude背后的公司)于2024年11月提出。Anthropic由前OpenAI研究副总裁Dario Amodei和姐姐Daniela Amodei于2021年创立,以AI安全研究著称,其旗舰产品Claude系列模型在推理和代码能力方面表现突出。Anthropic提出MCP协议的战略意图,是希望建立AI工具调用领域的行业标准——类似于HTTP之于Web、SQL之于数据库。这一协议的开放性设计使得它迅速获得了行业认可,形成了类似USB标准在硬件领域的网络效应。发展至今,几乎所有主流AI供应商——DeepSeek、通义千问、微软、亚马逊等——都已支持MCP协议。
一个常被混淆的问题:MCP和Function Calling是什么关系? Function Calling最早由OpenAI在2023年6月随GPT-3.5/GPT-4 API一同推出,其核心是让开发者在API请求中声明可用函数的JSON Schema,模型在需要时输出函数调用的结构化指令。然而Function Calling存在几个局限:它是OpenAI私有的API设计,不同厂商的实现方式各异;它只定义了"模型侧"的调用格式,没有规范工具的发布、发现和管理;它缺乏会话级的上下文管理能力。
简单来说,Function Calling是OpenAI提出的概念,MCP是Anthropic提出的概念,两者本质上做的是同一件事——让大模型能够调用外部工具。只不过MCP从更高层次解决了问题,它不仅规范了调用格式,还定义了完整的Client-Server架构、能力协商机制、资源管理和采样请求等高级特性,形成了真正的端到端协议标准。Function Calling没有MCP发展得好,如今OpenAI也已完全兼容MCP。因此在当下的技术选型中,我们基本只谈MCP,而很少再单独提Function Calling。
LangChain与MCP整合的核心价值
有人可能会问:LangChain本身就提供了定义工具的方式(比如用 @tool 装饰器直接定义 get_stock_price、search_news 等函数),为什么还要用MCP来开发工具?
答案在于复用与解耦。LangChain内部定义的工具存在两个明显局限:
- 只能给当前代码里的Agent使用:如果在另一个代码文件中新建Agent,想用同样的工具就得重新定义一遍,无法真正实现工具复用;
- 只能给LangChain框架识别:这些工具无法被Claude SDK、OpenAI SDK,或Cursor、Trae等其他Agent框架使用。

而使用MCP协议开发工具则带来两大核心优势:
- 工具复用:多个Agent、多份代码可以共享同一套MCP管理的工具,避免重复开发;
- 跨框架解耦:只要符合MCP协议,工具可以被任何Agent框架调用,无论是Claude SDK、OpenAI SDK还是其他开发框架。
需要区分的是,LangChain这类框架主要用于企业内部构建自己的AI应用;而Claude Code、Codex、Cursor这类工具更偏向于个人编程助手场景,两者的定位有所不同。

MCP核心架构:Server与Client详解
要真正上手MCP开发,必须理解它的两大核心角色及通信机制。
MCP Server与MCP Client
- MCP Server(服务端):负责构建并暴露一系列工具的那一端,可以理解为工具的提供方;
- MCP Client(客户端):即 Agent构建的那一端。Agent要使用工具,就需要连接MCP Server,此时它扮演的就是Client角色。
两种通信机制:Stdio与HTTP
MCP Server与Client之间的通信分为两种方式,适用于不同的部署场景:
1. Stdio(标准输入输出)方式
当Server和Client运行在同一台机器/同一进程内时,可以使用Stdio方式通信。Stdio(Standard Input/Output)是操作系统级别的进程间通信方式,在MCP的Stdio模式下,Client以子进程的方式启动Server,两者通过stdin(标准输入)和stdout(标准输出)管道传输JSON-RPC消息。更准确地说,Stdio模式下Client与Server是在同一个进程里同时启动的,通过标准输入输出进行数据交换。这种方式的优势在于零网络配置、低延迟、无需端口管理,非常适合本地IDE插件(如VS Code扩展)、CLI工具和单机开发环境。但其局限也很明显:无法跨机器通信,Server的生命周期与Client绑定,不支持多Client共享同一Server实例。
2. Streamable HTTP方式
当Server在远端独立部署、Client在另一个进程或节点运行时,Client需要通过HTTP通信方式(Streamable HTTP)来调用远端Server发布的工具。Streamable HTTP是MCP协议在2025年初引入的远程通信方式(取代了早期的SSE方案),它基于标准HTTP协议,Server作为独立的Web服务运行,Client通过HTTP POST请求发送JSON-RPC消息,Server可以通过Server-Sent Events(SSE)流式返回响应。这种方式支持多Client并发连接、跨网络部署、负载均衡和身份认证,是生产环境的首选方案。企业可以将MCP Server部署在内网或云端,多个Agent Client通过网络连接共享工具服务,实现了真正的微服务化工具管理。
理解这两种通信机制的区别和适用场景,是后续动手实践MCP项目的关键基础。
总结
LangChain + MCP这套技术体系,本质上回答了一个核心问题:如何让大模型标准化、可复用地接入外部工具。
- LangChain 解决了「如何高效构建AI应用与Agent智能体」的问题;
- MCP协议 解决了「如何让工具调用摆脱厂商绑定、实现跨模型跨框架复用」的问题;
- 两者的整合(更准确说是 Agent + MCP 或 LangGraph + MCP 的整合),让企业级AI应用既能享受框架带来的开发效率,又能拥有工具生态的开放性与灵活性。
对于想进入大模型应用开发领域的开发者而言,理清LangChain、LangGraph、Agent、MCP、Stdio/HTTP这几个核心概念之间的关系,是迈向实战的第一步。
相关推荐

李飞飞谈AI:视觉智能、创造力边界与人类主体性
斯坦福教授李飞飞在Huberman Lab播客深度解析AI与视觉科学的关系,探讨ImageNet如何引爆现代AI,阐述AI的能力边界、医疗应用前景,以及为何人类主体性是AI发展的核心命题。

DeepSeek Harness实测:插件化Agent框架的核心优势解析
深入实测DeepSeek Harness开源Agent框架,解析其插件化架构设计、编码能力、安装部署方式及与Claude Code的对比,帮助开发者了解这款可扩展Agent开发底座的真正价值。

10美元搭建50万域名搜索引擎:独立开发者的周末项目启示
一位独立开发者仅用一个周末和10美元成本,搭建了覆盖50万域名的垂直搜索引擎。本文深入分析低成本搜索引擎背后的技术栈、垂直搜索的差异化机会,以及独立开发者快速验证想法的方法论。