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
  • 專案
  • 專案
  • 專案
  • 專案