MCP + Milvus:連結 AI 與向量資料庫
簡介
Model Context Protocol (MCP)是一種開放式通訊協定,可讓 Claude 和 Cursor 等 AI 應用程式與外部資料來源和工具進行無縫互動。無論您是要建立自訂的 AI 應用程式、整合 AI 工作流程或強化聊天介面,MCP 都提供了標準化的方式來連接大型語言模型 (LLM) 與相關的情境資料。
本教學教導您如何為 Milvus 設定 MCP 伺服器,讓 AI 應用程式可以執行向量搜尋、管理集合,並使用自然語言指令擷取資料,而無需撰寫自訂資料庫查詢。
先決條件
在設定 MCP 伺服器之前,請確保您擁有
開始使用
使用此 MCP 伺服器的建議方式是直接使用 uv 執行,無須安裝。在下面的例子中,Claude Desktop 和 Cursor 都是這樣配置使用它的。
如果您想要克隆資源庫:
git clone https://github.com/zilliztech/mcp-server-milvus.git
cd mcp-server-milvus
則可以直接執行伺服器:
uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530
支援的應用程式
此 MCP 伺服器可與支援模型上下文通訊協定的各種 AI 應用程式搭配使用,例如
- Claude Desktop:Anthropic 的 Claude 桌面應用程式
- Cursor:在其 Composer 功能中支援 MCP 的 AI 程式碼編輯器
- 其他自訂MCP 用戶端 任何實作 MCP 用戶端規格的應用程式
在 Claude Desktop 中使用 MCP
- 安裝Claude Desktop。
- 開啟 Claude 配置檔案:
- 在 macOS 上:
~/Library/Application Support/Claude/claude_desktop_config.json
- 在 macOS 上:
- 新增下列設定:
{
"mcpServers": {
"milvus": {
"command": "/PATH/TO/uv",
"args": [
"--directory",
"/path/to/mcp-server-milvus/src/mcp_server_milvus",
"run",
"server.py",
"--milvus-uri",
"http://localhost:19530"
]
}
}
}
- 重新啟動 Claude Desktop 以套用變更。
在 Cursor 中使用 MCP
Cursor也透過 Composer 中的 Agent 功能支援 MCP 工具。您可以透過兩種方式將 Milvus MCP 伺服器新增至 Cursor:
選項 1:使用 Cursor 設定 UI
- 開啟
Cursor Settings→Features→MCP。 - 按一下
+ Add New MCP Server。 - 填寫
- 類型:
stdio - 名稱:
milvus - 指令:
/PATH/TO/uv --directory /path/to/mcp-server-milvus/src/mcp_server_milvus run server.py --milvus-uri http://127.0.0.1:19530 - ⚠️ 提示:使用
127.0.0.1而非localhost,以避免潛在的 DNS 解析問題。
- 類型:
選項 2:使用專案特定組態 (建議)
- 在專案根目錄中建立
.cursor/mcp.json檔案:
{
"mcpServers": {
"milvus": {
"command": "/PATH/TO/uv",
"args": [
"--directory",
"/path/to/mcp-server-milvus/src/mcp_server_milvus",
"run",
"server.py",
"--milvus-uri",
"http://127.0.0.1:19530"
]
}
}
}
- 重新啟動 Cursor 以套用組態。
新增伺服器後,您可能需要按下 MCP 設定中的刷新按鈕,以填充工具清單。當與您的查詢相關時,Composer Agent 會自動使用 Milvus 工具。
驗證整合
確保 MCP 伺服器設定正確:
針對游標
- 前往
Cursor Settings→Features→MCP。 - 確認
"Milvus"出現在 MCP 伺服器清單中。 - 檢查是否列出 Milvus 工具 (例如
milvus_list_collections,milvus_vector_search)。 - 如果出現錯誤,請參閱下面的疑難排解部分。
適用於 Milvus 的 MCP 伺服器工具
此 MCP 伺服器提供多種工具,用於搜尋、查詢和管理 Milvus 中的向量資料。如需詳細資訊,請參閱mcp-server-milvus文件。
🔍 搜尋和查詢工具
milvus-text-search→ 使用全文檢索搜尋文件。milvus-vector-search→ 在資料集中執行向量相似性搜尋。milvus-hybrid-search→ 執行結合向量相似性和屬性篩選的混合搜尋。milvus-multi-vector-search→ 使用多個查詢向量執行向量相似性搜尋。milvus-query→ 使用篩選表達式查詢集合。milvus-count→ 計算集合中的實體。
📁 集合管理
milvus-list-collections→ 列出資料庫中的所有集合。milvus-collection-info→ 取得關於集合的詳細資訊。milvus-get-collection-stats→ 取得有關集合的統計資料。milvus-create-collection→ 以指定的模式建立新的集合。milvus-load-collection→ 將集合載入記憶體以進行搜尋和查詢。milvus-release-collection→ 從記憶體釋放集合。milvus-get-query-segment-info→ 取得查詢區段的資訊。milvus-get-collection-loading-progress→ 取得集合的載入進度。
資料操作
milvus-insert-data→ 將資料插入集合。milvus-bulk-insert→ 分批插入資料以獲得更好的效能。milvus-upsert-data→ 將資料上插入集合(如果存在,則插入或更新)。milvus-delete-entities→ 根據篩選表達式從集合中刪除實體。milvus-create-dynamic-field→ 將動態欄位新增至現有的集合。
⚙️ 索引管理
milvus-create-index→ 在向量欄位上建立索引。milvus-get-index-info→ 獲取關於集合中索引的資訊。
環境變數
MILVUS_URI→ Milvus 伺服器 URI (可以設定為--milvus-uri)。MILVUS_TOKEN→ 可選的驗證標記。MILVUS_DB→ 資料庫名稱(預設為 "default")。
開發
直接執行伺服器:
uv run server.py --milvus-uri http://localhost:19530
範例
使用 Claude 桌面
範例 1:列出集合
What are the collections I have in my Milvus DB?
Claude 然後使用 MCP 在我們的 Milvus DB 上檢查這些資訊。
I'll check what collections are available in your Milvus database.
> View result from milvus-list-collections from milvus (local)
Here are the collections in your Milvus database:
1. rag_demo
2. test
3. chat_messages
4. text_collection
5. image_collection
6. customized_setup
7. streaming_rag_demo
範例 2:搜尋文件
Find documents in my text_collection that mention "machine learning"
Claude 將使用 Milvus 的全文搜尋功能來尋找相關文件:
I'll search for documents about machine learning in your text_collection.
> View result from milvus-text-search from milvus (local)
Here are the documents I found that mention machine learning:
[Results will appear here based on your actual data]
使用游標
範例:建立收藏集
在 Cursor 的 Composer 中,您可以詢問:
Create a new collection called 'articles' in Milvus with fields for title (string), content (string), and a vector field (128 dimensions)
Cursor 將使用 MCP 伺服器來執行此操作:
I'll create a new collection called 'articles' with the specified fields.
> View result from milvus-create-collection from milvus (local)
Collection 'articles' has been created successfully with the following schema:
- title: string
- content: string
- vector: float vector[128]
疑難排解
常見問題
連線錯誤
如果您看到類似 "Failed to connect to Milvus server"(連接 Milvus 伺服器失敗)的錯誤:
- 確認您的 Milvus 實例正在執行:
docker ps(如果使用 Docker) - 檢查配置中的 URI 是否正確
- 確保沒有防火牆規則阻擋連線
- 嘗試在 URI 中使用
127.0.0.1而非localhost
驗證問題
如果您看到驗證錯誤
- 驗證您的
MILVUS_TOKEN是否正確 - 檢查您的 Milvus 實例是否需要驗證
- 確保您有正確的權限來執行您要執行的操作
找不到工具
如果 MCP 工具沒有出現在 Claude Desktop 或 Cursor:
- 重新啟動應用程式
- 檢查伺服器日誌是否有任何錯誤
- 驗證 MCP 伺服器是否正常執行
- 按下 MCP 設定中的刷新按鈕(適用於 Cursor)
取得協助
如果您繼續遇到問題
- 檢查GitHub Issues中的類似問題
- 加入Zilliz 社群 Discord以獲得支援
- 提交一個新的問題,並提供有關您問題的詳細資訊
總結
依照本教學,您現在已經可以執行MCP 伺服器,在 Milvus 中啟用 AI 驅動的向量搜尋。無論您使用的是Claude Desktop或Cursor,現在都可以使用自然語言指令來查詢、管理和搜尋 Milvus 資料庫,而無需撰寫資料庫程式碼!