使用说明
Milvus的MCP服务器
模型上下文协议(MCP)是一种开放协议,可实现LLM应用程序与外部数据源和工具之间的无缝集成。无论您是在构建基于AI的IDE、增强聊天界面,还是创建自定义AI工作流程,MCP都提供了一种标准化的方式将LLM与所需的上下文连接起来。
此存储库包含一个MCP服务器,可访问 米尔维斯 矢量数据库功能。
先决条件
在使用此MCP服务器之前,请确保您已:
用法
建议使用此MCP服务器的方式是直接使用 uv 无需安装。这就是Claude Desktop和Cursor在下面的示例中使用它的配置方式。
如果要克隆存储库:
git clone https://github.com/stephen37/mcp-server-milvus.git
cd mcp-server-milvus
然后,您可以直接运行服务器:
uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530
支持的应用程序
此MCP服务器可以与支持模型上下文协议的各种LLM应用程序一起使用:
- 克劳德桌面:克劳德的Anthropic桌面应用程序
- 光标:AI驱动的代码编辑器,在其Composer功能中支持MCP
- 自定义MCP客户端:任何实现MCP客户端规范的应用程序
使用Claude Desktop
-
从以下位置安装Claude Desktophttps://claude.ai/download
-
打开您的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"
]
}
}
}
- 重新启动克劳德桌面
使用游标
Cursor还支持MCP 通过Composer中的Agent功能使用工具。您可以通过两种方式将Milvus MCP服务器添加到Cursor:
选项1:使用光标设置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" ] } } } -
重新启动光标或重新加载窗口
添加服务器后,您可能需要按MCP设置中的刷新按钮来填充工具列表。Composer Agent将在与您的查询相关时自动使用Milvus工具。
验证集成
要验证Cursor是否已成功与Milvus MCP服务器集成:
- 打开光标设置>功能>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”)filter_expr:可选筛选器表达式
- 参数:
-
milvus-hybrid-search:执行结合向量相似性和属性过滤的混合搜索- 参数:
collection_name:要搜索的集合名称vector:查询向量vector_field:包含要搜索的向量的字段(默认值:“vector”)filter_expr:元数据的筛选表达式limit:最大结果(默认值:5)output_fields:要包含在结果中的字段metric_type:距离度量(COSINE、L2、IP)(默认值:“COSINE”)
- 参数:
-
milvus-multi-vector-search:使用多个查询向量执行向量相似性搜索- 参数:
collection_name:要搜索的集合名称vectors:查询向量列表vector_field:包含要搜索的向量的字段(默认值:“vector”)limit:每次查询的最大结果数(默认值:5)output_fields:要包含在结果中的字段metric_type:距离度量(COSINE、L2、IP)(默认值:“COSINE”)filter_expr:可选筛选器表达式
- 参数:
-
milvus-query:使用筛选表达式查询集合- 参数:
collection_name:要查询的集合名称filter_expr:筛选表达式(例如“年龄>20”)output_fields:要包含在结果中的字段limit:最大结果(默认值:10)
- 参数:
-
milvus-count:统计集合中的实体- 参数:
collection_name:收藏名称filter_expr:可选筛选器表达式
- 参数:
收集管理
-
milvus-list-collections:列出数据库中的所有集合 -
milvus-collection-info:获取收藏的详细信息- 参数:
collection_name:收藏名称
- 参数:
-
milvus-get-collection-stats:获取集合的统计信息- 参数:
collection_name:收藏名称
- 参数:
-
milvus-create-collection:使用指定的架构创建新集合- 参数:
collection_name:新收藏的名称schema:集合架构定义index_params:可选索引参数
- 参数:
-
milvus-load-collection:将集合加载到内存中以进行搜索和查询- 参数:
collection_name:要加载的集合名称replica_number:副本数量(默认值:1)
- 参数:
-
milvus-release-collection:从内存中释放集合- 参数:
collection_name:要发布的集合名称
- 参数:
-
milvus-get-query-segment-info:获取有关查询段的信息- 参数:
collection_name:收藏名称
- 参数:
-
milvus-get-collection-loading-progress:获取集合的加载进度- 参数:
collection_name:收藏名称
- 参数:
数据操作
-
milvus-insert-data:将数据插入集合- 参数:
collection_name:收藏名称data:字典将字段名映射到值列表
- 参数:
-
milvus-bulk-insert:批量插入数据以获得更好的性能- 参数:
collection_name:收藏名称data:字典将字段名映射到值列表batch_size:每批记录数(默认值:1000)
- 参数:
-
milvus-upsert-data:将数据插入集合(如果存在,则插入或更新)- 参数:
collection_name:收藏名称data:字典将字段名映射到值列表
- 参数:
-
milvus-delete-entities:根据筛选表达式从集合中删除实体- 参数:
collection_name:收藏名称filter_expr:筛选表达式以选择要删除的实体
- 参数:
-
milvus-create-dynamic-field:向现有集合添加动态字段- 参数:
collection_name:收藏名称field_name:新字段的名称data_type:字段的数据类型description:可选描述
- 参数:
索引管理
-
milvus-create-index:在向量字段上创建索引- 参数:
collection_name:收藏名称field_name:要索引的字段index_type:索引类型(IVF_FLAT、HNSW等)(默认值:“IVF_FLAT”)metric_type:距离度量(COSINE、L2、IP)(默认值:“COSINE”)params:附加索引参数
- 参数:
-
milvus-get-index-info:获取集合中索引的信息- 参数:
collection_name:收藏名称field_name:用于获取索引信息的可选特定字段
- 参数:
环境变量
MILVUS_URI:Milvus服务器URI(可以设置为代替--Milvus-URI)MILVUS_TOKEN:可选身份验证令牌MILVUS_DB:数据库名称(默认为“默认”)
发展
要直接运行服务器,请执行以下操作:
uv run server.py --milvus-uri http://localhost:19530
例子
使用克劳德桌面
示例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.
> View result from milvus-list-collections from milvus (local)
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的Composer中,您可以问:
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.
> View result from milvus-create-collection from milvus (local)
Collection 'articles' has been created successfully with the following schema:
- title: string
- content: string
- vector: float vector[128]
故障排除
常见问题
连接错误
如果您看到诸如“连接到Milvus服务器失败”之类的错误:
- 验证您的Milvus实例是否正在运行:
docker ps(如果使用Docker) - 检查配置中的URI是否正确
- 确保没有防火墙规则阻止连接
- 尝试使用
127.0.0.1而不是localhost在URI中
身份验证问题
如果您看到身份验证错误:
- 验证您的
MILVUS_TOKEN是正确的 - 检查您的Milvus实例是否需要身份验证
- 确保您对尝试执行的操作具有正确的权限
未找到工具
如果MCP工具未出现在克劳德桌面或光标中:
- 重新启动应用程序
- 检查服务器日志是否有任何错误
- 验证MCP服务器是否正常运行
- 按下MCP设置中的刷新按钮(光标)
获取帮助
如果您继续遇到问题:
- 检查 GitHub问题 对于类似的问题
- 加入 Zilliz社区不和 支持
- 提交一个新问题,其中包含有关您问题的详细信息