モデルコンテキスト・プロトコル (MCP) は、アプリケーションが言語モデルにツールとコンテキストを提供する方法を標準化するオープン・プロトコルです。LangGraph エージェントは langchain-mcp-adapters ライブラリを通して MCP サーバ上で定義されたツールを使用できます。
LangGraph : Prebuilt エージェント : MCP 統合
作成 : クラスキャット・セールスインフォメーション
作成日時 : 06/12/2025
* 本記事は langchain-ai.github.io の以下のページを独自に翻訳した上で、補足説明を加えてまとめ直しています :
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
◆ お問合せ : 下記までお願いします。
- クラスキャット セールス・インフォメーション
 - sales-info@classcat.com
 - ClassCatJP
 
LangGraph : Get started : Prebuilt エージェント : MCP 統合
モデルコンテキスト・プロトコル (MCP) は、アプリケーションが言語モデルにツールとコンテキストを提供する方法を標準化するオープン・プロトコルです。LangGraph エージェントは、langchain-mcp-adapters ライブラリを通して MCP サーバ上で定義されたツールを使用できます。

LangGraph で MCP ツールを使用するために langchain-mcp-adapters ライブラリをインストールします :
pip install langchain-mcp-adapters
MCP ツールの使用
langchain-mcp-adapters パッケージはエージェントが一つ以上の MCP サーバで定義されたツールを使用することを可能にします。
Agent using tools defined on MCP servers
from langchain_mcp_adapters.client import MultiServerMCPClient
from langgraph.prebuilt import create_react_agent
client = MultiServerMCPClient(
    {
        "math": {
            "command": "python",
            # Replace with absolute path to your math_server.py file
            "args": ["/path/to/math_server.py"],
            "transport": "stdio",
        },
        "weather": {
            # Ensure your start your weather server on port 8000
            "url": "http://localhost:8000/mcp",
            "transport": "streamable_http",
        }
    }
)
tools = await client.get_tools()
agent = create_react_agent(
    "anthropic:claude-3-7-sonnet-latest",
    tools
)
math_response = await agent.ainvoke(
    {"messages": [{"role": "user", "content": "what's (3 + 5) x 12?"}]}
)
weather_response = await agent.ainvoke(
    {"messages": [{"role": "user", "content": "what is the weather in nyc?"}]}
)
カスタム MCP サーバ
独自の MCP サーバを作成するには、mcp ライブラリを使用できます。このライブラリはツールを定義してそれらをサーバとして実行する単純な方法を提供します。
MCP ライブラリをインストールします :
pip install mcp
以下のリファレンス実装を使用して、MCP ツールサーバでエージェントをテストできます。
Example Math Server (stdio transport)
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Math")
@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b
@mcp.tool()
def multiply(a: int, b: int) -> int:
    """Multiply two numbers"""
    return a * b
if __name__ == "__main__":
    mcp.run(transport="stdio")
Example Weather Server (Streamable HTTP transport)
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Weather")
@mcp.tool()
async def get_weather(location: str) -> str:
    """Get weather for location."""
    return "It's always sunny in New York"
if __name__ == "__main__":
    mcp.run(transport="streamable-http")
