mcpField
D
dify-mcp

dify-mcp

ローカル
github.com/salted-butter-joshuaメモリ・ナレッジ017 週間前に更新

dify-mcp について

dify-mcp は、Dify のナレッジベース検索を Cursor などの MCP クライアントに提供します。セルフホストまたはリモートの Dify に接続し、データセットの許可リストでアクセスを制限できます。

主な機能

  1. 01データセットの検出と確認
  2. 02関連テキストチャンクの検索
  3. 03ドキュメントとセグメントの閲覧
  4. 04許可リストによるアクセス制限
  5. 05stdio トランスポート

活用シーン

  1. 01Cursor から Dify のナレッジベースを検索
  2. 02アクセス可能なデータセットの確認
  3. 03データセット内のドキュメントとセグメントの確認

MCP 対応

MCP サーバーとして、データセットの検出、セマンティック検索、ドキュメントやセグメントの閲覧ツールを提供します。HTTP で Dify Knowledge API を呼び出し、ローカルクライアントとは stdio で通信します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"salted-butter-joshua-dify": {
"command": "uvx",
"args": [
"dify-mcp"
],
"env": {
"DIFY_API_BASE": "<DIFY_API_BASE>",
"DIFY_API_KEY": "<DIFY_API_KEY>",
"DIFY_ALLOWED_DATASETS": "<DIFY_ALLOWED_DATASETS>",
"DIFY_TIMEOUT": "<DIFY_TIMEOUT>",
"DIFY_VERIFY_SSL": "<DIFY_VERIFY_SSL>"
}
}
}
}
起動コマンドuvx dify-mcp
設定が必要な環境変数
DIFY_API_BASEDify Knowledge API base URL, e.g. http://192.168.1.100/v1
DIFY_API_KEYシークレットDify Knowledge Base API key
DIFY_ALLOWED_DATASETSComma-separated dataset UUIDs to expose
DIFY_TIMEOUTHTTP timeout in seconds (default: 30)
DIFY_VERIFY_SSLVerify TLS certificates (default: false)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypidify-mcp0.1.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

dify-mcp

Cursor やその他の MCP 対応クライアントで使用するために、Dify のナレッジベース検索機能を MCP(Model Context Protocol)経由で公開します。

HTTP 経由でセルフホストまたはリモートの Dify インスタンスに接続し、アクセス制御のためにデータセットの許可リストを任意で設定できます。

機能

  • ナレッジベースの検出 — 許可されたデータセットを一覧表示して確認します
  • セマンティック検索 — Dify POST /datasets/{dataset_id}/retrieve を使用してチャンクを検索します
  • ドキュメントの閲覧 — データセット内のドキュメントとセグメントを一覧表示します
  • データセットの許可リスト — アクセスを特定の dataset_id 値に制限します
  • stdio トランスポート — サーバーを手動で起動する必要はありません。MCP クライアントがプロセスを起動します

要件

  • Python 3.11+
  • Knowledge Base API が有効な、稼働中の Dify インスタンス
  • MCP サーバーを実行するマシンから Dify API エンドポイントへのネットワークアクセス
  • Dify の Knowledge Base API Key(Dify → Knowledge → Service API → API Key)

クイックスタート

1. クローンしてインストール
git clone https://github.com/salted-butter-joshua/dify-mcp.git
cd dify-mcp

python3.11 -m venv .venv

# Windows
.venv\Scripts\python.exe -m pip install -e .

# macOS / Linux
.venv/bin/python -m pip install -e .

インポートを確認します:

# Windows
.venv\Scripts\python.exe -c "import dify_mcp; print('OK')"

# macOS / Linux
.venv/bin/python -c "import dify_mcp; print('OK')"
2. 環境を設定

サンプル env ファイルをコピーして編集します:

cp .env.example .env
DIFY_API_BASE=http://your-dify-host/v1
DIFY_API_KEY=dataset-your-api-key
DIFY_ALLOWED_DATASETS=dataset-uuid-1,dataset-uuid-2
DIFY_TIMEOUT=30
DIFY_VERIFY_SSL=false
変数説明
DIFY_API_BASEDify Knowledge API のベース URL。例:http://192.168.1.100/v1
DIFY_API_KEYKnowledge Base API キー
DIFY_ALLOWED_DATASETS公開するデータセット UUID(カンマ区切り、必須)
DIFY_TIMEOUTHTTP タイムアウト(秒、デフォルト:30)
DIFY_VERIFY_SSLTLS 証明書を検証するかどうか(自己署名証明書の場合のデフォルト:false)

