Milvus对话服务器

@zilliztech/mcp-server-milvus
0 Stars 664 次浏览 zilliztech 更新于 2026-08-23

# 翻译 一个实现模型上下文协议的集成服务器,使LLM应用程序能够与Milvus向量数据库功能进行交互,通过自然语言实现向量搜索、集合管理和数据操作。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

MCP Server for Milvus

Model Context Protocol (MCP) 是一种开放协议,可实现LLM应用程序与外部数据源和工具之间的无缝集成。无论您是在构建由AI驱动的IDE、增强聊天界面还是创建自定义AI工作流,MCP都提供了一种将LLM与其所需上下文连接起来的标准方法。

此仓库包含一个MCP服务器,它提供了访问Milvus向量数据库功能的接口。

MCP with Milvus

先决条件

在使用此MCP服务器之前,请确保您已具备:

  • Python 3.10 或更高版本
  • 正在运行的 Milvus 实例(本地或远程)
  • 安装了uv(推荐用于运行服务器)

使用方法

推荐使用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配合使用

  1. https://claude.ai/download 安装Claude Desktop

  2. 打开您的Claude Desktop配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  3. 添加以下配置:

{
  "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"
      ]
    }
  }
}
  1. 重启Claude Desktop

与Cursor配合使用

Cursor同样支持MCP 工具。可以通过两种方式将Milvus MCP服务器添加到Cursor中:

选项1:使用Cursor设置UI

  1. 转至 Cursor Settings > Features > MCP

  2. 点击 + Add New MCP Server 按钮

  3. 填写表单:

    • 类型:选择 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 文件:

  1. 在项目根目录下创建 .cursor 目录:

    mkdir -p /path/to/your/project/.cursor
    
  2. 创建一个 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"
          ]
        }
      }
    }
    
  3. 重启 Cursor 或重新加载窗口

添加服务器后,您可能需要在 MCP 设置中按下刷新按钮以填充工具列表。代理会在相关查询时自动使用 Milvus 工具。

验证集成

要验证 Cursor 是否已成功与您的 Milvus MCP 服务器集成,请执行以下步骤:

  1. 打开 Cursor 设置 > 功能 > MCP
  2. 检查 "Milvus" 是否出现在 MCP 服务器列表中
  3. 确认工具已被列出(例如 milvus_list_collections, milvus_vector_search 等)
  4. 如果服务器已启用但显示错误,请查看下面的故障排除部分

可用工具

该服务器提供了以下工具:

搜索和查询操作

  • 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 服务器”的错误:

  1. 确认您的 Milvus 实例正在运行:docker ps(如果使用 Docker)
  2. 检查配置中的 URI 是否正确
  3. 确保没有防火墙规则阻止连接
  4. 尝试在 URI 中使用 127.0.0.1 而不是 localhost

认证问题

如果您遇到认证错误:

  1. 确认您的 MILVUS_TOKEN 是正确的
  2. 检查您的 Milvus 实例是否需要认证
  3. 确保您对所尝试执行的操作具有正确的权限

工具未找到

如果 MCP 工具未出现在 Claude Desktop 或 Cursor 中:

  1. 重启应用程序
  2. 检查服务器日志以获取任何错误
  3. 确认 MCP 服务器正常运行
  4. 在 MCP 设置中按下刷新按钮(对于 Cursor)

获取帮助

如果您继续遇到问题:

  1. 检查 GitHub Issues 上是否有类似的问题
  2. 加入 Zilliz 社区 Discord 寻求支持
  3. 提交一个新问题,并提供有关您问题的详细信息

相关 MCP 服务