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 ツールを呼び出すステートフルなエージェント・ワークフローを実現します。

一般的なワークフロー

  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
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト