前言“大模型很聪明,但又貌似什么问题都解决不了。” 这应该是不少用户使用大模型过程中都会面临的问题。 比如,问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 服务器之前,请确保已经准备好: Python 3.10 或更高版本; 正在运行的Milvus实例(本地或远程) uv 工具
第二步:配置指南我们推荐,milvus MCP server 直接使用uv运行。以下示例中的Claude Desktop 和 Cursor 都可以如此配置。 gitclonehttps://github.com/zilliztech/mcp-server-milvus.git 接下来,我们就可以直接运行server了: uvrunsrc/mcp_server_milvus/server.py--milvus-urihttp://localhost:19530 第三步:与 Claude Desktop 集成 step1:从https://claude.ai/download安装 Claude Desktop step2:打开你的 Claude Desktop 配置: macOS: ~/Library/ApplicationSupport/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_milvusrunserver.py--milvus-urihttp://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:提问首先,我们给出一个提问 WhatarethecollectionsIhaveinmyMilvusDB?
紧接着,Claude 就会使用 MCP 在Milvus中检索和以上提问有关的信息。 I'llcheckwhatcollectionsareavailableinyourMilvusdatabase.Viewresultfrommilvus-list-collectionsfrommilvus(local)HerearethecollectionsinyourMilvusdatabase:rag_demotestchat_messagestext_collectionimage_collectioncustomized_setupstreaming_rag_demo
示例 2:搜索文档首先,我们给出一个明确的需求 Finddocumentsinmytext_collectionthatmention"machinelearning"
Claude 将使用 Milvus 的全文搜索功能来查找相关文档: I'llsearchfordocumentsaboutmachinelearninginyourtext_collection.Viewresultfrommilvus-text-searchfrommilvus(local)HerearethedocumentsIfoundthatmentionmachinelearning:[Resultswillappearherebasedonyouractualdata]
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
|