Milvus MCP Server
官方在您的Milvus向量数据库中搜索、查询和交互数据。
文档
用于 Milvus 的 MCP 服务器
模型上下文协议 (MCP) 是一个开放协议,可实现 LLM 应用程序与外部数据源和工具之间的无缝集成。无论您是在构建 AI 驱动的 IDE、增强聊天界面,还是创建自定义 AI 工作流,MCP 都提供了一种标准化的方式,将 LLM 与其所需的上下文连接起来。
此仓库包含一个 MCP 服务器,提供对 Milvus 向量数据库功能的访问。

先决条件
在使用此 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
或者,您可以更改 src/mcp_server_milvus/ 目录中的 .env 文件来设置环境变量,并使用以下命令运行服务器:
uv run src/mcp_server_milvus/server.py
重要提示:.env 文件的优先级高于命令行参数。
运行模式
服务器支持两种运行模式:stdio(默认)和 SSE(服务器发送事件)。
Stdio 模式(默认)
-
描述:通过标准输入/输出与客户端通信。如果未指定模式,这是默认模式。
-
用法:
uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530
SSE 模式
-
描述:使用 HTTP 服务器发送事件进行通信。此模式允许多个客户端通过 HTTP 连接,适用于基于 Web 的应用程序。
-
用法:
uv run src/mcp_server_milvus/server.py --sse --milvus-uri http://localhost:19530 --port 8000--sse:启用 SSE 模式。--port:指定 SSE 服务器的端口(默认:8000)。
-
在 SSE 模式下调试:
如果您想在 SSE 模式下调试,启动 SSE 服务后,输入以下命令:
mcp dev src/mcp_server_milvus/server.py输出将类似于:
% 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 🚀然后您可以在
http://127.0.0.1:6274访问 MCP Inspector 进行测试。
可流式 HTTP 模式
-
描述:使用支持流式传输的 HTTP 进行通信。这是生产部署的推荐传输方式,支持有状态和无状态操作。
-
用法:
uv run src/mcp_server_milvus/server.py --streamable-http --milvus-uri http://localhost:19530 --port 8000--streamable-http:启用可流式 HTTP 模式。--port:指定服务器的端口(默认:8000)。--stateless:无状态模式的可选标志(无会话持久性)。
-
无状态模式:
uv run src/mcp_server_milvus/server.py --streamable-http --stateless --milvus-uri http://localhost:19530 --port 8000
支持的应用程序
此 MCP 服务器可与支持模型上下文协议的各种 LLM 应用程序一起使用:
- Claude Desktop:Anthropic 的 Claude 桌面应用程序
- Cursor:支持 MCP 的 AI 驱动代码编辑器
- 自定义 MCP 客户端:任何实现 MCP 客户端规范的应用程序
与 Claude Desktop 一起使用
不同模式的配置
SSE 模式配置
按照以下步骤为 SSE 模式配置 Claude Desktop:
- 从 https://claude.ai/download. 安装 Claude Desktop
- 打开您的 Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- macOS:
- 为 SSE 模式添加以下配置:
{
"mcpServers": {
"milvus-sse": {
"url": "http://your_sse_host:port/sse",
"disabled": false,
"autoApprove": []
}
}
}
可流式 HTTP 模式配置
{
"mcpServers": {
"milvus-streamable-http": {
"url": "http://your_host:port/mcp",
"disabled": false,
"autoApprove": []
}
}
}
- 重启 Claude Desktop 以应用更改。
Stdio 模式配置
对于 stdio 模式,请按照以下步骤操作:
- 从 https://claude.ai/download. 安装 Claude Desktop
- 打开您的 Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- macOS:
- 为 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"
]
}
}
}
- 重启 Claude Desktop 以应用更改。
与 Cursor 一起使用
Cursor 也支持 MCP 工具。您可以按照以下步骤将您的 Milvus MCP 服务器与 Cursor 集成:
集成步骤
- 打开
Cursor Settings>MCP - 点击
Add new global MCP server - 点击后,它将自动重定向您到
mcp.json文件,如果该文件不存在,将会被创建
配置 mcp.json 文件
对于 Stdio 模式:
使用以下内容覆盖 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"
]
}
}
}
对于 SSE 模式:
-
通过运行以下命令启动服务:
uv run src/mcp_server_milvus/server.py --sse --milvus-uri http://your_sse_host --port port注意:将
http://your_sse_host替换为您实际的 SSE 主机地址,将port替换为您正在使用的特定端口号。 -
服务启动并运行后,使用以下内容覆盖
mcp.json文件:{ "mcpServers": { "milvus-sse": { "url": "http://your_sse_host:port/sse", "disabled": false, "autoApprove": [] } } }
对于可流式 HTTP 模式:
-
启动服务:
uv run src/mcp_server_milvus/server.py --streamable-http --milvus-uri http://your_host --port port -
更新
mcp.json:{ "mcpServers": { "milvus-streamable-http": { "url": "http://your_host:port/mcp", "disabled": false, "autoApprove": [] } } }
完成集成
完成上述步骤后,重启 Cursor 或重新加载窗口以确保配置生效。
验证集成
要验证 Cursor 是否已成功与您的 Milvus MCP 服务器集成:
- 打开
Cursor Settings>MCP - 检查列表中是否出现 "milvus"、"milvus-sse" 或 "milvus-streamable-http"(取决于您选择的模式)
- 确认相关工具已列出(例如,milvus_list_collections、milvus_vector_search 等)
- 如果服务器已启用但显示错误,请检查下面的故障排除部分
可用工具
服务器提供以下工具:
搜索和查询操作
-
milvus_text_search:使用全文搜索搜索文档- 参数:
collection_name:要搜索的集合名称query_text:要搜索的文本limit:要返回的最大结果数(默认:5)output_fields:要包含在结果中的字段drop_ratio:要忽略的低频词比例(0.0-1.0)(默认:0.2)
- 参数:
-
milvus_vector_search:在集合上执行向量相似性搜索- 参数:
collection_name:要搜索的集合名称vector:查询向量vector_field:向量搜索的字段名称(默认:"vector")limit:要返回的最大结果数(默认:5)output_fields:要包含在结果中的字段filter_expr:过滤表达式metric_type:距离度量(COSINE、L2、IP)(默认:"COSINE")radius:范围搜索的可选下限(默认:None)range_filter:范围搜索的可选上限(默认:None)
- 参数:
-
milvus_hybrid_search:在集合上执行混合搜索- 参数:
collection_name:要搜索的集合名称query_text:用于搜索的文本查询text_field:文本搜索的字段名称vector:文本查询的向量vector_field:向量搜索的字段名称limit:要返回的最大结果数(默认:5)output_fields:要包含在结果中的字段filter_expr:过滤表达式sparse_radius:稀疏范围搜索的可选下限(默认:None)sparse_range_filter:稀疏范围搜索的可选上限(默认:None)dense_radius:稠密范围搜索的可选下限(默认:None)dense_range_filter:稠密范围搜索的可选上限(默认:None)
- 参数:
-
milvus_text_similarity_search:在集合上执行文本相似性搜索注意:此工具仅在 Milvus 2.6.0 及以上版本中受支持。并且您需要在 Milvus 服务器上设置嵌入函数。有关更多详细信息,请参阅 嵌入函数。
- 参数:
collection_name:要搜索的集合名称query_text:用于相似性搜索的文本查询anns_field:文本搜索的字段名称limit:要返回的最大结果数(默认:5)output_fields:要包含在结果中的字段metric_type:距离度量(COSINE、L2、IP)(默认:"COSINE")filter_expr:可选的过滤表达式radius:范围搜索的可选下限(默认:None)range_filter:范围搜索的可选上限(默认:None)
- 参数:
-
milvus_query:使用过滤表达式查询集合- 参数:
collection_name:要查询的集合名称filter_expr:过滤表达式(例如 'age > 20')output_fields:要包含在结果中的字段limit:要返回的最大结果数(默认:10)
- 参数:
集合管理
-
milvus_list_collections:列出数据库中的所有集合 -
milvus_create_collection:使用快速设置或自定义模式创建新集合- 参数:
collection_name:新集合的名称auto_id:是否自动生成 ID,默认为 Truedimension:向量维度,默认为 768;用于快速设置,如果提供了field_schema,将被忽略primary_field_name:主字段的名称,默认为 "id";用于快速设置,如果提供了field_schema,将被忽略vector_field_name:向量字段的名称,默认为 "vector";用于快速设置,如果提供了field_schema,将被忽略metric_type:度量类型,默认为 "COSINE";用于快速设置,如果提供了field_schema,将被忽略field_schema:字段模式列表,每个元素是一个包含以下键的字典:name:字段名称type:字段类型
index_params:可选的索引参数列表,每个元素是一个包含以下键的字典:field_name:要索引的字段名称index_type:索引类型**kwargs:其他可选的索引参数
other_kwargs:用于集合创建的额外关键字参数
- 参数:
-
milvus_load_collection:将集合加载到内存中以进行搜索和查询- 参数:
collection_name:要加载的集合名称replica_number:副本数(默认:1)
- 参数:
-
milvus_release_collection:从内存中释放集合- 参数:
collection_name:要释放的集合名称
- 参数:
-
milvus_get_collection_info:列出特定集合的详细信息,如模式、属性、集合 ID 和其他元数据。- 参数:
collection_name:要获取详细信息的集合名称
- 参数:
数据操作
-
milvus_insert_data:将数据插入集合- 参数:
collection_name:集合名称data:将字段名称映射到值列表的字典
- 参数:
-
milvus_delete_entities:根据过滤表达式从集合中删除实体- 参数:
collection_name:集合名称filter_expr:用于选择要删除的实体的过滤表达式
- 参数:
环境变量
MILVUS_URI:Milvus 服务器 URI(可以设置此变量来代替 --milvus-uri)MILVUS_TOKEN:可选的身份验证令牌MILVUS_DB:数据库名称(默认为 "default")
开发
要直接运行服务器:
uv run server.py --milvus-uri http://localhost:19530
示例
使用 Claude Desktop
示例 1:列出集合
What are the collections I have in my Milvus DB?
然后 Claude 将使用 MCP 在您的 Milvus 数据库上检查此信息。
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
示例 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
示例:创建集合
在 Cursor 中,您可以询问:
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.
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 实例正在运行:
docker ps(如果使用 Docker) - 检查配置中的 URI 是否正确
- 确保没有防火墙规则阻止连接
- 尝试在 URI 中使用
127.0.0.1而不是localhost
身份验证问题
如果您看到身份验证错误:
- 验证您的
MILVUS_TOKEN是否正确 - 检查您的 Milvus 实例是否需要身份验证
- 确保您对尝试执行的操作具有正确的权限
未找到工具
如果 MCP 工具未出现在 Claude Desktop 或 Cursor 中:
- 重启应用程序
- 检查服务器日志是否有错误
- 验证 MCP 服务器是否正在正确运行
- 在 MCP 设置中按下刷新按钮(对于 Cursor)
获取帮助
如果您仍然遇到问题:
- 检查 GitHub Issues 是否有类似问题
- 加入 Milvus 社区 Discord 寻求支持
- 提交一个新 issue,并提供有关您问题的详细信息