MCPサーバーを使用してツールを統合する¶
モデルコンテキストプロトコル(MCP)は、AIエージェントが外部のシステム、ツール、データソースとやりとりするための標準化されたインターフェイスを提供します。 MCPサーバーを使用してエージェントにツールを提供すると、ツールを直接デプロイする場合に比べていくつかの利点があります。
- ツールの一元管理:すべてのツールが1つのMCPサーバーデプロイで管理されます
- 標準化されたインターフェイス:ツールはMCPプロトコル標準に準拠しているため、さまざまなエージェントフレームワーク間で互換性があります
- 動的なツール登録:ツールは、エージェントを再デプロイせずに追加または変更できます
- 関心の分離を強化:ツールはエージェントとは別にデプロイされるため、個別のスケーリングと更新が可能です。
このガイドでは、DataRobot Agentic Application Templateで実装されている、MCPサーバーを使用してエージェントワークフローにツールを統合する方法について説明します。
MCPベースの統合とローカルツールを使用した統合
このドキュメントでは、MCPサーバーベースのツール統合について説明します。 ローカルツール(直接のツールデプロイ)を使用したツール統合の詳細については、エージェントにツールを追加するを参照してください。 MCPサーバーをエージェントコーディング環境(Cursor、Claude Desktop、VS Code)に接続するには、MCPサーバーをエージェントコーディング環境に接続するを参照してください。
概要¶
モデルコンテキストプロトコル(MCP)は、エージェントがツールにアクセスする方法を根本的に変えます。 エージェントのコード内でツールロジックを直接定義する代わりに、スタンドアロンの「ツールサーバー」をデプロイします。次に、エージェントはクライアントとしてこのサーバーに接続し、利用可能なツールを要求して、標準化されたプロトコルを介してそれらを実行します。
DataRobot Agentic Application Templateには、LangGraphAgentベースクラスを介したMCPツールのサポートが組み込まれています。このクラスは、設定済みのMCPサーバーに自動的に接続するmcp_toolsプロパティを提供します。
エージェントワークフローでのMCPツールの使用方法に関する詳細については、以下のセクションを参照してください。
MCPアーキテクチャ¶
- エージェント(クライアント):タスクを計画する推論エンジン(例:LangGraphアプリケーション)。 これにはツールのコードは含まれておらず、利用可能なツールをMCPサーバーに問い合わせる方法のみを認識しています。
- MCPサーバー:ツール、リソース、およびプロンプトのロジックをホストするWebサービス。 タスクの実際の実行(例:データベースへのクエリー、外部APIの呼び出し)を処理します。
- プロトコル:基盤となるインフラストラクチャに関係なく、エージェントとMCPサーバーがセキュアに通信できるようにする標準インターフェイス。
統合ワークフロー¶
このアーキテクチャを使用してツールを統合するには、次の大まかなプロセスに従います。
- MCPサーバーをデプロイする:ツールロジックを含むMCPサーバーを作成してデプロイします(DataRobot MCP Templateを使用)。
- エージェントを接続する:実行中のMCPサーバーのエンドポイントを指すようにエージェントアプリケーションを設定します。
- 実行:エージェントは実行時にツールを自動的に検出します。 新しいツールを追加するためにエージェントを再デプロイする必要はありません。MCPサーバーを更新するだけです。
前提条件¶
MCPツールを統合する前に、以下が揃っていることを確認してください。
- DataRobot MCP Templateを使用してデプロイされたMCPサーバー(ローカルまたはDataRobot内)
- DataRobot Agentic Application Templateに基づいたエージェントワークフロー
- MCPサーバーのエンドポイントURLおよび認証資格情報(必要な場合)
MCPサーバーのセットアップとデプロイに関する詳細については、MCP Templateのドキュメントを参照してください。
MCPサーバーのデプロイ¶
MCPサーバーは、開発用としてローカルにデプロイすることも、本番用としてDataRobotにデプロイすることも可能です。
ローカルデプロイ¶
ローカル開発の場合は、開発コマンドを使用してMCPサーバーを起動します。
cd mcp_server
dr task run mcp_server:dev
MCPサーバーは設定されたポート(デフォルト:9000)で起動し、http://localhost:9000/mcp/でアクセス可能になります。
本番デプロイ¶
MCPサーバーをDataRobotにデプロイするには:
- デプロイ設定を行う:Pulumi設定またはデプロイ設定を更新します
- サーバーをデプロイする:デプロイコマンドを使用します。
dr task run deploy
これらのコマンドの詳細については、CLIのtaskコマンドおよびCLIのrunコマンドを参照してください。
- デプロイエンドポイントを取得する:デプロイ後、デプロイIDをメモし、MCPエンドポイントURLを構築します。
https://your-datarobot-endpoint.com/api/v2/deployments/{DEPLOYMENT_ID}/directAccess/mcp/
- エージェントを設定する:本番用MCPエンドポイントを使用するようにエージェントの設定を更新します
デプロイの詳細な手順については、MCP TemplateのREADMEを参照してください。
MCPサーバー接続の設定¶
エージェントをMCPサーバーに接続するには、エージェントの環境変数または設定でMCPサーバーのエンドポイントと認証を設定する必要があります。
ローカル開発¶
ローカル開発の場合は、.envファイルでMCPサーバー接続を設定します。
# MCP Server Configuration
MCP_SERVER_PORT=9000
MCPサーバーは、デフォルトで次の2つのポートのいずれかを使用します。
- DataRobot MCP Templateを使用してデプロイした場合はポート8080
- DataRobot Agentic Application Templateを使用してデプロイした場合はポート9000
エージェントを設定するときは、必ず正しいポートを使用してください。
本番環境の設定¶
本番環境にデプロイする場合は、環境変数を使用してMCPサーバーを設定します。 このプロセスはテンプレートによって自動的に処理されます。
MCPサーバー認証
MCPサーバーで認証が必要な場合は、環境にDATAROBOT_API_TOKENが設定されていることを確認してください。MCPクライアントは、認証されたリクエストにこれを自動的に使用します。
エージェントでのMCPツールの使用¶
LangGraphAgentベースクラス(DataRobot Agentic Application Templateで使用)は、mcp_toolsプロパティを介して自動的なMCPツール統合を提供します。
LangGraphエージェント¶
LangGraphエージェントの場合、MCPツールはmcp_toolsプロパティを介して自動的に利用可能になります。
from datarobot_genai.core.agents import make_system_prompt
from datarobot_genai.langgraph.agent import LangGraphAgent
from langgraph.prebuilt import create_react_agent
from typing import Any
class MyAgent(LangGraphAgent):
"""Agent that uses MCP tools for external integrations."""
@property
def agent_planner(self) -> Any:
return create_react_agent(
self.llm(preferred_model="datarobot/azure/gpt-5-mini-2025-08-07"),
tools=self.mcp_tools, # MCP tools are automatically available
prompt=make_system_prompt(
"You are a content planner. Use available tools to gather information and plan content."
),
name="Planner Agent",
)
mcp_toolsプロパティは、自動的に以下のことを実行します。
- 設定済みのMCPサーバーに接続する
- 利用可能なツールを検出する
- MCPツールをLangChain互換のツールに変換する
- 必要に応じて認証を処理する
MCPツールとローカルツールの組み合わせ¶
ツールリストをマージすることで、MCPツールとローカルツールを組み合わせることができます。
from datarobot_genai.core.agents import make_system_prompt
from datarobot_genai.langgraph.agent import LangGraphAgent
from langgraph.prebuilt import create_react_agent
from langchain_core.tools import Tool
from typing import Any
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")
class MyAgent(LangGraphAgent):
"""Agent that uses both MCP tools and local tools."""
@property
def agent_planner(self) -> Any:
# Combine MCP tools with local tools
local_tools = [DateTimeTool()]
all_tools = list(self.mcp_tools) + local_tools
return create_react_agent(
self.llm(preferred_model="datarobot/azure/gpt-5-mini-2025-08-07"),
tools=all_tools,
prompt=make_system_prompt(
"You are a content planner. Use available tools to gather information and plan content."
),
name="Planner Agent",
)
カスタムMCPツールの作成¶
MCPサーバーにカスタムツールを追加するには、DataRobot MCP Templateを使用します。 このテンプレートは、ツール、リソース、およびプロンプトを作成するための構造化されたアプローチを提供します。
ツールの構造¶
カスタムMCPツールは、@dr_mcp_toolデコレーターを使用して定義されます。
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
MCPテンプレートリポジトリ
上記のパスとインポートは、DataRobot MCP Templateリポジトリの構造を参照しています。
ツールのベストプラクティス¶
MCPツールを作成するときは、以下のベストプラクティスに従ってください。
- 明確な説明:詳細なdocstringを提供します。LLMはこれを使用してツールの機能を理解します
- 型ヒント:常にパラメーターと戻り値に型ヒントを使用します
- エラーハンドリング:適切なエラーハンドリングを実装し、意味のあるエラーメッセージを返します
- 非同期関数:パフォーマンスを向上させるために、ツールは非同期関数にする必要があります
- タグ:わかりやすいタグを使用してツールを分類します(ツールのフィルターに役立ちます)
- SDKクライアント:DataRobot APIへのアクセスには
get_sdk_client()を使用します
カスタムMCPツールの作成に関する詳細については、MCP Templateカスタムツールのドキュメントを参照してください。
トラブルシューティング¶
エージェントがMCPサーバーに接続できない¶
症状:エージェントのエラーに、MCP接続の失敗またはツールが利用不可であることが示される。
解決方法:
- MCPサーバーが実行されていることを確認:
# For local development
curl http://localhost:9000/mcp/
# For production
curl https://your-endpoint.com/api/v2/deployments/{DEPLOYMENT_ID}/directAccess/mcp/
- 環境変数を確認:
MCP_SERVER_PORTがサーバー設定と一致していることを確認します(ローカル開発の場合)-
DATAROBOT_API_TOKENが設定されていることを確認します(認証済み接続の場合) -
ネットワーク接続を確認:
- エージェントがMCPサーバーエンドポイントに到達できることを確認します
- ネットワークをまたいでデプロイする場合は、ファイアウォールの設定を確認します
- HTTPSエンドポイントのSSL証明書を確認します
ツールが表示されない¶
症状:MCPサーバーは接続されているが、エージェントがツールを利用できない。
解決方法:
- ツール登録の確認:ツールがMCPサーバーに正しく登録されていることを確認します
- ツールメタデータの確認:ツールの説明とスキーマが正しく定義されていることを確認します
- サーバーログの確認:ツールの登録エラーがないか、MCPサーバーのログを確認します
- エージェント設定の確認:
mcp_toolsプロパティが正しく使用されていることを確認します
認証に関する問題¶
症状:MCPサーバーのリクエストが認証エラーで失敗する。
解決方法:
- APIトークンの確認:
DATAROBOT_API_TOKENが設定されており、有効であることを確認します - トークン権限の確認:MCPサーバーへのアクセスに必要な権限がトークンにあることを確認してください
- サーバー設定の確認:使用されている認証方法を受け入れるようにMCPサーバーが設定されていることを確認します
比較:MCPとToolClient¶
| 特徴量 | MCPサーバー | ToolClient(直接デプロイ) |
|---|---|---|
| ツールの管理 | 1つのサーバーで一元化 | 各ツールを個別にデプロイ |
| プロトコル | MCP標準プロトコル | DataRobotカスタムプロトコル |
| ツール検出 | MCPによる自動検出 | ツールごとの手動設定 |
| 動的な更新 | エージェントを再デプロイせずにツールを追加または変更可能 | 新しいツールのためにエージェントの再デプロイが必要 |
| フレームワークの互換性 | あらゆるMCP互換フレームワークで動作 | DataRobot固有 |
| デプロイの複雑さ | 単一のMCPサーバーのデプロイ | 複数のツールのデプロイ |
| スケーリング | MCPサーバーを個別にスケール | 各ツールを個別にスケール |
以下の場合には、MCPサーバー統合を選択してください。
- ツール管理を一元化したい場合
- 動的なツール登録が必要な場合
- ツールを共有する複数のエージェントを使用している場合
- 標準プロトコルへの準拠を求めている場合
以下の場合には、ToolClient統合を選択してください。
- 個々のツールデプロイに対してきめ細かな制御が必要な場合
- ツールごとにスケーリング要件が大きく異なる場合
- DataRobot固有のツール管理機能を使用したい場合
その他のリソース¶
- DataRobot MCP Template - MCPサーバーを作成およびデプロイするためのテンプレート
- DataRobot Agentic Application Template - MCP統合を備えたアプリケーションテンプレート
- MCP Protocolのドキュメント - MCPプロトコルの公式仕様
- エージェントにツールを追加する - ToolClientベースのツール統合に関するドキュメント
- MCP Client Setup Guide - MCPクライアントの設定ガイド