SuperAPI AI 工具集

mcp-server-milvus

mcp-server-milvus 是 Zilliz 为 Milvus 向量数据库提供的 Model Context Protocol(MCP)服务器。MCP 是一种开放协议,用于让 LLM 应用与外部数据源和工具无缝集成。该服务器让支持 MCP 的 LLM 应用(如 Claude Desktop、Cursor 或自定义 MCP 客户端)能够直接访问 Milvus 向量数据库功能,包括文本搜索、向量相似度搜索、混合搜索、文本相似度搜索和基于过滤表达式的查询,以及集合的创建与列举等管理操作。使用前需要 Python 3.10 或更高版本、一个运行中的 Milvus 实例(本地或远程)以及 uv。服务器支持 stdio(默认)、SSE 和 Streamable HTTP 三种运行模式,可运行 uv 命令直接启动,并通过配置 Claude Desktop 或 Cursor 的 MCP 配置接入。

访问官网

工具介绍

用途

mcp-server-milvus 是面向 Milvus 向量数据库的 Model Context Protocol(MCP)服务器。MCP 是一种开放协议,用于在 LLM 应用与外部数据源和工具之间建立无缝集成,适用于构建 AI 驱动的 IDE、增强聊天界面或创建自定义 AI 工作流。该仓库提供的 MCP 服务器使 LLM 应用可以访问 Milvus 向量数据库的功能。

主要能力

服务器提供搜索与查询操作以及集合管理两类工具。

搜索与查询操作包括:

  • 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(稀疏范围搜索的可选下界)、sparse_range_filter(稀疏范围搜索的可选上界)、dense_radius(稠密范围搜索的可选下界)、dense_range_filter(稠密范围搜索的可选上界),后四项默认均为 None。
  • milvus_text_similarity_search:在集合上执行文本相似度搜索。注意:该工具仅在 Milvus 2.6.0 及以上版本受支持,并且需要在 Milvus 服务器上设置嵌入函数(Embedding Function),详见 Embedding Function 文档。参数包括 collection_name、query_text(相似度搜索的文本查询)、anns_field(文本搜索的字段名称)、limit(默认 5)、output_fields、metric_type(默认 “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:使用快速设置或自定义 schema 创建新集合。参数包括 collection_name(新集合名称)、auto_id(是否自动生成 id,默认 True)、dimension(向量维度,默认 768,用于快速设置;如果提供 field_schema 则忽略)、primary_field_name(主字段名称,默认 “id”,用于快速设置;如果提供 field_schema 则忽略)、vector_field_name(向量字段名称,默认 “vector”,用于快速设置;如果提供 field_schema 则忽略)、metric_type(度量类型,默认 “COSINE”,用于快速设置;如果提供 field_schema 则忽略)、field_schema(字段 schema 列表,每个元素是一个字典,键包括 name(字段名称)和 type(类型))。

使用方式

使用前需确保:Python 3.10 或更高版本;一个运行中的 Milvus 实例(本地或远程);已安装 uv(推荐用于运行服务器)。

推荐的使用方式是直接用 uv 运行,无需安装。这也是 Claude Desktop 和 Cursor 示例中的配置方式。

如果希望克隆仓库,则可以随后直接运行服务器。也可以修改 src/mcp_server_milvus/ 目录下的 .env 文件来设置环境变量,然后运行服务器。重要:.env 文件优先级高于命令行参数。

服务器支持两种运行模式:stdio(默认)和 SSE(Server-Sent Events)。

Stdio 模式(默认):通过标准输入/输出与客户端通信。如果未指定模式,这是默认模式。使用方式:uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530

SSE 模式:使用 HTTP Server-Sent Events 进行通信。该模式允许多个客户端通过 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 进行测试。

Streamable HTTP 模式:使用支持流式传输的 HTTP 进行通信。这是生产部署推荐的传输方式,支持有状态和无状态操作。使用方式:uv run src/mcp_server_milvus/server.py --streamable-http --milvus-uri http://localhost:19530 --port 8000。其中 --streamable-http 启用 Streamable HTTP 模式,--port 指定服务器端口(默认 8000),--stateless 为可选标志,用于无状态模式(不保持会话持久化)。无状态模式示例:uv run src/mcp_server_milvus/server.py --streamable-http --stateless --milvus-uri http://localhost:19530 --port 8000。

支持的应用程序

该 MCP 服务器可用于各种支持 Model Context Protocol 的 LLM 应用:Claude Desktop(Anthropic 的 Claude 桌面应用)、Cursor(支持 MCP 的 AI 驱动代码编辑器)、自定义 MCP 客户端(任何实现 MCP 客户端规范的应用)。

与 Claude Desktop 配合使用

不同模式的配置步骤:为 SSE 模式配置 Claude Desktop,从 https://claude.ai/download 安装 Claude Desktop;打开 Claude Desktop 配置文件:macOS 路径为 ~/Library/Application Support/Claude/claude_desktop_config.json;添加 SSE 模式的配置;重启 Claude Desktop 使更改生效。对于 stdio 模式,添加 stdio 模式的配置。

与 Cursor 配合使用

Cursor 也支持 MCP 工具。集成步骤:打开 Cursor Settings > MCP;点击 Add new global MCP server;点击后会自动重定向到 mcp.json 文件,如果该文件不存在则会自动创建。

配置 mcp.json 文件:用相应内容覆盖 mcp.json 文件。然后启动服务,运行命令: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" : [] } } }。

Streamable 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 服务器集成,检查列表中是否出现 “milvus”、“milvus-sse” 或 “milvus-streamable-http”(取决于所选模式);确认相关工具已列出(例如 milvus_list_collections、milvus_vector_search 等);如果服务器已启用但显示错误,请查看下方 Troubleshooting 部分。

适用场景

该服务器适合需要让 LLM 应用直接访问 Milvus 向量数据库的场景,例如在 AI 驱动的 IDE、聊天界面或自定义 AI 工作流中执行向量检索、全文检索、混合检索或按过滤条件查询集合数据,也适合通过 Claude Desktop 和 Cursor 等 MCP 客户端进行集成。

限制

milvus_text_similarity_search 仅在 Milvus 2.6.0 及以上版本受支持,并且需要在 Milvus 服务器上设置嵌入函数。使用该服务器需要满足 Python 3.10+、运行中的 Milvus 实例和 uv 等前置条件。其他限制在提供的资料中暂未说明。