# MCPサーバーを使用してツールを統合する

> MCPサーバーを使用してツールを統合する -
> ツールを直接デプロイする代わりに、モデルコンテキストプロトコル（MCP）サーバーを使用して、ツールをエージェントワークフローに統合する方法について説明します。

This Markdown file sits beside the HTML page at the same path (with a `.md` suffix). It summarizes the topic and lists links for tools and LLM context.

Companion generated at `2026-07-15T05:55:44.570482+00:00` (UTC).

## Primary page

- [MCPサーバーを使用してツールを統合する](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md): Full documentation for this topic (Markdown sidecar).

## Sections on this page

- [概要](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#overview): In-page section heading.
- [MCPアーキテクチャ](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#mcp-architecture): In-page section heading.
- [統合ワークフロー](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#integration-workflow): In-page section heading.
- [前提条件](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#prerequisites): In-page section heading.
- [MCPサーバーのデプロイ](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#mcp-server-deployment): In-page section heading.
- [ローカルデプロイ](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#local-deployment): In-page section heading.
- [本番デプロイ](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#production-deployment): In-page section heading.
- [MCPサーバー接続の設定](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#configure-mcp-server-connection): In-page section heading.
- [ローカル開発](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#local-development): In-page section heading.
- [本番環境の設定](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#production-configuration): In-page section heading.
- [エージェントでのMCPツールの使用](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#use-mcp-tools-in-agents): In-page section heading.
- [LangGraphエージェント](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#langgraph-agents): In-page section heading.
- [MCPツールとローカルツールの組み合わせ](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#combine-mcp-tools-with-local-tools): In-page section heading.
- [カスタムMCPツールの作成](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#create-custom-mcp-tools): In-page section heading.
- [ツールの構造](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#tool-structure): In-page section heading.
- [ツールのベストプラクティス](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#tool-best-practices): In-page section heading.
- [比較：MCPとToolClient](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#comparison-mcp-vs-toolclient): In-page section heading.
- [トラブルシューティング](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#troubleshooting): In-page section heading.
- [エージェントがMCPサーバーに接続できない](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#agent-cant-connect-to-mcp-server): In-page section heading.
- [ツールが表示されない](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#tools-not-appearing): In-page section heading.
- [認証に関する問題](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#authentication-issues): In-page section heading.
- [その他のリソース](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-tools-mcp.html.md#additional-resources): In-page section heading.

## Documentation content

モデルコンテキストプロトコル（MCP）は、AIエージェントが外部のシステム、ツール、データソースとやりとりするための標準化されたインターフェイスを提供します。 MCPサーバーを使用してエージェントにツールを提供すると、ツールを直接デプロイする場合に比べていくつかの利点があります。

- ツールの一元管理 ：すべてのツールが1つのMCPサーバーデプロイで管理されます
- 標準化されたインターフェイス ：ツールはMCPプロトコル標準に準拠しているため、さまざまなエージェントフレームワーク間で互換性があります
- 動的なツール登録 ：ツールは、エージェントを再デプロイせずに追加または変更できます
- 関心の分離を強化 ：ツールはエージェントとは別にデプロイされるため、個別のスケーリングと更新が可能です。

このガイドでは、 [DataRobot Agentic Starterのテンプレート](https://github.com/datarobot-community/datarobot-agent-application) で実装されている、MCPサーバーを使用してエージェントワークフローにツールを統合する方法について説明します。 MCPエンドポイントは、Agentic Starterアプリ、 [DataRobot MCPのテンプレート](https://github.com/datarobot-community/af-component-datarobot-mcp) を使用して構築されたスタンドアロンサーバー、または [DataRobot Global MCP](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-mcp-clients.html.md#using-the-datarobot-global-mcp) から取得できます。このページでは、 エージェントアプリケーション を、デプロイで使用しているMCP URLに接続する方法について説明します。

> [!NOTE] MCPベースの統合とローカルツールを使用した統合
> このドキュメントでは、MCPサーバーベースのツール統合について説明します。 ローカルツール（直接のツールデプロイ）を使用したツール統合の詳細については、 [エージェントにツールを追加する](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-tools-integrate.html.md) を参照してください。 Cursor、Claude Desktop、またはVS CodeのMCPクライアント（DataRobot Global MCPおよびデプロイURLを含む）を接続するには、 [エージェントコーディング環境をMCPサーバーに接続する](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-mcp-clients.html.md) を参照してください。

## 概要

モデルコンテキストプロトコル（MCP）は、エージェントがツールにアクセスする方法を根本的に変えます。 エージェントのコード内でツールロジックを直接定義する代わりに、スタンドアロンの「ツールサーバー」をデプロイします。次に、エージェントはクライアントとしてこのサーバーに接続し、利用可能なツールを要求して、標準化されたプロトコルを介してそれらを実行します。

[DataRobot Agentic Starterテンプレート](https://github.com/datarobot-community/datarobot-agent-application) は、実行時にMCPツールを接続します。LangGraphワークフローは、 `custompy_adaptor` （DRUM）および `register.py` （DRAgent）内の `mcp_tools_context` を使用して、 `graph_factory` への `tools` 引数としてMCP（およびオプションのワークフロー）ツールを受け取ります。 エージェントコードにMCPサーバーをインポートする必要はありません。
エージェントワークフローでのMCPツールの使用方法に関する詳細については、以下のセクションを参照してください。

### MCPアーキテクチャ

- エージェント（クライアント） ：タスクを計画する推論エンジン（例：LangGraphアプリケーション）。 これにはツールのコードは含まれておらず、利用可能なツールをMCPサーバーに問い合わせる方法のみを認識しています。
- MCPサーバー ：ツール、リソース、およびプロンプトのロジックをホストするWebサービス。 タスクの実際の実行（例：データベースへのクエリー、外部APIの呼び出し）を処理します。
- プロトコル ：基盤となるインフラストラクチャに関係なく、エージェントとMCPサーバーがセキュアに通信できるようにする標準インターフェイス。

### 統合ワークフロー

このアーキテクチャを使用してツールを統合するには、次の大まかなプロセスに従います。

- MCPエンドポイントをデプロイまたは選択する ：（ DataRobot MCPのテンプレート を使用して）ツールロジックを含むMCPサーバーを作成してデプロイするか、 DataRobot Agentic Starterのテンプレート にバンドルされているMCPサーバーを使用するか、環境で DataRobot Global MCP を使用する場合はそのサービスを介して接続します。
- エージェントを接続する ：エージェントアプリケーションがMCPサーバーのURLを指すように設定します（デプロイの directAccess URL、Gateway URL、ローカル開発URLなど）。
- 実行 ：エージェントは実行時にツールを自動的に検出します。 新しいツールを追加するためにエージェントを再デプロイする必要はありません。MCPサーバーを更新するだけです。

## 前提条件

MCPツールを統合する前に、以下が揃っていることを確認してください。

- アクセス可能なMCPエンドポイント： DataRobot MCPのテンプレート で構築されたサーバー、 DataRobot Agentic Starterのテンプレート に含まれるMCPサーバー、または DataRobot Global MCP （設定によって異なります）。
- DataRobot Agentic Starterのテンプレート に基づいたエージェントワークフロー。
- MCPエンドポイントのURLと認証資格情報（必要な場合）。

スタンドアロンMCPサーバーのデプロイについては、 [MCPテンプレートのドキュメント](https://github.com/datarobot-community/af-component-datarobot-mcp/blob/main/README.md) を参照してください。 URLのパターン（ローカルポート、デプロイの `directAccess` 、Gateway）については、 [エージェントコーディング環境をMCPサーバーに接続する](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-mcp-clients.html.md) を参照してください。

## MCPサーバーのデプロイ

MCPサーバーは、開発用としてローカルにデプロイすることも、本番用としてDataRobotにデプロイすることも可能です。

### ローカルデプロイ

ローカル開発の場合は、開発コマンドを使用してMCPサーバーを起動します。

```
cd mcp_server
dr task run mcp_server:dev 
```

MCPサーバーは設定されたポート（デフォルト： `9000` ）で起動し、 `http://localhost:9000/mcp/` でアクセス可能になります。

### 本番デプロイ

MCPサーバーをDataRobotにデプロイするには：

1. デプロイ設定を行う：Pulumi設定またはデプロイ設定を更新します。
2. サーバーをデプロイする：デプロイコマンドを使用します。 drrundeploy dr task run deployを使用することもできますが、その場合も同等です。 これらのコマンドの詳細については、CLIのtaskおよびrunコマンドを参照してください。
3. デプロイエンドポイントを取得する：デプロイ後、デプロイIDをメモし、MCPエンドポイントURLを構築します。 https://{DATAROBOT_URL}/api/v2/deployments/{DEPLOYMENT_ID}/directAccess/mcp 一部の環境では、デプロイごとのdirectAccessURLの代わりに、DataRobot Global MCPを使用します。 https://{DATAROBOT_URL}/api/v2/genai/globalmcp/mcp Global MCP URLがデプロイエンドポイントとどのように連携するかについては、DataRobot Global MCPの使用を参照してください。
4. エージェントを設定する：本番環境のMCPエンドポイント（デプロイで提供されるURL）を使用するようにエージェントの設定を更新します。

デプロイの詳細な手順については、 [MCPテンプレートのREADME](https://github.com/datarobot-community/af-component-datarobot-mcp/blob/main/README.md) を参照してください。

## MCPサーバー接続の設定

エージェントをMCPサーバーに接続するには、エージェントの環境変数または設定でMCPサーバーのエンドポイントと認証を設定する必要があります。

### ローカル開発

ローカル開発の場合は、 `.env` ファイルでMCPサーバー接続を設定します。

```
# .env
# MCP Server Configuration
MCP_SERVER_PORT=9000 
```

MCPサーバーは、デフォルトで次の2つのポートのいずれかを使用します。

- DataRobot MCPのテンプレート を使用してデプロイした場合はポート8080
- DataRobot Agentic Starterのテンプレート を使用してデプロイした場合はポート9000

エージェントを設定するときは、必ず正しいポートを使用してください。

### 本番環境の設定

本番環境にデプロイする場合は、環境変数を使用してMCPサーバーを設定します。
このプロセスはテンプレートによって自動的に処理されます。

> [!NOTE] MCPサーバー認証
> MCPサーバーで認証が必要な場合は、環境に `DATAROBOT_API_TOKEN` が設定されていることを確認してください。MCPクライアントは、認証されたリクエストにこれを自動的に使用します。 HTTP MCPエンドポイントでは、多くの場合、 `Authorization: Bearer` および `x-datarobot-api-token` の両方のヘッダーが要求されます。通常、クライアントはDataRobot APIの資格情報からこれらのヘッダーを提供します。 Cursor、Claude Desktop、およびVS Codeにおける同様のヘッダーについては、 [エージェントコーディング環境をMCPサーバーに接続する](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-mcp/agentic-mcp-clients.html.md) を参照してください。

## エージェントでのMCPツールの使用

現在の [DataRobot Agentic Starterテンプレート](https://github.com/datarobot-community/datarobot-agent-application) （LangGraph）では、MCPツールは `tools` リストとして `graph_factory(llm, tools, verbose)` に渡されます。 テンプレートは、 `MyAgent` を呼び出す前に、MCP Discoveryを任意のワークフローツールとマージします。

### LangGraphエージェント

LangGraphエージェントの場合、 `tools` 引数を各 `create_agent` ノードにそのまま渡します。

```
# agent/agent/myagent.py (excerpt)
from datarobot_genai.core.agents import make_system_prompt
from langchain.agents import create_agent

def graph_factory(llm, tools, verbose=False):
    planner = create_agent(
        llm,
        tools=tools,
        system_prompt=make_system_prompt(
            "You are a content planner. Use available tools to gather information and plan content."
        ),
        name="planner_agent",
        debug=verbose,
    )
    ... 
```

実行時に、 `tools` には `mcp_tools_context` を介して解決されたMCPツールが含まれます（テンプレートの `custompy_adaptor` および `register.py` を参照してください）。 そのフローでは：

- 設定済みのMCPサーバーに接続する
- 利用可能なツールを検出する
- LangChain互換のツールをグラフに公開します
- 必要に応じて、認証ヘッダーと認可コンテキストを適用します

### MCPツールとローカルツールの組み合わせ

リストを拡張して、 `graph_factory` 内にローカルツールを追加します（MCPツールはすでに `tools` にあります）。

```
# agent/agent/myagent.py (excerpt)
from langchain_core.tools import Tool

class DateTimeTool(Tool):
    """Local datetime tool."""
    name = "datetime_tool"
    description = "Returns the current date and time."

    def run(self, query: str = "") -> str:
        from datetime import datetime
        return datetime.now().strftime("%Y-%m-%d %H:%M:%S")

def graph_factory(llm, tools, verbose=False):
    local_tools = [DateTimeTool()]
    all_tools = list(tools) + local_tools
    planner = create_agent(
        llm,
        tools=all_tools,
        system_prompt=make_system_prompt("You are a content planner..."),
        name="planner_agent",
        debug=verbose,
    )
    ... 
```

## カスタムMCPツールの作成

MCPサーバーにカスタムツールを追加するには、 [DataRobot MCPのテンプレート](https://github.com/datarobot-community/af-component-datarobot-mcp) を使用します。 このテンプレートは、ツール、リソース、およびプロンプトを作成するための構造化されたアプローチを提供します。

### ツールの構造

カスタムMCPツールは、 `@dr_mcp_tool` デコレーターを使用して定義されます。

```
# dr_mcp/app/recipe/tools/my_custom_tool.py
from app.base.core.mcp_instance import dr_mcp_tool
from app.base.core.common import get_sdk_client

@dr_mcp_tool(tags={"custom", "recipe", "your-domain"})
async def my_custom_tool(input_param: str, optional_param: int = 10) -> str:
    """
    Brief description of what your tool does.

    This description helps LLMs understand when and how to use your tool.
    Be specific about the tool's purpose and behavior.

    Args:
        input_param: Description of the required parameter
        optional_param: Description of the optional parameter

    Returns:
        Description of what the tool returns
    """
    # Use the DataRobot SDK client for API operations
    client = get_sdk_client()

    # Your custom logic here
    result = f"Processed {input_param} with {optional_param}"

    return result 
```

> [!NOTE] MCPテンプレートリポジトリ
> 上記のパスとインポートは、 [DataRobot MCPのテンプレート](https://github.com/datarobot-community/af-component-datarobot-mcp) リポジトリの構造を参照しています。

### ツールのベストプラクティス

MCPツールを作成するときは、以下のベストプラクティスに従ってください。

- 明確な説明 ：詳細なdocstringを提供します。LLMはこれを使用してツールの機能を理解します
- 型ヒント ：常にパラメーターと戻り値に型ヒントを使用します
- エラーハンドリング ：適切なエラーハンドリングを実装し、意味のあるエラーメッセージを返します
- 非同期関数 ：パフォーマンスを向上させるために、ツールは非同期関数にする必要があります
- タグ ：わかりやすいタグを使用してツールを分類します（ツールのフィルターに役立ちます）
- SDKクライアント ：DataRobot APIへのアクセスには get_sdk_client() を使用します

カスタムMCPツールの作成に関する詳細については、 [MCPテンプレートのカスタムツールのドキュメント](https://github.com/datarobot-community/af-component-datarobot-mcp/blob/main/docs/custom_tools.md) を参照してください。

## 比較：MCPとToolClient

| 特徴量 | MCPサーバー | ToolClient（直接デプロイ） |
| --- | --- | --- |
| ツールの管理 | 1つのサーバーで一元化 | 各ツールを個別にデプロイ |
| プロトコル | MCP標準プロトコル | DataRobotカスタムプロトコル |
| ツール検出 | MCPによる自動検出 | ツールごとの手動設定 |
| 動的な更新 | エージェントを再デプロイせずにツールを追加または変更可能 | 新しいツールのためにエージェントの再デプロイが必要 |
| フレームワークの互換性 | あらゆるMCP互換フレームワークで動作 | DataRobot固有 |
| デプロイの複雑さ | 単一のMCPサーバーのデプロイ | 複数のツールのデプロイ |
| スケーリング | MCPサーバーを個別にスケール | 各ツールを個別にスケール |

以下の場合には、MCPサーバー統合を選択してください。

- ツール管理を一元化したい場合
- 動的なツール登録が必要な場合
- ツールを共有する複数のエージェントを使用している場合
- 標準プロトコルへの準拠を求めている場合

以下の場合には、ToolClient統合を選択してください。

- 個々のツールデプロイに対してきめ細かな制御が必要な場合
- ツールごとにスケーリング要件が大きく異なる場合
- DataRobot固有のツール管理機能を使用したい場合

## トラブルシューティング

### エージェントがMCPサーバーに接続できない

症状 ：エージェントのエラーに、MCP接続の失敗またはツールが利用不可であることが示される。

解決方法 ：

1. MCPサーバーが実行されていることを確認します。 # For local developmentcurl-ihttp://localhost:9000/mcp# For production (deployment MCP endpoint)curl-ihttps://{DATAROBOT_URL}/api/v2/deployments/{DEPLOYMENT_ID}/directAccess/mcp# If your environment uses the DataRobot Global MCPcurl-ihttps://{DATAROBOT_URL}/api/v2/genai/globalmcp/mcp
2. 環境変数を確認します。
3. ネットワーク接続を確認します。

### ツールが表示されない

症状 ：MCPサーバーは接続されているが、エージェントがツールを使用できない。

解決方法 ：

1. ツール登録の確認：ツールがMCPサーバーに正しく登録されていることを確認します。
2. ツールメタデータの確認：ツールの説明とスキーマが正しく定義されていることを確認します。
3. サーバーログの確認：ツールの登録エラーがないか、MCPサーバーのログを確認します。
4. エージェント設定の確認： mcp_tools プロパティが正しく使用されていることを確認します。

### 認証に関する問題

症状 ：MCPサーバーのリクエストが認証エラーで失敗する。

解決方法 ：

1. APIトークンの確認： DATAROBOT_API_TOKEN が設定されており、有効であることを確認します。
2. トークン権限の確認：MCPサーバーへのアクセスに必要な権限がトークンにあることを確認します。
3. サーバー設定の確認：使用されている認証方法を受け入れるようにMCPサーバーが設定されていることを確認します。

## その他のリソース

- エージェントコーディング環境をMCPサーバーに接続する — DataRobot Global MCP、デプロイおよびローカルURL、クライアント設定（Cursor、Claude Desktop、VS Code）
- DataRobot MCPのテンプレート - MCPサーバーを作成およびデプロイするためのテンプレート
- DataRobot Agentic Starterのテンプレート - MCP統合を備えたアプリケーションテンプレート
- MCP Protocolのドキュメント - MCPプロトコルの公式仕様
- エージェントにツールを追加する - ToolClientベースのツール統合に関するドキュメント
- MCP Client Setup Guide - MCPクライアントの設定ガイド
