langchain-ai/langchain-mcp-adapters

LangChain 🔌 MCP

LangChain MCP Adapters

什么是它 – 一个小型 Python 包,用于将 Model Context Protocol (MCP) 与 LangChain 生态系统连接起来。它让你能够将任何 MCP 相容服务器的功能("工具")暴露为 LangChain/LangGraph 工具,因此大语言模型代理(agent)可以像调用原生 @tool 函数一样调用它们。

核心能力

  • 工具转换load_mcp_tools 将 MCP 描述的工具转换为 langchain.tools.Tool 对象。
  • 多服务器客户端MultiServerMCPClient 可以维持与多个 MCP 服务器的连接(通过 stdio, HTTP, SSE, 或新的 streamable-HTTP 传输协议),并汇总所有工具。
  • 标头支持 – 可以针对每个服务器提供自定义的 HTTP/SSE 标头(例如:身份验证令牌)。
  • 错误处理选项 – 选择 MCP 执行错误是作为 ToolMessage 返回给模型,还是作为异常(exception)抛出。
  • LangGraph 整合 – 与 LangGraph 的 StateGraph, ToolNode, 以及 LangGraph API server 配合使用,实现可调用远程 MCP 工具的有状态代理(agent)工作流。

典型工作流

  1. 运行一个 MCP 服务器 – 任何使用 FastMCP 注册工具的 Python 进程(例如:一个简单的数学服务或天气服务)。
  2. 创建客户端 – 使用服务器规格(stdio 的 command + args,或 HTTP 的 URL)实例化 MultiServerMCPClient
  3. 加载工具await client.get_tools() (或 load_mcp_tools(session)) 返回一个 LangChain 工具对象列表。
  4. 构建代理create_agent("openai:gpt-4.1", tools) 并调用它;模型现在可以调用远程函数。

安装方式

pip install langchain-mcp-adapters

示例(单个 stdio 服务器)

# math_server.py – defines add & multiply
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Math")
@mcp.tool()
def add(a: int, b: int) -> int: return a + b
@mcp.tool()
def multiply(a: int, b: int) -> int: return a * b
if __name__ == "__main__":
    mcp.run(transport="stdio")
# client side
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
from langchain_mcp_adapters.tools import load_mcp_tools
from langchain.agents import create_agent

params = StdioServerParameters(command="python", args=["/path/to/math_server.py"])
async with stdio_client(params) as (r, w):
    async with ClientSession(r, w) as sess:
        await sess.initialize()
        tools = await load_mcp_tools(sess)
        agent = create_agent("openai:gpt-4.1", tools)
        resp = await agent.ainvoke({"messages": "what's (3 + 5) x 12?"})
        print(resp)

多个服务器 – 同一个客户端可以同时指向一个基于 stdio 的数学服务器和一个基于 HTTP 的天气服务器,并自动合并它们的工具。

状态 – 该仓库已被归档;MCP 支持已移至 LangChain 主代码库中的 langchain.mcp。这些适配器仍然可以使用,但新的开发应以 langchain[mcp] 为目标。


总结 – 如果你有现有的 MCP 服务(或想尝试该协议)并且正在构建 LangChain 或 LangGraph 代理,langchain-mcp-adapters 为你提供了一个现成的桥梁,让这些远程工具可以作为一等公民级别的 LangChain 工具使用。

相关

  • Dispatch
  • 项目
  • 项目
  • 项目
  • 项目