关于 Milvus
Milvus MCP 服务将 Milvus 数据库操作提供给 LLM 应用,适用于需要检索和管理向量数据的开发者。它支持全文、向量与混合搜索,以及集合和数据管理。
主要功能
- 01全文、向量与混合搜索
- 02按条件查询集合
- 03创建和管理集合
- 04插入与删除数据
- 05通过 uvx 启动
适用场景
- 01在文档集合中查找文本
- 02按查询向量检索相似记录
- 03创建集合并写入数据
MCP 相关
该 MCP 服务向 MCP 客户端提供 Milvus 搜索、查询、集合管理及数据操作工具;支持 stdio 和 SSE 模式。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Milvus 的 MCP 服务
模型上下文协议(MCP)是一种开放协议,可实现大模型应用与外部数据源和工具之间的无缝集成。无论您是在构建 AI 驱动的 IDE、增强聊天界面,还是创建自定义 AI 工作流,MCP 都能提供一种标准化方式,将大模型与其所需的上下文连接起来。
此代码库包含一个 MCP 服务,可访问 Milvus 向量数据库功能。
注意: 此代码库是 https://github.com/zilliztech/mcp-server-milvus.git 的一个分支,进行了多项改进并新增了对 uvx 执行方式的支持,因此无需安装即可更轻松地运行。

前提条件
使用此 MCP 服务之前,请确保您具备:
用法
建议使用 uvx 直接运行此 MCP 服务,无需安装。以下示例中,Claude Desktop 和 Cursor 都采用这种方式进行配置。
运行服务
您可以使用以下命令运行 Milvus 的 MCP 服务,并将 http://localhost:19530 替换为您的 Milvus 服务 URI:
uvx mcp-server-milvus --milvus-uri http://localhost:19530
或者,您可以在项目目录中使用 .env 文件设置环境变量,然后使用以下 uvx 命令运行服务:
# Create a .env file with your Milvus configuration
cat > .env <<EOF
MILVUS_URI=http://localhost:19530
MILVUS_TOKEN=root:Milvus
MILVUS_DB=default
EOF
# Run the server with the .env file
uvx --env-file .env mcp-server-milvus
运行模式
此服务支持两种运行模式:stdio(默认)和 SSE(服务器发送事件)。
Stdio 模式(默认)
-
描述:通过标准输入/输出与客户端通信。如果未指定模式,则默认使用此模式。
-
用法:
uvx mcp-server-milvus@latest --milvus-uri http://localhost:19530
SSE 模式
-
描述:使用 HTTP 服务器发送事件进行通信。此模式允许多个客户端通过 HTTP 连接,适用于基于 Web 的应用程序。
-
用法:
uvx mcp-server-milvus@latest --sse --milvus-uri http://localhost:19530--sse:启用 SSE 模式。
-
在 SSE 模式下调试:
如果要在 SSE 模式下调试,请在启动 SSE 服务后输入以下命令:
npx @modelcontextprotocol/inspector --transport sse --server-url http://localhost:8000/sse输出将类似于:
% npx @modelcontextprotocol/inspector --transport sse --server-url http://localhost:8000/sse 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 进行测试。
支持的应用程序
此 MCP 服务可用于各种支持模型上下文协议的大模型应用程序:
- 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": []
}
}
}
- 重启 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": "uvx",
"args": [
"mcp-server-milvus@latest",
"--milvus-uri",
"http://localhost:19530"
]
}
}
}
- 重启 Claude Desktop 以应用更改。
在 Cursor 中使用
Cursor 也支持 MCP 工具。按照以下步骤,即可将 Milvus MCP 服务集成到 Cursor 中:
集成步骤
-
前往
Cursor Settings>Features>MCP -
点击
+ Add New MCP Server按钮 -
填写表单:
- 类型:选择
stdio(因为你要运行命令) - 名称:
milvus - 命令:
uvx mcp-server-milvus@latest --milvus-uri http://127.0.0.1:19530
⚠️ 注意:请使用
127.0.0.1而不是localhost,以避免可能出现的 DNS 解析问题。 - 类型:选择
选项 2:使用项目专属配置(推荐)
在项目根目录中创建 .cursor/mcp.json 文件:
-
在项目根目录中创建
.cursor目录:mkdir -p /path/to/your/project/.cursor -
创建
mcp.json文件,并添加以下内容:{ "mcpServers": { "milvus": { "command": "uvx", "args": [ "mcp-server-milvus@latest", "--milvus-uri", "http://127.0.0.1:19530" ] } } }
SSE 模式:
-
运行以下命令启动服务:
uv run mcp-server-milvus --sse --milvus-uri http://your_sse_host注意:将
http://your_sse_host替换为实际的 SSE 主机地址。 -
服务启动并运行后,使用以下内容覆盖
mcp.json文件:{ "mcpServers": { "milvus-sse": { "url": "http://your_sse_host:port/sse", "disabled": false, "autoApprove": [] } } }
完成集成
完成上述步骤后,重启 Cursor 或重新加载窗口,以确保配置生效。
验证集成
若要验证 Cursor 是否已成功集成 Milvus MCP 服务:
- 打开
Cursor Settings>MCP - 检查列表中是否显示“milvus”或“milvus-sse”(取决于你选择的模式)
- 确认列表中显示了相关工具(例如,milvus_list_collections、milvus_vector_search 等)
- 如果服务已启用但显示错误,请查看下方的故障排除部分
可用工具
该服务提供以下工具:
搜索和查询操作
-
milvus_text_search:使用全文搜索查找文档- 参数:
collection_name:要搜索的集合名称query_text:要搜索的文本limit:要返回的最大结果数(默认值:5)output_fields:要包含在结果中的字段drop_ratio:要忽略的低频词比例(0.0-1.0)
- 参数:
-
milvus_vector_search:对集合执行向量相似度搜索- 参数:
collection_name:要搜索的集合名称vector:查询向量vector_field:用于向量搜索的字段名称(默认值:“vector”)limit:要返回的最大结果数(默认值:5)output_fields:要包含在结果中的字段filter_expr:过滤表达式metric_type:距离度量方式(COSINE、L2、IP)(默认值:“COSINE”)
- 参数:
-
milvus_hybrid_search:对集合执行混合搜索- 参数:
collection_name:要搜索的集合名称query_text:用于搜索的文本查询text_field:用于文本搜索的字段名称vector:文本查询的向量vector_field:用于向量搜索的字段名称limit:要返回的最大结果数output_fields:要包含在结果中的字段filter_expr:过滤表达式
- 参数:
-
milvus_query:使用过滤表达式查询集合- 参数:
collection_name:要查询的集合名称filter_expr:过滤表达式(例如,'age > 20')output_fields:要包含在结果中的字段limit:要返回的最大结果数(默认值:10)
- 参数:
集合管理
-
milvus_list_collections:列出数据库中的所有集合 -
milvus_create_collection:使用指定的架构创建新集合- 参数:
collection_name:新集合的名称collection_schema:集合架构定义index_params:可选的索引参数
- 参数:
-
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")
开发
开发期间测试
要使用 MCP Inspector 在本地测试服务:
npx @modelcontextprotocol/inspector uvx mcp-server-milvus@latest
示例
使用 Claude Desktop
示例 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.
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 中查看是否有类似问题
- 加入 Zilliz Community Discord 获取支持
- 提交新问题,并详细说明遇到的问题
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。