产品LangChain Blog·原文 2026年9月3日本站收录 2026年9月7日

LangChain将MCP支持整合进主包,引入无状态协议与中断式人机交互

MCP官方Tier 1 SDK月下载量接近 5 亿次,ChatGPT用户的MCP工具调用量在 2026 年增长 98 倍。LangChain现已在主包中提供MCP支持,基于FastMCP客户端,支持无状态协议、缓存与elicitation(中断式提问)。

AI解读:LangChain把MCP支持从单独的适配器包移入主包langchain.mcp,底层改用FastMCP客户端来统一处理新旧两版协议的连接协商。这意味着开发者不再需要维护两套接入逻辑,旧版协议服务器仍可工作,只是走回退握手流程。新版协议的核心是无状态化——调用工具不再需要先建会话,服务器重启不会断掉连接,这直接解决了大规模部署时的粘性路由和共享会话存储问题。对开发者来说,最实际的收益是两件事:一是工具列表可以按服务器声明的TTL缓存,减少每次运行前的发现请求;二是elicitation机制让工具在执行中需要向调用方提问(比如确认删除或补充缺失参数)时,不再挂起连接,而是以LangGraph interrupt的形式暂停运行,等人审批后用答案恢复。这特别适合需要人工审批的破坏性操作或需要实时补充输入的场景。普通开发者如果只是本地跑个demo,暂时不需要重写现有代码;但如果你维护远程MCP服务器,无状态化的迁移会带来更简单的运维模型。需要留意的是langchain.mcp仍是beta API,可能变化,且目前只支持Python,TypeScript版本稍后发布。

LangChain宣布将Model Context Protocol(MCP)支持整合进主包,新命名空间langchain.mcp取代独立的langchain-mcp-adapters安装包。该支持基于FastMCP客户端构建,兼容 2026-07-28 发布的新版协议以及旧版协议服务器,并新增了通过中断实现的elicitation(人机交互)和客户端侧缓存功能。MCP官方Tier 1 SDK月下载量已接近 5 亿次,ChatGPT用户的MCP工具调用量在 2026 年增长了 98 倍,仅 8 月就翻了一番以上。

新版协议的核心变化是无状态化:旧版每次MCP调用都需先建立会话,服务器返回会话ID,后续请求携带该ID,导致客户端必须绑定到发出会话的特定服务器实例,远程服务器扩展时需依赖粘性路由和共享会话存储。新版协议移除了会话绑定,服务器重新部署不会中断现有连接。MCP团队称无状态核心是开发者最常要求的功能之一,旨在提升可靠性和可扩展性。

新支持的具体变化

LangChain的MCP支持现在位于langchain主包中,可通过pip install "langchain[mcp]" 安装(需要langchain[mcp]>=1.4.0,目前API处于beta阶段,可能变化)。旧包中的MultiServerMCPClient被合并为MCPAdapter类。工具作为普通LangChain工具暴露,可用于create_deep_agent、create_agent或自定义图。

客户端底层由FastMCP提供连接、认证、缓存和协议协商的抽象。FastMCP支持每个连接尝试新协议,并对未升级的服务器回退到旧握手流程。开发者可通过ClientGroup为每个服务器指定模式(legacy或auto)和认证方式(OAuth 2.1、bearer token等)。工具名称会加上服务器前缀,例如billing服务器的search工具显示为billing_search,避免冲突。

新版协议将elicitation(工具中途向调用方提问)定义为可重试的请求,客户端以LangGraph interrupt形式处理:运行暂停,审阅者回答后恢复。代码示例中,代理尝试预订餐桌时暂停并请求确认,用户通过Command(resume=...) 提供答案(如日期)后运行继续。此功能需要配置checkpointer以便暂停运行等待,并可用于审批破坏性工具。

客户端侧缓存由服务器声明工具列表的有效期(TTL),客户端在有效期内直接从缓存读取。使用Client(..., cache=True) 启用内存缓存,并通过cache_mode="use" 默认使用缓存。官方建议每个调用方使用独立的客户端实例,避免工具目录跨调用方混淆。其他缓存模式、TTL和共享存储的细节详见响应缓存文档。

LangChain的MCP支持目前仅提供Python版本,TypeScript支持预计稍后发布。

信息来源

LangChain Blog原始来源