Milvus MCP Server
resmiCari, kueri, dan berinteraksi dengan data di Milvus Vector Database Anda.
Dokumentasi
Server MCP untuk Milvus
Model Context Protocol (MCP) adalah protokol terbuka yang memungkinkan integrasi mulus antara aplikasi LLM dengan sumber data dan alat eksternal. Baik Anda membangun IDE bertenaga AI, meningkatkan antarmuka obrolan, atau membuat alur kerja AI kustom, MCP menyediakan cara standar untuk menghubungkan LLM dengan konteks yang mereka butuhkan.
Repositori ini berisi server MCP yang menyediakan akses ke fungsionalitas basis data vektor Milvus.

Prasyarat
Sebelum menggunakan server MCP ini, pastikan Anda memiliki:
- Python 3.10 atau lebih tinggi
- Instans Milvus yang berjalan (lokal atau jarak jauh)
- uv terinstal (disarankan untuk menjalankan server)
Penggunaan
Cara yang disarankan untuk menggunakan server MCP ini adalah menjalankannya langsung dengan uv tanpa instalasi. Ini adalah cara Claude Desktop dan Cursor dikonfigurasi untuk menggunakannya dalam contoh di bawah.
Jika Anda ingin mengkloning repositori:
git clone https://github.com/zilliztech/mcp-server-milvus.git
cd mcp-server-milvus
Kemudian Anda dapat menjalankan server secara langsung:
uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530
Atau, Anda dapat mengubah file .env di direktori src/mcp_server_milvus/ untuk mengatur variabel lingkungan dan menjalankan server dengan perintah berikut:
uv run src/mcp_server_milvus/server.py
Penting: file .env akan memiliki prioritas lebih tinggi daripada argumen baris perintah.
Mode Berjalan
Server mendukung dua mode berjalan: stdio (default) dan SSE (Server-Sent Events).
Mode Stdio (Default)
-
Deskripsi: Berkomunikasi dengan klien melalui input/output standar. Ini adalah mode default jika tidak ada mode yang ditentukan.
-
Penggunaan:
uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530
Mode SSE
-
Deskripsi: Menggunakan HTTP Server-Sent Events untuk komunikasi. Mode ini memungkinkan banyak klien terhubung melalui HTTP dan cocok untuk aplikasi berbasis web.
-
Penggunaan:
uv run src/mcp_server_milvus/server.py --sse --milvus-uri http://localhost:19530 --port 8000--sse: Mengaktifkan mode SSE.--port: Menentukan port untuk server SSE (default: 8000).
-
Debugging dalam Mode SSE:
Jika Anda ingin melakukan debug dalam mode SSE, setelah memulai layanan SSE, masukkan perintah berikut:
mcp dev src/mcp_server_milvus/server.pyOutputnya akan mirip dengan:
% 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 πAnda kemudian dapat mengakses Inspektur MCP di
http://127.0.0.1:6274untuk pengujian.
Mode HTTP Streamable
-
Deskripsi: Menggunakan HTTP dengan dukungan streaming untuk komunikasi. Ini adalah transport yang direkomendasikan untuk deployment produksi dan mendukung operasi stateful maupun stateless.
-
Penggunaan:
uv run src/mcp_server_milvus/server.py --streamable-http --milvus-uri http://localhost:19530 --port 8000--streamable-http: Mengaktifkan mode HTTP Streamable.--port: Menentukan port untuk server (default: 8000).--stateless: Flag opsional untuk mode stateless (tanpa persistensi sesi).
-
Mode Stateless:
uv run src/mcp_server_milvus/server.py --streamable-http --stateless --milvus-uri http://localhost:19530 --port 8000
Aplikasi yang Didukung
Server MCP ini dapat digunakan dengan berbagai aplikasi LLM yang mendukung Model Context Protocol:
- Claude Desktop: Aplikasi desktop Anthropic untuk Claude
- Cursor: Editor kode bertenaga AI dengan dukungan MCP
- Klien MCP kustom: Aplikasi apa pun yang mengimplementasikan spesifikasi klien MCP
Penggunaan dengan Claude Desktop
Konfigurasi untuk Mode Berbeda
Konfigurasi Mode SSE
Ikuti langkah-langkah ini untuk mengonfigurasi Claude Desktop untuk mode SSE:
- Instal Claude Desktop dari https://claude.ai/download.
- Buka file konfigurasi Claude Desktop Anda:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- macOS:
- Tambahkan konfigurasi berikut untuk mode SSE:
{
"mcpServers": {
"milvus-sse": {
"url": "http://your_sse_host:port/sse",
"disabled": false,
"autoApprove": []
}
}
}
Konfigurasi Mode HTTP Streamable
{
"mcpServers": {
"milvus-streamable-http": {
"url": "http://your_host:port/mcp",
"disabled": false,
"autoApprove": []
}
}
}
- Mulai ulang Claude Desktop untuk menerapkan perubahan.
Konfigurasi Mode Stdio
Untuk mode stdio, ikuti langkah-langkah ini:
- Instal Claude Desktop dari https://claude.ai/download.
- Buka file konfigurasi Claude Desktop Anda:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- macOS:
- Tambahkan konfigurasi berikut untuk mode 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"
]
}
}
}
- Mulai ulang Claude Desktop untuk menerapkan perubahan.
Penggunaan dengan Cursor
Cursor juga mendukung MCP. Anda dapat mengintegrasikan server MCP Milvus Anda dengan Cursor dengan mengikuti langkah-langkah ini:
Langkah Integrasi
- Buka
Cursor Settings>MCP - Klik
Add new global MCP server - Setelah mengklik, secara otomatis akan mengarahkan Anda ke file
mcp.json, yang akan dibuat jika belum ada
Mengonfigurasi File mcp.json
Untuk Mode Stdio:
Timpa file mcp.json dengan konten berikut:
{
"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"
]
}
}
}
Untuk Mode SSE:
-
Mulai layanan dengan menjalankan perintah berikut:
uv run src/mcp_server_milvus/server.py --sse --milvus-uri http://your_sse_host --port portCatatan: Ganti
http://your_sse_hostdengan alamat host SSE Anda yang sebenarnya danportdengan nomor port spesifik yang Anda gunakan. -
Setelah layanan berjalan, timpa file
mcp.jsondengan konten berikut:{ "mcpServers": { "milvus-sse": { "url": "http://your_sse_host:port/sse", "disabled": false, "autoApprove": [] } } }
Untuk Mode HTTP Streamable:
-
Mulai layanan:
uv run src/mcp_server_milvus/server.py --streamable-http --milvus-uri http://your_host --port port -
Perbarui
mcp.json:{ "mcpServers": { "milvus-streamable-http": { "url": "http://your_host:port/mcp", "disabled": false, "autoApprove": [] } } }
Menyelesaikan Integrasi
Setelah menyelesaikan langkah-langkah di atas, mulai ulang Cursor atau muat ulang jendela untuk memastikan konfigurasi berlaku.
Memverifikasi Integrasi
Untuk memverifikasi bahwa Cursor telah berhasil terintegrasi dengan server MCP Milvus Anda:
- Buka
Cursor Settings>MCP - Periksa apakah "milvus", "milvus-sse", atau "milvus-streamable-http" muncul dalam daftar (tergantung mode yang Anda pilih)
- Konfirmasi bahwa alat yang relevan tercantum (misalnya, milvus_list_collections, milvus_vector_search, dll.)
- Jika server diaktifkan tetapi menunjukkan kesalahan, periksa bagian Pemecahan Masalah di bawah
Alat yang Tersedia
Server menyediakan alat-alat berikut:
Operasi Pencarian dan Kueri
-
milvus_text_search: Mencari dokumen menggunakan pencarian teks lengkap- Parameter:
collection_name: Nama koleksi untuk dicariquery_text: Teks yang akan dicarilimit: Jumlah maksimum hasil yang dikembalikan (default: 5)output_fields: Bidang yang disertakan dalam hasildrop_ratio: Proporsi istilah frekuensi rendah yang diabaikan (0.0-1.0) (default: 0.2)
- Parameter:
-
milvus_vector_search: Melakukan pencarian kemiripan vektor pada koleksi- Parameter:
collection_name: Nama koleksi untuk dicarivector: Vektor kuerivector_field: Nama bidang untuk pencarian vektor (default: "vector")limit: Jumlah maksimum hasil yang dikembalikan (default: 5)output_fields: Bidang yang disertakan dalam hasilfilter_expr: Ekspresi filtermetric_type: Metrik jarak (COSINE, L2, IP) (default: "COSINE")radius: Batas bawah opsional untuk pencarian rentang (default: None)range_filter: Batas atas opsional untuk pencarian rentang (default: None)
- Parameter:
-
milvus_hybrid_search: Melakukan pencarian hibrida pada koleksi- Parameter:
collection_name: Nama koleksi untuk dicariquery_text: Kueri teks untuk pencariantext_field: Nama bidang untuk pencarian teksvector: Vektor dari kueri teksvector_field: Nama bidang untuk pencarian vektorlimit: Jumlah maksimum hasil yang dikembalikan (default: 5)output_fields: Bidang yang disertakan dalam hasilfilter_expr: Ekspresi filtersparse_radius: Batas bawah opsional untuk pencarian rentang sparse (default: None)sparse_range_filter: Batas atas opsional untuk pencarian rentang sparse (default: None)dense_radius: Batas bawah opsional untuk pencarian rentang dense (default: None)dense_range_filter: Batas atas opsional untuk pencarian rentang dense (default: None)
- Parameter:
-
milvus_text_similarity_search: Melakukan pencarian kemiripan teks pada koleksiCatatan: Alat ini hanya didukung di Milvus 2.6.0 ke atas. Dan Anda perlu mengatur fungsi embedding di server Milvus. Lihat Fungsi Embedding untuk detail lebih lanjut.
- Parameter:
collection_name: Nama koleksi untuk dicariquery_text: Kueri teks untuk pencarian kemiripananns_field: Nama bidang untuk pencarian tekslimit: Jumlah maksimum hasil yang dikembalikan (default: 5)output_fields: Bidang yang disertakan dalam hasilmetric_type: Metrik jarak (COSINE, L2, IP) (default: "COSINE")filter_expr: Ekspresi filter opsionalradius: Batas bawah opsional untuk pencarian rentang (default: None)range_filter: Batas atas opsional untuk pencarian rentang (default: None)
- Parameter:
-
milvus_query: Kueri koleksi menggunakan ekspresi filter- Parameter:
collection_name: Nama koleksi untuk dikuerifilter_expr: Ekspresi filter (mis. 'age > 20')output_fields: Bidang yang disertakan dalam hasillimit: Jumlah maksimum hasil yang dikembalikan (default: 10)
- Parameter:
Manajemen Koleksi
-
milvus_list_collections: Mencantumkan semua koleksi dalam basis data -
milvus_create_collection: Membuat koleksi baru dengan pengaturan cepat atau skema kustom- Parameter:
collection_name: Nama untuk koleksi baruauto_id: apakah akan menghasilkan id secara otomatis, default Truedimension: dimensi vektor, default 768; untuk pengaturan cepat dan akan diabaikan jikafield_schemadisediakanprimary_field_name: nama bidang utama, default "id"; untuk pengaturan cepat dan akan diabaikan jikafield_schemadisediakanvector_field_name: nama bidang vektor, default "vector"; untuk pengaturan cepat dan akan diabaikan jikafield_schemadisediakanmetric_type: tipe metrik, default "COSINE"; untuk pengaturan cepat dan akan diabaikan jikafield_schemadisediakanfield_schema: Daftar skema bidang, setiap elemen adalah kamus dengan kunci berikut:name: nama bidangtype: tipe bidang
index_params: Daftar opsional parameter indeks, setiap elemen adalah kamus dengan kunci berikut:field_name: nama bidang yang akan diindeksindex_type: tipe indeks**kwargs: parameter indeks opsional lainnya
other_kwargs: Argumen kata kunci tambahan untuk pembuatan koleksi
- Parameter:
-
milvus_load_collection: Memuat koleksi ke dalam memori untuk pencarian dan kueri- Parameter:
collection_name: Nama koleksi yang akan dimuatreplica_number: Jumlah replika (default: 1)
- Parameter:
-
milvus_release_collection: Melepaskan koleksi dari memori- Parameter:
collection_name: Nama koleksi yang akan dilepaskan
- Parameter:
-
milvus_get_collection_info: Mencantumkan informasi detail seperti skema, properti, ID koleksi, dan metadata lainnya dari koleksi tertentu.- Parameter:
collection_name: Nama koleksi untuk mendapatkan informasi detail
- Parameter:
Operasi Data
-
milvus_insert_data: Memasukkan data ke dalam koleksi- Parameter:
collection_name: Nama koleksidata: Kamus yang memetakan nama bidang ke daftar nilai
- Parameter:
-
milvus_delete_entities: Menghapus entitas dari koleksi berdasarkan ekspresi filter- Parameter:
collection_name: Nama koleksifilter_expr: Ekspresi filter untuk memilih entitas yang akan dihapus
- Parameter:
Variabel Lingkungan
MILVUS_URI: URI server Milvus (dapat diatur sebagai pengganti --milvus-uri)MILVUS_TOKEN: Token autentikasi opsionalMILVUS_DB: Nama basis data (default "default")
Pengembangan
Untuk menjalankan server secara langsung:
uv run server.py --milvus-uri http://localhost:19530
Contoh
Menggunakan Claude Desktop
Contoh 1: Mencantumkan Koleksi
What are the collections I have in my Milvus DB?
Claude kemudian akan menggunakan MCP untuk memeriksa informasi ini di DB Milvus Anda.
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
Contoh 2: Mencari Dokumen
Find documents in my text_collection that mention "machine learning"
Claude akan menggunakan kemampuan pencarian teks lengkap Milvus untuk menemukan dokumen yang relevan:
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]
Menggunakan Cursor
Contoh: Membuat Koleksi
Di Cursor, Anda dapat bertanya:
Create a new collection called 'articles' in Milvus with fields for title (string), content (string), and a vector field (128 dimensions)
Cursor akan menggunakan server MCP untuk menjalankan operasi ini:
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]
Pemecahan Masalah
Masalah Umum
Kesalahan Koneksi
Jika Anda melihat kesalahan seperti "Failed to connect to Milvus server":
- Verifikasi bahwa instans Milvus Anda sedang berjalan:
docker ps(jika menggunakan Docker) - Periksa apakah URI sudah benar dalam konfigurasi Anda
- Pastikan tidak ada aturan firewall yang memblokir koneksi
- Coba gunakan
127.0.0.1alih-alihlocalhostdi URI
Masalah Autentikasi
Jika Anda melihat kesalahan autentikasi:
- Verifikasi bahwa
MILVUS_TOKENAnda sudah benar - Periksa apakah instans Milvus Anda memerlukan autentikasi
- Pastikan Anda memiliki izin yang tepat untuk operasi yang ingin Anda lakukan
Alat Tidak Ditemukan
Jika alat MCP tidak muncul di Claude Desktop atau Cursor:
- Mulai ulang aplikasi
- Periksa log server untuk melihat adanya kesalahan
- Verifikasi bahwa server MCP berjalan dengan benar
- Tekan tombol segarkan di pengaturan MCP (untuk Cursor)
Mendapatkan Bantuan
Jika Anda terus mengalami masalah:
- Periksa GitHub Issues untuk masalah serupa
- Bergabunglah dengan Milvus Community Discord untuk mendapatkan dukungan
- Ajukan isu baru dengan informasi terperinci tentang masalah Anda