MCP Server for Milvus 通过 Model Context Protocol (MCP) 将大型语言模型 (LLM) 应用,比如 Claude Desktop 和 Cursor,与 Milvus 向量数据库连接起来,允许 LLM 利用 Milvus 的向量搜索和数据存储能力,提升 LLM 应用的性能和功能。
MCP协议作为开放标准协议,致力于消除LLM应用与传统数据源之间的交互壁垒,Milvus MCP服务器作为具体实现,通过标准化接口实现以下核心能力:
1、支持向量相似度检索
2、提供结构化数据查询功能
3、实现数据生命周期管理
4、兼容多种LLM应用生态
1、环境准备要求
• Python版本≥3.10
• 需要预装Milvus服务(本地/远程均可)
• 推荐使用uv工具管理进程
2、快速启动方式
(1) 直接运行模式:
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
(2) 环境变量配置:
通过.env文件设置参数(优先级高于命令行参数)
MILVUS_URI=http://your-milvus-instance:19530
MILVUS_TOKEN=your_auth_token
MILVUS_DB=default_database
1、数据操作功能集
• 文本搜索:支持多字段组合查询
• 向量检索:支持余弦/L2/IP等多种距离计算
• 结构化查询:通过Filter表达式精准筛选数据
• 批量操作:支持10万级数据批量写入
2、集群管理工具链
• 集合管理:创建/删除/加载集合
• 索引优化:自动维护索引状态
• 内存管理:动态调整集合加载策略
• 权限控制:支持多租户权限隔离
1、与Claude Desktop集成步骤
(1) 配置文件路径:
~/Library/Application Support/Claude/claude_desktop_config.json
(2) 添加服务器定义:
{
"mcpServers": {
"milvus": {
"command": "/usr/local/bin/uv",
"args": [
"--directory",
"/path/to/mcp-server-milvus/src/mcp_server_milvus",
"run",
"server.py",
"--milvus-uri",
"http://localhost:19530"
]
}
}
}
2、与Cursor代码编辑器集成 (1) 命令行配置示例:
{
"command": "/opt/homebrew/bin/uv",
"args": [
"--directory",
"/Users/username/projects/mcp-server-milvus/src/mcp_server_milvus",
"run",
"server.py",
"--milvus-uri",
"http://127.0.0.1:19530"
]
}
1、连接异常处理
• 检查Milvus服务状态:docker ps | grep milvus
• 验证网络连通性:telnet 127.0.0.1 19530
• 查看日志定位问题:tail -f server.log
2、认证机制说明
• 支持Token认证机制
• Token有效期默认7天
• 多角色权限管理体系
1、自定义工具开发流程
(1) 定义工具规范:
@register_tool
def custom_tool(param1: str, param2: int):
"""执行自定义操作的原子工具"""
# 实现具体业务逻辑
2、协议扩展规范
• 工具注册机制
• 参数校验规则
• 异常处理规范
• 版本兼容策略
1、系统调优方案
• 进程数优化:根据CPU核数调整uvicorn workers
• 内存分配:设置合理的max_memory_per_worker
• 缓存策略:启用Redis缓存热点数据
2、网络优化方案
• 启用HTTP/2协议
• 调整keepalive超时时间
• 使用CDN加速静态资源