模型上下文协议(MCP)是一种开放协议,它能够实现大型语言模型(LLM)应用程序与外部数据源和工具之间的无缝集成。无论您是在构建AI驱动的IDE、增强聊天界面,还是创建自定义的AI工作流,MCP都提供了一种标准化的方式来连接LLMs及其所需的上下文。
此仓库包含一个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
服务器支持两种运行模式:标准输入输出(stdio)(默认)和服务器发送事件(SSE)。
描述:通过标准输入输出与客户端通信。如果未指定模式,则默认为此模式。
使用方法:
uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530
描述:使用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
正在启动MCP检查器...
⚙️ 代理服务器正在监听端口6277
🔍 MCP检查器已在http://127.0.0.1:6274运行🚀
您可以访问http://127.0.0.1:6274进行测试。
此MCP服务器可用于支持模型上下文协议的各种LLM应用程序:
按照以下步骤配置Claude Desktop以使用SSE模式:
~/Library/Application Support/Claude/claude_desktop_config.json{
"mcpServers": {
"milvus-sse": {
"url": "http://your_sse_host:port/sse",
"disabled": false,
"autoApprove": []
}
}
}
对于标准输入输出模式,遵循以下步骤:
~/Library/Application Support/Claude/claude_desktop_config.json{
"mcpServers": {
"milvus": {
"command": "/PATH/TO/uv",
"args": [
"--directory",
"/path/to/mcp-server-milvus/src/mcp_server_milvus",
"run",
"server.py",
"--milvus-uri",
"http://localhost:119530"
]
}
}
}
Cursor也支持MCP工具。您可以按照以下步骤将您的Milvus MCP服务器与Cursor集成:
Cursor设置 > MCP添加新的全局MCP服务器mcp.json文件,如果不存在则会创建该文件mcp.json文件用以下内容覆盖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"
]
}
}
}
通过运行以下命令启动服务:
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": []
}
}
}
完成上述步骤后,重新启动Cursor或重新加载窗口以确保配置生效。
要验证Cursor是否成功集成了您的Milvus MCP服务器:
Cursor设置 > MCP服务器提供的工具包括:
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_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:可选过滤表达式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")直接运行服务器:
uv run server.py --milvus-uri http://localhost:19530
我在Milvus数据库中有哪些集合?
Claude将使用MCP检查您Milvus数据库中的这些信息。
我将检查您Milvus数据库中可用的集合。
以下是您Milvus数据库中的集合:
1. rag_demo
2. test
3. chat_messages
4. text_collection
5. image_collection
6. customized_setup
7. streaming_rag_demo
在我的text_collection中找到提到“机器学习”的文档
Claude将使用Milvus的全文搜索能力找到相关的文档:
我将在您的text_collection中搜索关于机器学习的文档。
> 查看来自milvus-text-search的milvus(本地)结果
以下是提到机器学习的文档:
[结果将基于您的实际数据出现]
在Cursor中,您可以询问:
在Milvus中创建一个名为'articles'的新集合,具有标题(字符串)、内容(字符串)和一个向量字段(128维)
Cursor将使用MCP服务器执行此操作:
我将创建一个名为'articles'的新集合,具有指定的字段。
'articles'集合已成功创建,其模式如下:
- 标题:字符串
- 内容:字符串
- 向量:浮点向量[128]
如果您看到类似“无法连接到Milvus服务器”的错误:
docker ps(如果使用Docker)127.0.0.1而不是localhost如果您看到身份验证错误:
MILVUS_TOKEN是否正确如果MCP工具未出现在Claude Desktop或Cursor中:
如果您继续遇到问题: