Dify External Knowledge MCP Server
一個 Model Context Protocol (MCP) 伺服器,用於整合 Dify 外部知識庫 API,讓 AI Agent 能夠輕鬆查詢知識庫內容。
安裝
使用 npx (推薦)
npx @funtuantw/dify-external-knowledge-mcp
全域安裝
npm install -g @funtuantw/dify-external-knowledge-mcp
從源碼構建
git clone https://github.com/funtuantw/dify-external-knowledge-mcp.git
cd dify-external-knowledge-mcp
npm install
npm run build
功能特性
- 🔍 查詢 Dify 外部知識庫
- 📊 支援相關性分數閾值設定
- 🎯 支援元數據條件篩選
- 🔐 使用環境變數管理 API 憑證
- 📦 支援 npx 直接運行
- 🌐 知識庫 ID 透過環境變數配置,無需每次指定
配置
{
"mcpServers": {
"dify-knowledge": {
"command": "npx",
"args": ["@funtuantw/dify-external-knowledge-mcp"],
"env": {
"DIFY_KNOWLEDGE_ENDPOINT": "https://your-endpoint.com",
"DIFY_API_KEY": "your-api-key-here",
"DIFY_KNOWLEDGE_ID": "your-knowledge-id-here"
}
}
}
}
或者使用本地路徑(開發時):
{
"mcpServers": {
"dify-knowledge": {
"command": "node",
"args": ["/absolute/path/to/dify-external-knowledge-mcp/dist/index.js"],
"env": {
"DIFY_KNOWLEDGE_ENDPOINT": "https://your-endpoint.com",
"DIFY_API_KEY": "your-api-key-here",
"DIFY_KNOWLEDGE_ID": "your-knowledge-id-here"
}
}
}
}
使用命令列參數:
{
"mcpServers": {
"dify-knowledge": {
"command": "npx",
"args": [
"@funtuantw/dify-external-knowledge-mcp",
"--endpoint",
"https://your-endpoint.com",
"--api-key",
"your-api-key-here",
"--knowledge-id",
"your-knowledge-id-here"
]
}
}
}
使用方法
可用工具
query_dify_knowledge
查詢 Dify 外部知識庫以檢索相關資訊。
參數:
query(必需, string): 用戶的搜尋查詢或問題top_k(可選, number): 返回的最大結果數量(預設:5)score_threshold(可選, number): 最小相關性分數閾值,範圍 0-1(預設:0.5)metadata_condition(可選, object): 元數據篩選條件logical_operator(可選, string): "and" 或 "or"(預設:and)conditions(必需, array): 條件列表name(必需, string[]): 要篩選的元數據欄位名稱comparison_operator(必需, string): 比較運算符(contains, is, not contains, etc.)value(可選, string): 比較值
範例使用(通過 AI Agent):
請使用 query_dify_knowledge 工具查詢 "什麼是 Dify?"
範例輸出:
Found 2 result(s) for query: "什麼是 Dify?"
### Result 1 (Score: 0.980)
**Title**: knowledge.txt
**Content**:
Dify 是一個 LLMOps 平台,提供 GenAI 應用程序的創新引擎。
**Metadata**: {
"path": "s3://dify/knowledge.txt",
"description": "dify 知識文檔"
}
---
### Result 2 (Score: 0.660)
**Title**: introduce.txt
**Content**:
GenAI 應用程序的創新引擎
**Metadata**: {
"path": "s3://dify/introduce.txt",
"description": "dify 介紹"
}
---
開發
開發模式運行
npm run dev
構建專案
npm run build
運行構建版本
npm start
API 參考
本專案使用 Dify 外部知識庫 API。
支援的比較運算符
contains: 包含某個值not contains: 不包含某個值start with: 以某個值開頭end with: 以某個值結尾is: 等於某個值is not: 不等於某個值empty: 為空not empty: 不為空=: 等於≠: 不等於>: 大於<: 小於≥: 大於等於≤: 小於等於before: 在某個日期之前after: 在某個日期之後
錯誤處理
伺服器會處理以下錯誤情況:
- 1001: 無效的 Authorization 頭格式
- 1002: 授權失敗
- 2001: 知識庫不存在
- HTTP 403: 訪問被拒絕
- HTTP 500: 內部伺服器錯誤
專案結構
dify-external-knowledge-mcp/
├── src/
│ └── index.ts # MCP 伺服器主程式
├── dist/ # 編譯後的輸出
├── .env.example # 環境變數範例
├── .gitignore
├── package.json
├── tsconfig.json
├── plan.md # 專案計畫文檔
└── README.md
授權
MIT
貢獻
歡迎提交 Issue 和 Pull Request!