langchain-ai/langchain-mcp-adapters
LangChain 🔌 MCP
LangChain MCP Adapters
概要 – Model Context Protocol (MCP) と LangChain エコシステムを橋渡しする小さな Python パッケージです。MCP 互換サーバーから提供される関数("ツール")を LangChain/LangGraph ツールとして公開できるため、大規模言語モデル(LLM)エージェントがネイティブな @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 サーバーと連携し、リモート MCP ツールを呼び出すステートフルなエージェント・ワークフローを実現します。
一般的なワークフロー
- 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
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト