AIエージェントとMCPサーバーの連携ガイド:設定・ツール・実践例

AIエージェントとMCPサーバーの連携方法を徹底解説。基本設定からツール活用、実践的な連携手順まで、初心者にもわかりやすく紹介します。

AIエージェントMCPサーバー連携設定ツール2026/5/25

AIエージェントとMCPサーバーの連携ガイド:設定・ツール・実践例

はじめに

AIエージェントは、自律的にタスクを実行するプログラムです。その能力を最大限に引き出すには、外部サービスやデータとの連携が欠かせません。そこで注目されているのがMCP(Model Context Protocol) です。MCPは、AIエージェントと外部ツール・サーバーを標準化された方法で接続するプロトコルです。本記事では、MCPサーバーの基本から設定、連携手順までを具体的に解説します。

AIエージェントとは

AIエージェントは、大規模言語モデル(LLM)を基盤とし、ユーザーの指示に基づいて自律的に行動するソフトウェアです。例えば、Web検索、データ分析、メール送信、ファイル操作などを、ユーザーに代わって実行します。代表的なAIエージェントフレームワークには、LangChain、AutoGPT、BabyAGIなどがあります。

MCP(Model Context Protocol)とは

MCPは、Anthropic社が提唱するオープンなプロトコルで、AIエージェントと外部ツール・データソースを安全かつ効率的に連携させるための規格です。従来、各エージェントは独自の方法で外部連携を行っていましたが、MCPにより統一的なインターフェースが提供されます。

MCPの主な要素

  • MCPサーバー: 外部ツールやデータへのアクセスを提供するサーバー
  • MCPクライアント: AIエージェント内で動作し、MCPサーバーと通信するクライアント
  • ツール: MCPサーバーが公開する個別の機能(例:計算機、データベース検索、天気API)
  • MCPサーバーの設定方法

    MCPサーバーを設定するには、以下の手順を行います。ここでは、Pythonを使用した簡単な例を示します。

    1. 必要なライブラリのインストール

    pip install mcp
    

    2. 基本的なMCPサーバーの作成

    from mcp.server import Server
    from mcp.types import Tool, TextContent
    

    <h1>サーバーインスタンス作成</h1> server = Server("example-server")

    <h1>ツールの定義</h1> @server.list_tools() async def list_tools() -> list[Tool]: return [ Tool( name="calculator", description="Perform basic arithmetic operations", inputSchema={ "type": "object", "properties": { "expression": {"type": "string"} }, "required": ["expression"] } ) ]

    <h1>ツールの実行</h1> @server.call_tool() async def call_tool(name: str, arguments: dict) -> list[TextContent]: if name == "calculator": expression = arguments["expression"] result = eval(expression) # 注意: 本番環境では安全な評価方法を使用 return [TextContent(type="text", text=str(result))]

    <h1>サーバー起動</h1> if __name__ == "__main__": server.run()

    このコードは、計算機ツールを提供するMCPサーバーです。evalは危険なため、本番ではast.literal_evalなど安全な方法を使ってください。

    3. サーバーの起動

    python server.py
    

    デフォルトでは、localhost:8000で待ち受けます。

    AIエージェントとの連携

    AIエージェントがMCPサーバーと連携するには、MCPクライアントを使用します。以下は、LangChainを使った例です。

    LangChainでのMCPクライアント設定

    from langchain.agents import initialize_agent, AgentType
    from langchain.llms import OpenAI
    from langchain_mcp import MCPClient
    

    <h1>MCPクライアントの作成</h1> client = MCPClient("http://localhost:8000")

    <h1>ツールの取得</h1> tools = client.get_tools()

    <h1>LLMの設定</h1> llm = OpenAI(temperature=0)

    <h1>エージェントの初期化</h1> agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)

    <h1>実行</h1> agent.run("What is 123 plus 456?")

    これにより、AIエージェントがMCPサーバーの計算機ツールを使って計算を行います。

    実践的な連携例

    天気情報APIとの連携

    MCPサーバーで天気APIをラップし、AIエージェントから利用する例です。

    MCPサーバー側(weather_server.py)

    import httpx
    from mcp.server import Server, Tool, TextContent
    

    server = Server("weather-server")

    @server.list_tools() async def list_tools(): return [ Tool( name="get_weather", description="Get current weather for a city", inputSchema={ "type": "object", "properties": { "city": {"type": "string"} }, "required": ["city"] } ) ]

    @server.call_tool() async def call_tool(name: str, arguments: dict): if name == "get_weather": city = arguments["city"] async with httpx.AsyncClient() as client: response = await client.get(f"https://api.openweathermap.org/data/2.5/weather?q={city}&appid=YOUR_API_KEY") data = response.json() weather = data["weather"][0]["description"] temp = data["main"]["temp"] - 273.15 return [TextContent(type="text", text=f"Weather in {city}: {weather}, temperature: {temp:.1f}°C")]

    server.run()

    AIエージェント側

    from langchain.agents import initialize_agent, AgentType
    from langchain.llms import OpenAI
    from langchain_mcp import MCPClient
    

    client = MCPClient("http://localhost:8000") tools = client.get_tools() llm = OpenAI(temperature=0) agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True) agent.run("What's the weather in Tokyo?")

    注意点とベストプラクティス

  • セキュリティ: MCPサーバーはネットワーク上に公開する場合、認証と暗号化を実装してください。特にevalのような危険な関数は避けましょう。
  • エラーハンドリング: ツール実行時のエラーを適切に処理し、AIエージェントにわかりやすいメッセージを返すことが重要です。
  • ツールの粒度: ツールは単一責任の原則に従い、小さくシンプルに設計すると、AIエージェントが使いやすくなります。
  • レート制限: 外部APIを呼び出す場合は、レート制限を考慮し、必要に応じてキャッシュを導入しましょう。
  • まとめ

    MCPサーバーを利用することで、AIエージェントは標準化された方法で外部ツールと連携できるようになります。本記事で紹介した設定手順と実践例を参考に、あなたのAIエージェントに必要な機能を追加してみてください。MCPはまだ発展途上のプロトコルですが、今後の標準となる可能性が高いです。ぜひ試してみましょう。

    🛡️
    ContentLens 品質チェック済み

    この記事はAI品質チェッカーContentLensで分析されています。記事を貼り付けるだけで誰でも無料で品質スコアを確認できます。