Milvus对话服务器
# 翻译 一个实现模型上下文协议的集成服务器,使LLM应用程序能够与Milvus向量数据库功能进行交互,通过自然语言实现向量搜索、集合管理和数据操作。
服务介绍
MCP Server for Milvus
Model Context Protocol (MCP) 是一种开放协议,可实现LLM应用程序与外部数据源和工具之间的无缝集成。无论您是在构建由AI驱动的IDE、增强聊天界面还是创建自定义AI工作流,MCP都提供了一种将LLM与其所需上下文连接起来的标准方法。
此仓库包含一个MCP服务器,它提供了访问Milvus向量数据库功能的接口。

先决条件
在使用此MCP服务器之前,请确保您已具备:
使用方法
推荐使用uv直接运行此MCP服务器而无需安装。以下示例中,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 文件的优先级高于命令行参数。
支持的应用程序
该MCP服务器可以与支持Model Context Protocol的各种LLM应用程序一起使用:
- Claude Desktop:Anthropic的桌面应用Claude
- Cursor:支持MCP的AI代码编辑器
- 自定义MCP客户端:任何实现了MCP客户端规范的应用程序
与Claude Desktop配合使用
-
从 https://claude.ai/download 安装Claude Desktop
-
打开您的Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- macOS:
-
添加以下配置:
{
"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中:
选项1:使用Cursor设置UI
-
转至
Cursor Settings>Features>MCP -
点击
+ Add New MCP Server按钮 -
填写表单:
- 类型:选择
stdio(因为您正在运行一个命令) - 名称:
milvus - 命令:
/PATH/TO/uv --directory /path/to/mcp-server-milvus/src/mcp_server_milvus run server.py --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": "/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" ] } } } -
重启 Cursor 或重新加载窗口
添加服务器后,您可能需要在 MCP 设置中按下刷新按钮以填充工具列表。代理会在相关查询时自动使用 Milvus 工具。
验证集成
要验证 Cursor 是否已成功与您的 Milvus MCP 服务器集成,请执行以下步骤:
- 打开 Cursor 设置 > 功能 > MCP
- 检查 "Milvus" 是否出现在 MCP 服务器列表中
- 确认工具已被列出(例如 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: 结果中包含的字段metric_type: 距离度量类型(COSINE, L2, IP)(默认:"COSINE")
- 参数:
-
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_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]
故障排除
常见问题
连接错误
如果您看到类似“无法连接到 Milvus 服务器”的错误:
- 确认您的 Milvus 实例正在运行:
docker ps(如果使用 Docker) - 检查配置中的 URI 是否正确
- 确保没有防火墙规则阻止连接
- 尝试在 URI 中使用
127.0.0.1而不是localhost
认证问题
如果您遇到认证错误:
- 确认您的
MILVUS_TOKEN是正确的 - 检查您的 Milvus 实例是否需要认证
- 确保您对所尝试执行的操作具有正确的权限
工具未找到
如果 MCP 工具未出现在 Claude Desktop 或 Cursor 中:
- 重启应用程序
- 检查服务器日志以获取任何错误
- 确认 MCP 服务器正常运行
- 在 MCP 设置中按下刷新按钮(对于 Cursor)
获取帮助
如果您继续遇到问题:
- 检查 GitHub Issues 上是否有类似的问题
- 加入 Zilliz 社区 Discord 寻求支持
- 提交一个新问题,并提供有关您问题的详细信息