MCPツールの活用
外部のMCPサーバーが提供するツールを直接 Dify Agent やワークフローで利用できます。既存のDifyプラグインに制限される代わりに、特定の機能を提供する成長している MCP サーバーのエコシステムを活用できます。
この記事では、Dify内でMCPツールを使用する方法を解説します。Difyアプリケーションを MCP サーバーとして公開する方法については、こちらをご覧ください。
現在、HTTPトランスポートをサポートしている MCP サーバーのみが利用可能です。
MCPサーバー管理へのアクセス
Difyワークスペースのツール → MCPに移動します。ここでは、アプリケーション用にツールを提供する全ての外部MCPサーバーを管理します。
MCPサーバーの追加
MCP Server (HTTP)を追加 をクリックして、新しい外部ツールプロバイダーに接続します:
-
サーバーURL: MCPサーバーのHTTPエンドポイント(例:
https://api.notion.com/mcp
はNotionとの統合に用いるためのHTTPエンドポイントです)。 -
名前とアイコン: 提供されるツールを説明する名前を付けます。Difyは可能な限りサーバーのドメインからアイコンを自動で取得し、自分で選ぶこともできます。
-
サーバーの識別: Difyがこのサーバーを管理するために使用するユニークなID(小文字、数字、アンダースコア、ハイフン、最大24文字)。
サーバーIDは設計上永久的です。これを変更すると、このサーバーのツールを使用している既存の Agent やワークフローが機能しなくなります。これはアプリケーションのポータビリティにとって重要です。
認証とツールの発見
サーバーを追加した後、Difyは自動的に以下を行います:
- 利用可能なツールの検出: サーバーが提供する機能をチェックします。
- 認証処理: サーバーが認証を必要とする場合、OAuthフローを開始します。
- ツール定義の取得: アプリケーションで使用できるようツールのスキーマをダウンロードします。
- ツールのインベントリを更新: Agent やワークフロービルダーでツールを使用できるようにします。
Difyが少なくとも1つの使用可能なツールを正常に取得するとサーバーカードが追加されます:
接続されたサーバーの管理
サーバーカードをクリックすると、以下ができます:
-
ツールの更新: サーバーから入手可能なツールを更新します。外部サービスが新しい機能を追加した場合に使用します。
-
再認証: 認証ステータスをクリックして権限を更新します。
-
設定の変更: サーバーの詳細を変更します。
注意: URLの変更は再認証を引き起こし、サーバーIDの変更は既存のアプリケーションを破損させます。
-
サーバーの削除: サーバーを切断します。そのツールを使用しているアプリケーションは、再接続またはツールを削除するまでエラーが表示されます。
アプリケーションでのMCPツールの使用
サーバーが設定されると、そのツールは作成時のツール選択インターフェースに表示されます:
Agent アプリケーション
- MCP ツールは Agent 設定の組み込みツールと一緒に表示されます。
- ツールはサーバー別に整理されます: “Notion MCP » ページ作成”, “Linear MCP » 課題作成”。
- “すべて追加”オプションを使用すると、サーバーの全ツールを迅速に有効にできます。
Workflow アプリケーション
- MCP ツールは Workflow ビルダーの利用可能なノードタイプとして表示されます。
- 各ツールノードはどのサーバーから来ているかを示します(トラブルシューティングに役立ちます)。
- 複雑なツールパラメーターは構造化データ用のJSON入力インターフェースを持ちます。
Workflow 内の Agent ノード
- MCPツールはスタンドアロン Agent と同様に Agent ノード内でも選択できます。
MCP ツールをユースケースにカスタマイズする
Agent ノードや Agent に MCP ツールを追加すると、その動作をカスタマイズできます:
ツールの説明
MCPサーバーからのデフォルトの説明をオーバーライドできます。これにより、ユースケースに特化した説明が可能です。
パラメーター設定(推論設定)
各ツールパラメーターについて、次の選択ができます:
自動: コンテキストに基づいてAIモデルがパラメーター値を決定します(デフォルトの動作)。
固定値: 常に使用される特定の値(静的な値または変数)を設定し、AIの推論からパラメーターを取り除きます。
これは次のような状況で便利です:
- 一貫した設定値を設定するため(検索ツールに対して
numResults: 10
のように)。 - 変更すべきでないパラメーターを事前に設定するため(特定のAPIエンドポイントやフォーマット設定)。
- AIが処理する必要のあるパラメーターを減らしてツールの使用を簡素化します。
例えば、Web 検索ツールを使う場合、以下のように設定できます:
query
を「自動」に保ち、AIが何を検索するかを決定します。numResults
を「5」として固定値に設定し、応答サイズを制限します。- 検索フィルターなど他のパラメーターを固定値として設定し、一貫した動作を実現します。
アプリケーションのポータビリティ
MCPツールを使用するDifyアプリケーションをエクスポートすると:
-
DSLエクスポート: エクスポートされたDSLは、MCPサーバーをそのIDで参照します。
-
環境移行: 他の場所でアプリケーションを使用するには、ターゲット環境に同じMCPサーバーを同一のIDで追加します。
-
アプリの共有: アプリケーションに依存するMCPサーバーを、URLや必要なサーバーIDを含めて文書化します。
統合問題のトラブルシューティング
- “未設定サーバー”: 認証に失敗したか、ツールが見つかりません。サーバーURLを確認し、再認証してください。
- アプリ内のツールが欠如: “ツールを更新”をクリックして — 外部サービスが提供を変更したかもしれません。
- サーバー変更後のアプリの破損: サーバーIDを変更したりサーバーを削除した場合、アプリケーションはツールエラーを表示します。元のIDでサーバーを再追加して機能を回復させてください。
ベストプラクティス
一貫したサーバーID: github-mcpやsalesforce-apiのような説明的で永久的なIDを使用します。一度、アプリケーションが依存し始めたら変更しないでください。
環境の一貫性: 開発、ステージング、プロダクション環境間で同じMCPサーバー構成を維持します。
ツールのカスタマイズ: パラメーター設定を活用し、アプリケーションでツールが一貫して機能するようにします。固定値を設定し、動的な入力をAIに処理させます。
ツールの文書化: アプリケーションで使用している外部ツール、行ったカスタマイズ、及びその機能を文書化します。これにより、チームメンバーがアプリケーションの依存関係を理解しやすくなります。
段階的な更新: 外部サービスがMCPサーバーを更新する際、プロダクション環境での統合を更新する前に開発環境でツールの変更をテストします。
バックアッププラン: 外部MCPサーバーが利用できなくなった場合、アプリケーションがどのように動作するかを考慮します。