向量数据库连接器

Milvus MCP Server是一个连接器,通过Anthropic的模型上下文协议(MCP)使大型语言模型能够与Milvus向量数据库交互,提供向量搜索、文本搜索和集合管理等功能。

  • by tonycai
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 tonycai/milvus-mcp-server

使用说明

Milvus MCP服务器

一个连接器,使大型语言模型能够通过Anthropic的模型上下文协议(MCP)与Milvus矢量数据库进行接口。

概述

该服务器实现了Anthropic的模型上下文协议(MCP),允许AI助手直接查询和管理Milvus中的矢量数据库。它为矢量搜索、文本搜索和集合管理提供了工具。

特性

  • 向量相似性搜索:使用各种距离度量(COSINE、L2、IP)查找相似向量
  • 全文检索:跨集合执行文本搜索
  • 收集管理:创建、加载、发布和查询集合
  • 数据操作:插入、删除和更新矢量数据
  • 数据库操作:列出数据库并在数据库之间切换

安装

  1. 克隆此存储库:

    git clone <repository-url>
    cd mcp-server-milvus
    
  2. 安装依赖项:

    pip install -r requirements.txt
    
  3. 配置您的环境:

    cp example.env .env
    # Edit .env with your Milvus connection details
    

用法

启动服务器

python server.py --milvus-uri http://localhost:19530 --milvus-token <token> --milvus-db <db_name>

或使用中定义的环境变量 .env.

可用的MCP工具

  • milvus_text_search:使用全文搜索搜索文档
  • milvus_list_collections:列出数据库中的所有集合
  • milvus_query:使用筛选表达式查询集合
  • milvus_vector_search:执行向量相似性搜索
  • milvus_create_collection:使用指定的架构创建新集合
  • milvus_insert_data:将数据插入集合
  • milvus_delete_entities:从集合中删除实体
  • milvus_load_collection:将集合加载到内存中
  • milvus_release_collection:从内存中释放集合
  • milvus_list_databases:列出Milvus实例中的所有数据库
  • milvus_use_database:切换到其他数据库

数据格式

集合架构格式

创建集合时,请使用以下架构格式:

{
    "dimension": 128,                 # Vector dimension
    "primary_field": "id",            # Primary key field name
    "id_type": "INT64",               # Primary key data type (will be converted to DataType.INT64)
    "vector_field": "vector",         # Vector field name
    "metric_type": "COSINE",          # Distance metric
    "auto_id": True,                  # Auto-generate IDs
    "enable_dynamic_field": True,     # Enable dynamic fields
    "other_fields": [                 # Additional fields
        {
            "name": "description",
            "type": "VARCHAR",
            "max_length": 65535
        }
    ]
}

矢量数据格式

插入向量时:

# Insert data
data = {
    "vector": [[0.1, 0.2, ...], [0.3, 0.4, ...], ...],  # List of vectors
    "description": ["First item", "Second item", ...]    # Optional field values
}

已知问题和解决方法

有关使用此代码库时的已知问题和最佳实践,请参阅CLAUDE.md。

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。