ヘルスチェックを実行します:

# Windows
.venv\Scripts\python.exe scripts/health_check.py

# macOS / Linux
.venv/bin/python scripts/health_check.py
3. Cursor に追加

MCP サーバーを手動で起動する必要はありません。Cursor が stdio 経由で自動的に起動します。

  1. Cursor Settings → MCP → Edit config を開きます
  2. MCP 設定ファイルの mcpServers に以下を追加します:
    • Windows:%USERPROFILE%\.cursor\mcp.json
    • macOS / Linux:~/.cursor/mcp.json
  3. パスと env 値を自分の環境に合わせて置き換えます
  4. Cursor を再起動します

全体の例は mcp.json.example を参照してください。

Windows の例:

{
  "mcpServers": {
    "dify-knowledge": {
      "command": "/absolute/path/to/dify-mcp/.venv/Scripts/python.exe",
      "args": ["-m", "dify_mcp.server"],
      "cwd": "/absolute/path/to/dify-mcp",
      "env": {
        "DIFY_API_BASE": "http://your-dify-host/v1",
        "DIFY_API_KEY": "dataset-your-api-key",
        "DIFY_ALLOWED_DATASETS": "dataset-uuid-1,dataset-uuid-2",
        "DIFY_TIMEOUT": "30",
        "DIFY_VERIFY_SSL": "false"
      }
    }
  }
}

macOS / Linux の例:

{
  "mcpServers": {
    "dify-knowledge": {
      "command": "/absolute/path/to/dify-mcp/.venv/bin/python",
      "args": ["-m", "dify_mcp.server"],
      "cwd": "/absolute/path/to/dify-mcp",
      "env": {
        "DIFY_API_BASE": "http://your-dify-host/v1",
        "DIFY_API_KEY": "dataset-your-api-key",
        "DIFY_ALLOWED_DATASETS": "dataset-uuid-1,dataset-uuid-2"
      }
    }
  }
}
4. Cursor で確認
  1. Cursor Settings → MCP → dify-knowledge が有効と表示されていることを確認します
  2. チャットで次を試します:
    • 利用可能な Dify ナレッジベースを一覧表示して
    • 「your query」でナレッジベースを検索して

MCP ツール

ツール説明
list_datasets許可リスト内のナレッジベースを一覧表示します
get_dataset1 つのデータセットのメタデータを取得します
search_knowledge関連するチャンクを取得します(主要な検索ツール)
list_documentsデータセット内のドキュメントを一覧表示します
list_document_segmentsドキュメントのテキストセグメントを一覧表示します

アーキテクチャ

Cursor (MCP client)
    │ stdio
    ▼
dify-mcp (local process)
    │ HTTPS / HTTP
    ▼
Dify Knowledge API (/v1/datasets/...)

MCP サーバーはマシン上でローカルに実行され、ネットワーク経由で Dify API を呼び出します。Dify からお使いのマシンに接続する必要はありません。

トラブルシューティング

問題原因対処方法
No matching distribution found for mcpPython < 3.11.venv で Python 3.11+ を使用します
MCP にエラー(赤色)が表示されるPython のパスが誤っている、キーが無効、またはネットワークの問題mcp.json のパスと env 変数を確認します
401 UnauthorizedAPI キーが無効Dify Service API パネルでキーを再生成します
Dataset not in allowed listUUID が DIFY_ALLOWED_DATASETS に含まれていないデータセット UUID を許可リストに追加します
ヘルスチェックで環境変数が見つからない.env が見つからないプロジェクトのルートに .env があることを確認します
接続タイムアウトDify に接続できないネットワーク/VPN/ファイアウォールを確認します

プロジェクト構成

dify-mcp/
├── src/dify_mcp/
│   ├── server.py        # MCP entry point
│   ├── config.py        # Settings and allowlist
│   ├── dify_client.py   # Dify Knowledge API client
│   └── formatters.py    # Response formatting
├── scripts/
│   └── health_check.py  # Connectivity test
├── mcp.json.example     # Cursor MCP config template
├── .env.example         # Environment variable template
└── Dify-API.md          # Local API path reference

API リファレンス

セキュリティに関する注意事項

  • .env や API キーをバージョン管理にコミットしないでください
  • 1 つの Knowledge Base API キーで、アカウント内のすべての表示可能なデータセットにアクセスできます。公開範囲を制限するには DIFY_ALLOWED_DATASETS を使用してください
  • MCP はローカルで実行することを推奨します。API キーは、ご自身のマシン上の mcp.json の env または .env にのみ保存してください

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。