Dify as MCP Server について
Dify as MCP Server は、Dify ワークフローを MCP サーバーとして公開する Dify プラグインです。Claude Desktop や Cursor などの MCP 対応クライアントから、ワークフローを変更せずに呼び出したい場合に使用します。
主な機能
- 01Dify ワークフローのツールとしての公開
- 02ツールの自動検出と登録
- 03MCP 準拠の JSON-RPC インターフェース
- 04サーバー側のセッション管理
- 05Streamable HTTP 仕様の変更への追従
活用シーン
- 01Claude Desktop から既存の Dify ワークフローを呼び出す
- 02Cursor Agent で Dify ワークフローをツールとして使用する
MCP 対応
本プロジェクトは MCP サーバーであり、Dify ワークフローをツールとして MCP クライアントに公開します。クライアントは設定された URL から接続してツールを検出します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Dify を MCP サーバーとして使用
Dify ワークフローを Model Context Protocol (MCP) サーバーとして公開し、Claude などの AI クライアントから利用できるようにします。
プロジェクト概要
本プロジェクトは、Dify ワークフローを Model Context Protocol (MCP) 経由で、このプロトコルをサポートする AI クライアント(Claude Desktop、Cursor など)に公開できる Dify プラグインを実装します。このプラグインを使用すると、次のことができます。
- Dify ワークフローをツールとして Claude などの AI に提供できます
- AI クライアントがワークフローを検出して使用できるようにします
- ワークフローを変更せずに AI アシスタントに統合できます
特性
- ✅ MCP 標準の JSON-RPC インターフェースをサポート
- ✅ ツールの自動検出と登録
- ✅ Claude Desktop/Cursor などのクライアントと互換性があります
- ✅ 安全な SSE 接続を実装
- ✅ サーバー側のセッション管理
- 🔄 最新の MCP Streamable HTTP 仕様に準拠(PR #206 に基づく)
背景
Model Context Protocol (MCP) は、AI モデルが外部ツールやデータソースとやり取りできるようにするオープンスタンダードです。MCP の発展に伴い、プロトコルは HTTP+SSE モードから新しい「Streamable HTTP」トランスポートモードへ移行しており、ステートレスサーバーをより適切にサポートできるようになっています。
本プロジェクトでは最新の MCP プロトコルの変更を追跡して実装しており、特に次の点に対応しています。
- セッション ID の生成と管理をサーバーが担います
- ステートレスサーバーモードをサポートします(Dify プラグイン環境に適しています)
- メッセージ形式とストリーム処理を標準化します
- 安全なセッション管理と認証を実現します
- プラグインの設定を構成します:
- アプリ ID:公開する Dify アプリの ID
- その他の設定:必要に応じて構成します
使用方法
1. Dify で構成する
Dify アプリに少なくとも 1 つのワークフローが含まれ、正しく構成されていることを確認してください。
2. クライアントで使用する
- クライアントを開きます
- 設定 > MCP サーバーに移動します
- 新しい MCP サーバーを追加し、URL に次を入力します:
https://您的Dify实例地址/difyapp_as_mcp_server - 保存してサーバーを有効にします
3. Cursor で使用する
- Cursor を開きます
- 設定 > AI > MCP に移動します
- サーバーアドレスを追加します:
https://您的Dify实例地址/difyapp_as_mcp_server - 保存して有効にします
- Cursor Agent でツールを使用します
技術的な詳細
アーキテクチャ
本プラグインは、次の 2 つのエンドポイントを使用して MCP サーバーを実装します。
- GET エンドポイント:SSE 接続と HTML ページを処理します
- POST エンドポイント:JSON-RPC リクエストを処理します
Dify プラグイン環境の制約により、「最小限の実用的な」SSE 実装を採用しています。これには次の機能が含まれます。
- サーバー側でのセッション ID 生成
- 限定的なハートビートモード(約 5 分)
- クライアント切断後の自動再接続
- 最新の Streamable HTTP 仕様への準拠
ツールの登録
ツールは Dify ワークフローから自動的に生成され、MCP プロトコルを通じてクライアントに公開されます。ツール定義には次の内容が含まれます。
- 名前と説明
- 入力パラメーターの定義
- 戻り値の型
- パラメーターの検証
ステートレスモードのサポート
本プラグインは最新の MCP 仕様に準拠したステートレスサーバーモードをサポートしています。これは、次のことを意味します。
- サーバーが長期間の接続を維持する必要はありません
- 各リクエストは独立しています
- セッション ID を通じてリクエストを関連付けます
- Dify のステートレス API 環境に適しています
トラブルシューティング
-
接続の問題:
- URL が正しく、アクセス可能であることを確認します
- ファイアウォールまたはプロキシの背後にいないか確認します
-
ツールが表示されない:
- アプリ ID が正しく構成されていることを確認します
- ワークフローが公開済みか確認します
- Dify API キーに十分な権限があることを確認します
-
ツールの実行に失敗する:
- Dify アプリのログを確認します
- Dify でワークフローが正常に実行できることを確認します
貢献
問題の報告やプルリクエストを歓迎します。コードを提出する前に、コードスタイルに従い、適切なテストを追加してください。
ライセンス
MIT
謝辞
本プロジェクトはModel Context Protocol仕様、特に最新のStreamable HTTP トランスポート PR #206を参考にしています。
VIBE CODING の探索成果物、利用不可の状態
Author: yevanchen Version: 0.0.1 Type: extension
説明
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。