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)工作流。
典型工作流
- 執行 MCP 伺服器 – 任何使用
FastMCP註冊工具的 Python 程序(例如:簡單的數學服務或天氣服務)。 - 建立用戶端 – 使用伺服器規格(stdio 的 command + args,或 HTTP 的 URL)實例化
MultiServerMCPClient。 - 載入工具 –
await client.get_tools()(或load_mcp_tools(session)) 會回傳一個 LangChain 工具物件列表。 - 建立代理 –
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
- 專案
- 專案
- 專案
- 專案