Milvus
chính thứcTìm kiếm, truy vấn và tương tác với dữ liệu trong Cơ sở dữ liệu Vector Milvus của bạn.
Bạn có thể làm gì với Milvus MCP?
- Liệt kê tất cả các collection — Yêu cầu trợ lý liệt kê mọi collection trong cơ sở dữ liệu Milvus của bạn bằng cách sử dụng
milvus_list_collections. - Tạo collection với schema tùy chỉnh — Xác định tên trường, kiểu dữ liệu và kích thước vector khi tạo collection mới thông qua
milvus_create_collection. - Thực hiện tìm kiếm tương tự vector — Tìm kiếm trong collection các vector gần nhất với vector truy vấn cho trước bằng
milvus_vector_search. - Thực hiện tìm kiếm toàn văn — Tìm tài liệu chứa văn bản cụ thể trong collection bằng cách sử dụng
milvus_text_search. - Chèn dữ liệu vào collection — Thêm bản ghi bằng cách cung cấp ánh xạ trường-giá trị thông qua
milvus_insert_data. - Kiểm tra schema và siêu dữ liệu của collection — Truy xuất thông tin chi tiết về các trường, thuộc tính và ID của collection bằng
milvus_get_collection_info.
Tài liệu
Máy chủ MCP cho Milvus
Giao thức Ngữ cảnh Mô hình (MCP) là một giao thức mở cho phép tích hợp liền mạch giữa các ứng dụng LLM với các nguồn dữ liệu và công cụ bên ngoài. Dù bạn đang xây dựng một IDE hỗ trợ AI, nâng cao giao diện trò chuyện hay tạo quy trình làm việc AI tùy chỉnh, MCP cung cấp một cách thức chuẩn hóa để kết nối LLM với ngữ cảnh chúng cần.
Kho lưu trữ này chứa một máy chủ MCP cung cấp quyền truy cập vào chức năng cơ sở dữ liệu vector Milvus.

