暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

爆火 | API终将淘汰,MCP+Milvus+LLM才是Agent开发新范式

ZILLIZ 2025-03-19
19

前言

“大模型很聪明,但又貌似什么问题都解决不了。”

这应该是不少用户使用大模型过程中都会面临的问题。

比如,问deepseek,即将到来的清明节有什么习俗,AI可以引经据典的给出答案;但如果要它给出一份三天两晚的清明旅行规划,给出的答案,就好像总是差点意思。

原因很简单,在做旅行规划的时候,大模型缺乏必要的天气、机票、铁路、导航、酒店等必要数据与工具的接入。就像一个顶级聪明的大脑,但没有配备外部的“数据”输入,以及强壮的四肢。

在这一背景下,通过为大模型配备各种外接工具与数据库,Agent成为了近些年的显学。

但一个足够智能的Agent,通常需要添加非常多的外部工具,但在传统的Agent开发过程中,我们每添加一个工具,就需要为大模型多写一个API,系统也会因此变得混乱不堪。

MCP(模型上下文协议)的出现改变了这一局面。

去年11月,硅谷AI独角兽Anthropic正式推出了MCP——模型上下文协议,让开发者只需一次编写,就能为大模型对接不同的API、数据库与文件系统,极大降低了模型的配置难度。

也是因此,MCP一经推出,就被奉为最强标准化接口协议,一夜间爆火全球大模型圈,成为新一代Agent工具调用标准协议。

那么,MCP究竟是什么?我们如何将当其与Milvus结合?

01 

模型上下文协议(MCP)是什么

MCP是一种开放协议,旨在规范大模型与不同数据源及工具的连接方式。

有了MCP,LLM就像装上了标准的type C接口充电,可以快速接入的任何支持MCP的工具。

从技术架构来看,MCP采用的是客户端 - 服务器架构,其中,主机应用程序可连接至多个(工具)服务器:

  • MCP主机:希望通过MCP获取数据的程序,如Claude桌面版、集成开发环境(IDE)或AI工具

  • MCP客户端:与服务器保持一对一连接的协议客户端

  • MCP服务器:通过标准化的模型上下文协议连接特定功能的轻量级程序

  • 本地数据源:MCP服务器能够安全访问的计算机文件、数据库及服务

  • 远程服务:MCP服务器可连接的互联网上的外部系统(例如,通过API)

02

为何要将Milvus与MCP结合使用?

Milvus不仅擅长管理海量数据,其高效的相似性搜索和可扩展的向量存储功能,更是让其成为AI Agent的理想之选。

而有了MCP充当“完美中间人”,开发者们就可以在无需额外工程投入的情况下,就能实现大模型对向量数据库知识的的无缝、标准化访问。

那么,通过MCP接入Milvus,我们能获得哪些功能呢?

  • 复杂的向量相似性搜索

  • 创建和操作索引

  • Schema分析:直接通过AI代理界面检查集合Schema、字段类型和索引配置。

  • 实时监控:查询集合统计信息、实体数量和数据库运行状况指标,以确保最佳性能。

  • 动态操作:根据需求变化,实时创建新集合、插入数据和修改Schema

  • 全文搜索:自Milvus 2.5起,新的版本均支持全文搜索

03

如何将milvus通过MCP与大模型集成?

Milvus  MCP 服务器可以与支持MCP的各种 LLM 应用程序一起使用,包括但不限于

  • Claude Desktop:Anthropic 为 Claude 开发的桌面应用程序

  • Cursor:人工智能代码编辑器,其 Composer 功能支持 MCP

  • 自定义 MCP 客户端:任何接入 MCP 客户端规范的应用程序

接下来,我们会使用Claude Desktop和Cursor进行部署展示。

第一步:环境准备

在使用 MCP 服务器之前,请确保已经准备好:

  1. Python 3.10 或更高版本;

  2. 正在运行的Milvus实例(本地或远程)

  3. uv 工具

第二步:配置指南

我们推荐,milvus MCP server 直接使用uv运行。以下示例中的Claude Desktop 和 Cursor 都可以如此配置。

    git clone https://github.com/zilliztech/mcp-server-milvus.git
    复制
      cd mcp-server-milvus
      复制

      接下来,我们就可以直接运行server了:

        uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530
        复制

        第三步:与 Claude Desktop 集成

        step1:从https://claude.ai/download安装 Claude Desktop

        step2:打开你的 Claude Desktop 配置:

        macOS:

          ~/Library/Application Support/Claude/claude_desktop_config.json
          复制

          step3:添加以下配置

          复制
            {
            "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"
            ]
            }
            }
            }


            复制
            step4:重启Claude桌面
            复制

            第四步:与Cursor 集成

            Cursor 可以通过 Composer 中的 Agent 功能支持 MCP工具。我们可以通过两种方式将 Milvus MCP 服务器添加到 Cursor:

            方法一 :使用Cursor 设置 UI

            • step1:转至Cursor Settings> Features>MCP

            • step2:+ Add New MCP Server按钮

            • step3填写配置:Type选择stdio;name选择milvus;Command如下

              /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 解析问题。

              方法二:使用项目特定配置(推荐)

              step1:在项目根目录中创建一个. cursor/mcp.json文件:

                mkdir -p /path/to/your/project/.cursor
                复制

                step2:创建一个 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"
                  ]
                  }
                  }
                  }
                  复制
                  复制

                  step3:重新启动 Cursor 或重新加载窗口

                  添加server后,我们需要点击 MCP 设置中的刷新按钮来激活工具列表。这样,当我们的查询相关内容的时候,Composer Agent 就能自动使用 Milvus 工具。

                  step4:验证集成效果

                  要验证 Cursor 是否已成功与 Milvus MCP 服务器集成:

                  打开Cursor Settings > Features > MCP

                  检查“Milvus”是否出现在 MCP 服务器列表中

                  验证工具是否集成成功(例如 milvus_list_collections、milvus_vector_search 等)

                  04

                  案例展示

                  Claude Desktop+MCP+milvus效果展示

                  示例 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:
                      rag_demo
                      test
                      chat_messages
                      text_collection
                      image_collection
                      customized_setup
                      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+MCP+milvus效果展示

                          在 Cursor's 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]
                              复制

                              推荐阅读

                              文章转载自ZILLIZ,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                              评论