Mcp Milvus

Mcp Milvus

🚀 MCP Milvus

MCP Milvus 是一个面向 Milvus 向量数据库的 Model Context Protocol (MCP) 服务器,提供全面的向量数据库操作功能。

🚀 快速开始

MCP Milvus 为 Milvus 向量数据库提供了一套完整的操作方案,借助它你可以轻松对数据库、集合和索引进行全生命周期管理,还能实现高性能的向量搜索。

前置条件

  • Go 1.24 或更高版本
  • 运行中的 Milvus 实例

从源码安装

git clone https://github.com/tailabs/mcp-milvus.git
cd mcp-milvus
make deps
make build

或者直接使用 Go 进行安装:

git clone https://github.com/tailabs/mcp-milvus.git
cd mcp-milvus
go mod download
go build -o mcp-milvus ./cmd/mcp-milvus

Docker 部署

# 构建镜像
docker build -t mcp-milvus .

# 运行容器
docker run -p 8080:8080 mcp-milvus

使用方法

  1. 启动服务器
# 使用 Makefile
make run

# 或者直接运行
./build/mcp-milvus
  1. 连接到 Milvus 使用 milvus_connector 工具建立连接:
{
"address": "localhost:19530",
"token": "username:password",
"db_name": "default"
}
  1. 执行操作 连接建立后,你可以使用其他工具进行数据库操作。

✨ 主要特性

  • 完整的 Milvus 操作:对数据库、集合和索引进行全生命周期管理。
  • 高性能向量搜索:支持相似性搜索、混合搜索等多种检索方法。
  • 智能会话管理:基于 Ristretto 缓存实现高效的连接池。
  • 工程架构:模块化设计,便于扩展和维护。
  • 中间件支持:内置日志记录、身份验证等中间件。
  • Docker 支持:提供完整的容器化部署解决方案。
  • 类型安全:Go 的强类型系统确保 API 的安全性。

📦 支持的工具

数据库管理

  • milvus_create_database - 创建数据库
  • milvus_list_databases - 列出所有数据库
  • milvus_use_database - 切换数据库

集合管理

  • milvus_create_collection - 创建集合
  • milvus_drop_collection - 删除集合
  • milvus_list_collections - 列出集合
  • milvus_get_collection_info - 获取集合信息
  • milvus_rename_collection - 重命名集合
  • milvus_load_collection - 将集合加载到内存中
  • milvus_release_collection - 从内存中释放集合

索引管理

  • milvus_create_index - 创建索引
  • milvus_drop_index - 删除索引

数据操作

  • milvus_insert_data - 插入数据
  • milvus_upsert - 插入或更新数据
  • milvus_delete_entities - 删除实体
  • milvus_query - 条件查询
  • milvus_vector_search - 向量相似性搜索

连接管理

  • milvus_connector - 建立 Milvus 连接

🏗️ 项目结构

mcp-milvus/
├── cmd/mcp-milvus/          # 主应用程序入口
├── internal/
│   ├── middleware/          # 中间件(日志记录、身份验证等)
│   ├── registry/            # 工具注册表
│   ├── schema/              # 模式构建器
│   ├── session/             # 会话管理
│   └── tools/               # Milvus 工具实现
├── Dockerfile               # Docker 构建文件
├── go.mod                   # Go 模块定义
└── README.md               # 项目文档

🔧 配置

环境变量

  • LOG_LEVEL:日志级别(debug/info/warn/error),默认值:info
  • PORT:服务端口,默认值:8080

连接配置

支持以下连接参数:

  • address:Milvus 服务地址
  • token:身份验证令牌(格式:username:password)
  • db_name:数据库名称

🤝 贡献

我们欢迎各种形式的贡献!详情请参阅 CONTRIBUTING.md。

开发工作流程

  1. 分叉此仓库
  2. 创建你的功能分支 (git checkout -b feature/AmazingFeature)
  3. 设置开发环境 (make deps && make tools)
  4. 进行更改并测试 (make test && make lint)
  5. 提交更改 (git commit -m 'Add some AmazingFeature')
  6. 推送到分支 (git push origin feature/AmazingFeature)
  7. 打开一个拉取请求

可用的 Make 命令

运行 make help 查看所有可用命令:

make help          # 显示所有可用命令
make build         # 构建二进制文件
make test          # 运行测试
make lint          # 运行代码检查
make fmt           # 格式化代码
make run           # 构建并运行
make dev           # 实时重新加载运行
make docker        # 构建 Docker 镜像
make build-all     # 为所有平台构建
make release       # 准备发布
make clean         # 清理构建产物

📄 许可证

本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。

🔗 相关链接

📞 支持

如果您遇到任何问题或有疑问:

  1. 查看 Issues 以查看是否存在类似问题
  2. 创建一个新的 Issue 描述您的问题
  3. 加入讨论区进行讨论

🙏 致谢

  • Milvus - 优秀的向量数据库
  • MCP Go - MCP 的 Go 实现
  • 所有贡献者和用户

⭐ 如果这个项目对您有帮助,请给它点个 Star!

  • 0 关注
  • 0 收藏,8 浏览
  • system 提出于 2025-09-23 15:57

相似服务问题