Điều kiện tiên quyết
Trước khi sử dụng máy chủ MCP này, hãy đảm bảo bạn có:
- Python 3.10 trở lên
- Một phiên bản Milvus đang chạy (cục bộ hoặc từ xa)
- uv đã được cài đặt (khuyến nghị để chạy máy chủ)
Cách sử dụng
Cách khuyến nghị để sử dụng máy chủ MCP này là chạy trực tiếp với uv mà không cần cài đặt. Đây là cách cả Claude Desktop và Cursor được cấu hình để sử dụng trong các ví dụ bên dưới.
Nếu bạn muốn sao chép kho lưu trữ:
git clone https://github.com/zilliztech/mcp-server-milvus.git
cd mcp-server-milvus
Sau đó bạn có thể chạy máy chủ trực tiếp:
uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530
Ngoài ra, bạn có thể thay đổi tệp .env trong thư mục src/mcp_server_milvus/ để đặt các biến môi trường và chạy máy chủ bằng lệnh sau:
uv run src/mcp_server_milvus/server.py
Quan trọng: tệp .env sẽ có mức ưu tiên cao hơn các đối số dòng lệnh.
Chế độ chạy
Máy chủ hỗ trợ hai chế độ chạy: stdio (mặc định) và SSE (Server-Sent Events).
Chế độ Stdio (Mặc định)
-
Mô tả: Giao tiếp với máy khách qua đầu vào/đầu ra tiêu chuẩn. Đây là chế độ mặc định nếu không có chế độ nào được chỉ định.
-
Cách sử dụng:
uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530
Chế độ SSE
-
Mô tả: Sử dụng HTTP Server-Sent Events để giao tiếp. Chế độ này cho phép nhiều máy khách kết nối qua HTTP và phù hợp cho các ứng dụng dựa trên web.
-
Cách sử dụng:
uv run src/mcp_server_milvus/server.py --sse --milvus-uri http://localhost:19530 --port 8000--sse: Bật chế độ SSE.--port: Chỉ định cổng cho máy chủ SSE (mặc định: 8000).
-
Gỡ lỗi ở chế độ SSE:
Nếu bạn muốn gỡ lỗi ở chế độ SSE, sau khi khởi động dịch vụ SSE, hãy nhập lệnh sau:
mcp dev src/mcp_server_milvus/server.pyĐầu ra sẽ tương tự như:
% mcp dev src/mcp_server_milvus/merged_server.py Starting MCP inspector... ⚙️ Proxy server listening on port 6277 🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀Sau đó bạn có thể truy cập MCP Inspector tại
http://127.0.0.1:6274để kiểm tra.
Chế độ HTTP có thể truyền phát
-
Mô tả: Sử dụng HTTP với hỗ trợ truyền phát để giao tiếp. Đây là phương thức truyền tải được khuyến nghị cho triển khai sản xuất và hỗ trợ cả hoạt động có trạng thái và không trạng thái.
-
Cách sử dụng:
uv run src/mcp_server_milvus/server.py --streamable-http --milvus-uri http://localhost:19530 --port 8000--streamable-http: Bật chế độ HTTP có thể truyền phát.--port: Chỉ định cổng cho máy chủ (mặc định: 8000).--stateless: Cờ tùy chọn cho chế độ không trạng thái (không duy trì phiên).
-
Chế độ không trạng thái:
uv run src/mcp_server_milvus/server.py --streamable-http --stateless --milvus-uri http://localhost:19530 --port 8000
Ứng dụng được hỗ trợ
Máy chủ MCP này có thể được sử dụng với nhiều ứng dụng LLM khác nhau hỗ trợ Giao thức Ngữ cảnh Mô hình:
- Claude Desktop: Ứng dụng máy tính để bàn của Anthropic dành cho Claude
- Cursor: Trình soạn thảo mã hỗ trợ AI với hỗ trợ MCP
- Máy khách MCP tùy chỉnh: Bất kỳ ứng dụng nào triển khai đặc tả máy khách MCP
Sử dụng với Claude Desktop
Cấu hình cho các chế độ khác nhau
Cấu hình chế độ SSE
Thực hiện theo các bước sau để cấu hình Claude Desktop cho chế độ SSE:
- Cài đặt Claude Desktop từ https://claude.ai/download.
- Mở tệp cấu hình Claude Desktop của bạn:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- macOS:
- Thêm cấu hình sau cho chế độ SSE:
{
"mcpServers": {
"milvus-sse": {
"url": "http://your_sse_host:port/sse",
"disabled": false,
"autoApprove": []
}
}
}
Cấu hình chế độ HTTP có thể truyền phát
{
"mcpServers": {
"milvus-streamable-http": {
"url": "http://your_host:port/mcp",
"disabled": false,
"autoApprove": []
}
}
}
- Khởi động lại Claude Desktop để áp dụng các thay đổi.
Cấu hình chế độ Stdio
Đối với chế độ stdio, thực hiện theo các bước sau:
- Cài đặt Claude Desktop từ https://claude.ai/download.
- Mở tệp cấu hình Claude Desktop của bạn:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- macOS:
- Thêm cấu hình sau cho chế độ stdio:
{
"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"
]
}
}
}
- Khởi động lại Claude Desktop để áp dụng các thay đổi.
Sử dụng với Cursor
Cursor cũng hỗ trợ các công cụ MCP. Bạn có thể tích hợp máy chủ Milvus MCP của mình với Cursor bằng cách thực hiện theo các bước sau:
Các bước tích hợp
- Mở
Cursor Settings>MCP - Nhấp vào
Add new global MCP server - Sau khi nhấp, nó sẽ tự động chuyển hướng bạn đến tệp
mcp.json, tệp này sẽ được tạo nếu chưa tồn tại
Cấu hình tệp mcp.json
Đối với chế độ Stdio:
Ghi đè tệp mcp.json bằng nội dung sau:
{
"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"
]
}
}
}
Đối với chế độ SSE:
-
Khởi động dịch vụ bằng cách chạy lệnh sau:
uv run src/mcp_server_milvus/server.py --sse --milvus-uri http://your_sse_host --port portLưu ý: Thay thế
http://your_sse_hostbằng địa chỉ máy chủ SSE thực tế của bạn vàportbằng số cổng cụ thể bạn đang sử dụng. -
Khi dịch vụ đã hoạt động, ghi đè tệp
mcp.jsonbằng nội dung sau:{ "mcpServers": { "milvus-sse": { "url": "http://your_sse_host:port/sse", "disabled": false, "autoApprove": [] } } }
Đối với chế độ HTTP có thể truyền phát:
-
Khởi động dịch vụ:
uv run src/mcp_server_milvus/server.py --streamable-http --milvus-uri http://your_host --port port -
Cập nhật
mcp.json:{ "mcpServers": { "milvus-streamable-http": { "url": "http://your_host:port/mcp", "disabled": false, "autoApprove": [] } } }
Hoàn tất tích hợp
Sau khi hoàn thành các bước trên, khởi động lại Cursor hoặc tải lại cửa sổ để đảm bảo cấu hình có hiệu lực.
Xác minh tích hợp
Để xác minh rằng Cursor đã tích hợp thành công với máy chủ Milvus MCP của bạn:
- Mở
Cursor Settings>MCP - Kiểm tra xem "milvus", "milvus-sse" hoặc "milvus-streamable-http" có xuất hiện trong danh sách không (tùy thuộc vào chế độ bạn đã chọn)
- Xác nhận rằng các công cụ liên quan được liệt kê (ví dụ: milvus_list_collections, milvus_vector_search, v.v.)
- Nếu máy chủ được bật nhưng hiển thị lỗi, hãy kiểm tra phần Khắc phục sự cố bên dưới
Công cụ có sẵn
Máy chủ cung cấp các công cụ sau:
Thao tác tìm kiếm và truy vấn
-
milvus_text_search: Tìm kiếm tài liệu bằng tìm kiếm toàn văn- Tham số:
collection_name: Tên của collection cần tìm kiếmquery_text: Văn bản cần tìm kiếmlimit: Số lượng kết quả tối đa trả về (mặc định: 5)output_fields: Các trường cần bao gồm trong kết quảdrop_ratio: Tỷ lệ các thuật ngữ tần suất thấp cần bỏ qua (0.0-1.0) (mặc định: 0.2)
- Tham số:
-
milvus_vector_search: Thực hiện tìm kiếm tương đồng vector trên một collection- Tham số:
collection_name: Tên của collection cần tìm kiếmvector: Vector truy vấnvector_field: Tên trường cho tìm kiếm vector (mặc định: "vector")limit: Số lượng kết quả tối đa trả về (mặc định: 5)output_fields: Các trường cần bao gồm trong kết quảfilter_expr: Biểu thức lọcmetric_type: Độ đo khoảng cách (COSINE, L2, IP) (mặc định: "COSINE")radius: Giới hạn dưới tùy chọn cho tìm kiếm phạm vi (mặc định: None)range_filter: Giới hạn trên tùy chọn cho tìm kiếm phạm vi (mặc định: None)
- Tham số:
-
milvus_hybrid_search: Thực hiện tìm kiếm kết hợp trên một collection- Tham số:
collection_name: Tên của collection cần tìm kiếmquery_text: Truy vấn văn bản để tìm kiếmtext_field: Tên trường cho tìm kiếm văn bảnvector: Vector của truy vấn văn bảnvector_field: Tên trường cho tìm kiếm vectorlimit: Số lượng kết quả tối đa trả về (mặc định: 5)output_fields: Các trường cần bao gồm trong kết quảfilter_expr: Biểu thức lọcsparse_radius: Giới hạn dưới tùy chọn cho tìm kiếm phạm vi thưa (mặc định: None)sparse_range_filter: Giới hạn trên tùy chọn cho tìm kiếm phạm vi thưa (mặc định: None)dense_radius: Giới hạn dưới tùy chọn cho tìm kiếm phạm vi dày đặc (mặc định: None)dense_range_filter: Giới hạn trên tùy chọn cho tìm kiếm phạm vi dày đặc (mặc định: None)
- Tham số:
-
milvus_text_similarity_search: Thực hiện tìm kiếm tương đồng văn bản trên một collectionLưu ý: Công cụ này chỉ được hỗ trợ trong Milvus 2.6.0 trở lên. Và bạn cần đặt hàm nhúng tại máy chủ Milvus. Xem Hàm nhúng để biết thêm chi tiết.
- Tham số:
collection_name: Tên của collection cần tìm kiếmquery_text: Truy vấn văn bản cho tìm kiếm tương đồnganns_field: Tên trường cho tìm kiếm văn bảnlimit: Số lượng kết quả tối đa trả về (mặc định: 5)output_fields: Các trường cần bao gồm trong kết quảmetric_type: Độ đo khoảng cách (COSINE, L2, IP) (mặc định: "COSINE")filter_expr: Biểu thức lọc tùy chọnradius: Giới hạn dưới tùy chọn cho tìm kiếm phạm vi (mặc định: None)range_filter: Giới hạn trên tùy chọn cho tìm kiếm phạm vi (mặc định: None)
- Tham số:
-
milvus_query: Truy vấn collection sử dụng biểu thức lọc- Tham số:
collection_name: Tên của collection cần truy vấnfilter_expr: Biểu thức lọc (ví dụ: 'age > 20')output_fields: Các trường cần bao gồm trong kết quảlimit: Số lượng kết quả tối đa trả về (mặc định: 10)
- Tham số:
Quản lý Collection
-
milvus_list_collections: Liệt kê tất cả các collection trong cơ sở dữ liệu -
milvus_create_collection: Tạo một collection mới với thiết lập nhanh hoặc lược đồ tùy chỉnh- Tham số:
collection_name: Tên cho collection mớiauto_id: có tự động tạo id hay không, mặc định là Truedimension: số chiều vector, mặc định là 768; dành cho thiết lập nhanh và sẽ bị bỏ qua nếufield_schemađược cung cấpprimary_field_name: tên của trường chính, mặc định là "id"; dành cho thiết lập nhanh và sẽ bị bỏ qua nếufield_schemađược cung cấpvector_field_name: tên của trường vector, mặc định là "vector"; dành cho thiết lập nhanh và sẽ bị bỏ qua nếufield_schemađược cung cấpmetric_type: loại độ đo, mặc định là "COSINE"; dành cho thiết lập nhanh và sẽ bị bỏ qua nếufield_schemađược cung cấpfield_schema: Danh sách lược đồ trường, mỗi phần tử là một từ điển với các khóa sau:name: tên của trườngtype: loại của trường
index_params: Danh sách tùy chọn các tham số chỉ mục, mỗi phần tử là một từ điển với các khóa sau:field_name: tên của trường cần đánh chỉ mụcindex_type: loại chỉ mục**kwargs: các tham số chỉ mục tùy chọn khác
other_kwargs: Các đối số từ khóa bổ sung cho việc tạo collection
- Tham số:
-
milvus_load_collection: Tải một collection vào bộ nhớ để tìm kiếm và truy vấn- Tham số:
collection_name: Tên của collection cần tảireplica_number: Số lượng bản sao (mặc định: 1)
- Tham số:
-
milvus_release_collection: Giải phóng một collection khỏi bộ nhớ- Tham số:
collection_name: Tên của collection cần giải phóng
- Tham số:
-
milvus_get_collection_info: Liệt kê thông tin chi tiết như lược đồ, thuộc tính, ID collection và siêu dữ liệu khác của một collection cụ thể.- Tham số:
collection_name: Tên của collection cần lấy thông tin chi tiết
- Tham số:
Thao tác dữ liệu
-
milvus_insert_data: Chèn dữ liệu vào một collection- Tham số:
collection_name: Tên của collectiondata: Từ điển ánh xạ tên trường tới danh sách các giá trị
- Tham số:
-
milvus_delete_entities: Xóa các thực thể khỏi collection dựa trên biểu thức lọc- Tham số:
collection_name: Tên của collectionfilter_expr: Biểu thức lọc để chọn các thực thể cần xóa
- Tham số:
Biến môi trường
MILVUS_URI: URI máy chủ Milvus (có thể đặt thay vì --milvus-uri)MILVUS_TOKEN: Mã thông báo xác thực tùy chọnMILVUS_DB: Tên cơ sở dữ liệu (mặc định là "default")
Phát triển
Để chạy máy chủ trực tiếp:
uv run server.py --milvus-uri http://localhost:19530
Ví dụ
Sử dụng Claude Desktop
Ví dụ 1: Liệt kê các Collection
What are the collections I have in my Milvus DB?
Claude sau đó sẽ sử dụng MCP để kiểm tra thông tin này trên Milvus DB của bạn.
I'll check what collections are available in your Milvus database.
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
Ví dụ 2: Tìm kiếm Tài liệu
Find documents in my text_collection that mention "machine learning"
Claude sẽ sử dụng khả năng tìm kiếm toàn văn của Milvus để tìm các tài liệu liên quan:
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]
Sử dụng Cursor
Ví dụ: Tạo một Collection
Trong Cursor, bạn có thể yêu cầu:
Create a new collection called 'articles' in Milvus with fields for title (string), content (string), and a vector field (128 dimensions)
Cursor sẽ sử dụng máy chủ MCP để thực thi thao tác này:
I'll create a new collection called 'articles' with the specified fields.
Collection 'articles' has been created successfully with the following schema:
- title: string
- content: string
- vector: float vector[128]
Khắc phục sự cố
Các vấn đề thường gặp
Lỗi kết nối
Nếu bạn thấy lỗi như "Failed to connect to Milvus server":
- Xác minh phiên bản Milvus của bạn đang chạy:
docker ps(nếu dùng Docker) - Kiểm tra URI đã chính xác trong cấu hình của bạn chưa
- Đảm bảo không có quy tắc tường lửa nào chặn kết nối
- Thử dùng
127.0.0.1thay vìlocalhosttrong URI
Vấn đề xác thực
Nếu bạn thấy lỗi xác thực:
- Xác minh
MILVUS_TOKENcủa bạn là chính xác - Kiểm tra xem phiên bản Milvus của bạn có yêu cầu xác thực không
- Đảm bảo bạn có quyền phù hợp cho các thao tác bạn đang cố thực hiện
Không tìm thấy công cụ
Nếu các công cụ MCP không xuất hiện trong Claude Desktop hoặc Cursor:
- Khởi động lại ứng dụng
- Kiểm tra nhật ký máy chủ để tìm lỗi
- Xác minh máy chủ MCP đang chạy đúng cách
- Nhấn nút làm mới trong cài đặt MCP (đối với Cursor)
Nhận trợ giúp
Nếu bạn vẫn gặp sự cố:
- Kiểm tra GitHub Issues để tìm các vấn đề tương tự
- Tham gia Milvus Community Discord để được hỗ trợ
- Tạo một issue mới với thông tin chi tiết về vấn đề của bạn