
Milvus MCP Server
OfficialConnect LLMs to the Milvus vector database for vector, text, and hybrid search plus collection management.
Add to your client
Copy the config for your MCP client and paste it into its config file.
Paste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"milvus-mcp-server": {
"command": "/PATH/TO/uv",
"args": [
"--directory",
"/path/to/mcp-server-milvus/src/mcp_server_milvus",
"run",
"server.py",
"--milvus-uri",
"http://localhost:19530"
]
}
}
}Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf
Before you start
- Python 3.10 or higher
- A running Milvus instance (local or remote)
- uv installed (recommended for running the server)
About Milvus MCP Server
MCP Server for Milvus provides access to Milvus vector database functionality from LLM applications that support the Model Context Protocol. It offers search and query operations (vector, text, hybrid, text-similarity, and filter-based queries), collection management (list, create, load, release, get info), and data operations (insert, delete). The server runs directly with uv and supports stdio, SSE, and Streamable HTTP transports, connecting to a local or remote Milvus instance via a URI and optional token.
Tools & capabilities (12)
milvus_text_searchSearch for documents using full text search. Parameters: collection_name, query_text, limit (default 5), output_fields, drop_ratio (proportion of low-frequency terms to ignore, 0.0-1.0, default 0.2).
milvus_vector_searchPerform vector similarity search on a collection. Parameters: collection_name, vector, vector_field (default 'vector'), limit (default 5), output_fields, filter_expr, metric_type (COSINE, L2, IP; default COSINE), radius, range_filter.
milvus_hybrid_searchPerform hybrid (text + vector) search on a collection. Parameters: collection_name, query_text, text_field, vector, vector_field, limit (default 5), output_fields, filter_expr, sparse_radius, sparse_range_filter, dense_radius, dense_range_filter.
milvus_text_similarity_searchPerform text similarity search on a collection (Milvus 2.6.0+ only; requires an embedding function set on the Milvus server). Parameters: collection_name, query_text, anns_field, limit (default 5), output_fields, metric_type (default COSINE), filter_expr, radius, range_filter.
milvus_queryQuery a collection using filter expressions. Parameters: collection_name, filter_expr (e.g. 'age > 20'), output_fields, limit (default 10).
milvus_list_collectionsList all collections in the database.
milvus_create_collectionCreate a new collection with quick setup or a customized schema. Parameters include collection_name, auto_id (default True), dimension (default 768), primary_field_name (default 'id'), vector_field_name (default 'vector'), metric_type (default COSINE), field_schema, index_params, and other_kwargs.
milvus_load_collectionLoad a collection into memory for search and query. Parameters: collection_name, replica_number (default 1).
milvus_release_collectionRelease a collection from memory. Parameters: collection_name.
milvus_get_collection_infoList detailed information such as schema, properties, collection ID, and other metadata of a specific collection. Parameters: collection_name.
milvus_insert_dataInsert data into a collection. Parameters: collection_name, data (dictionary mapping field names to lists of values).
milvus_delete_entitiesDelete entities from a collection based on a filter expression. Parameters: collection_name, filter_expr.
What this server can do
Milvus MCP Server provides tools for these capabilities — tap one to see every MCP server that does the same:
When to use it
- Powering retrieval-augmented generation (RAG) by letting an LLM search a Milvus vector store
- Running vector, full-text, or hybrid similarity search over collections from a chat or IDE assistant
- Managing Milvus collections (create, load, release, inspect) conversationally
- Inserting and deleting records in Milvus through natural-language requests
Security notes
Authentication to Milvus is optional and configured via the MILVUS_TOKEN environment variable. If your Milvus instance requires auth, set MILVUS_TOKEN; ensure the configured account has only the permissions needed for the operations you intend to perform. Connection URIs and tokens are passed via CLI args or a local .env file in src/mcp_server_milvus/.
Milvus MCP Server FAQ
Which transports does the server support?
Three: stdio (default), SSE (HTTP Server-Sent Events), and Streamable HTTP (recommended for production, with an optional stateless mode). The transport is selected with CLI flags such as --sse or --streamable-http.
How do I authenticate to Milvus?
Authentication is optional. Set the MILVUS_TOKEN environment variable if your Milvus instance requires it. The Milvus URI is set with --milvus-uri or the MILVUS_URI variable, and the database with MILVUS_DB (defaults to 'default').
Do I need to install the package?
No. The recommended approach is to clone the repo and run the server directly with uv (e.g. uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530); both Claude Desktop and Cursor are configured to launch it this way.
What takes priority, the .env file or command-line arguments?
The .env file in src/mcp_server_milvus/ has higher priority than command-line arguments.
Alternatives to Milvus MCP Server
Compare all alternatives →Google's official MCP server with prebuilt BigQuery tools, querying datasets via Application Default Credentials.
Read/write Postgres access plus index tuning, EXPLAIN plans, and database health analysis for AI agents.
Official Supabase server: manage tables, run SQL, branches, configs and edge functions from your AI client.
Compare Milvus MCP Server with: