外部の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は自動的に以下を行います:

  1. 利用可能なツールの検出: サーバーが提供する機能をチェックします。
  2. 認証処理: サーバーが認証を必要とする場合、OAuthフローを開始します。
  3. ツール定義の取得: アプリケーションで使用できるようツールのスキーマをダウンロードします。
  4. ツールのインベントリを更新: 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サーバーが利用できなくなった場合、アプリケーションがどのように動作するかを考慮します。


このページを編集する | 問題を報告する