MCP-сервер для Milvus
Model Context Protocol (MCP) — это открытый протокол, который обеспечивает бесшовную интеграцию между приложениями LLM и внешними источниками данных и инструментами. Независимо от того, создаете ли вы IDE на базе ИИ, улучшаете интерфейс чата или создаете собственные рабочие процессы ИИ, MCP предоставляет стандартизированный способ подключения LLM к необходимому им контексту.
Этот репозиторий содержит сервер MCP, который обеспечивает доступ к функциональным возможностям векторной базы данных Milvus .

Предпосылки
Перед использованием этого сервера MCP убедитесь, что у вас есть:
Python 3.10 или выше
Работающий экземпляр Milvus (локальный или удаленный)
uv установлен (рекомендуется для запуска сервера)
Related MCP server: Aiven MCP Server
Использование
Рекомендуемый способ использования этого сервера MCP — запустить его напрямую с uv без установки. Вот как Claude Desktop и Cursor настроены для его использования в примерах ниже.
Если вы хотите клонировать репозиторий:
Затем вы можете запустить сервер напрямую:
В качестве альтернативы вы можете изменить файл .env в каталоге src/mcp_server_milvus/ чтобы задать переменные среды и запустить сервер с помощью следующей команды:
Важно: файл .env будет иметь более высокий приоритет, чем аргументы командной строки.
Режимы работы
Сервер поддерживает два режима работы: stdio (по умолчанию) и SSE (Server-Sent Events).
Режим Stdio (по умолчанию)
Описание : Общается с клиентом через стандартный ввод/вывод. Это режим по умолчанию, если режим не указан.
Использование:
uv run src/mcp_server_milvus/server.py --milvus-uri http://localhost:19530
Режим SSE
Описание : Использует HTTP Server-Sent Events для связи. Этот режим позволяет нескольким клиентам подключаться через HTTP и подходит для веб-приложений.
Использование:
uv run src/mcp_server_milvus/server.py --sse --milvus-uri http://localhost:19530 --port 8000--sse: Включает режим SSE.--port: Указывает порт для сервера SSE (по умолчанию: 8000).
Отладка в режиме SSE:
Если вы хотите выполнить отладку в режиме SSE, после запуска службы SSE введите следующую команду:
mcp dev src/mcp_server_milvus/server.pyВывод будет примерно таким:
% mcp dev src/mcp_server_milvus/merged_server.py Starting MCP inspector... ⚙️ Proxy server listening on port 6277 🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀Затем вы можете получить доступ к MCP Inspector по адресу
http://127.0.0.1:6274для тестирования.
Поддерживаемые приложения
Этот сервер MCP можно использовать с различными приложениями LLM, которые поддерживают протокол контекста модели:
Claude Desktop : настольное приложение Anthropic для Claude
Курсор : редактор кода на базе искусственного интеллекта с поддержкой MCP
Пользовательские клиенты MCP : любое приложение, реализующее спецификацию клиента MCP.
Использование с Claude Desktop
Конфигурация для разных режимов
Конфигурация режима SSE
Чтобы настроить Claude Desktop для режима SSE, выполните следующие действия:
Установите Claude Desktop с https://claude.ai/download .
Откройте файл конфигурации Claude Desktop:
macOS :
~/Library/Application Support/Claude/claude_desktop_config.json
Добавьте следующую конфигурацию для режима SSE:
Перезапустите Claude Desktop, чтобы изменения вступили в силу.
Конфигурация режима stdio
Для режима stdio выполните следующие действия:
Установите Claude Desktop с https://claude.ai/download .
Откройте файл конфигурации Claude Desktop:
macOS :
~/Library/Application Support/Claude/claude_desktop_config.json
Добавьте следующую конфигурацию для режима stdio:
Перезапустите Claude Desktop, чтобы изменения вступили в силу.
Использование с курсором
Cursor также поддерживает инструменты MCP . Вы можете интегрировать свой сервер Milvus MCP с Cursor, выполнив следующие шаги:
Этапы интеграции
Откройте
Cursor Settings>MCPНажмите
Add new global MCP serverПосле нажатия вы автоматически перейдете к файлу
mcp.json, который будет создан, если его не существует.
Настройка файла mcp.json
Для стандартного режима:
Перезапишите файл mcp.json следующим содержимым:
Для режима SSE:
Запустите службу, выполнив следующую команду:
uv run src/mcp_server_milvus/server.py --sse --milvus-uri http://your_sse_host --port portПримечание : замените
http://your_sse_hostна фактический адрес вашего хоста SSE, аportна конкретный номер порта, который вы используете.После запуска и запуска службы перезапишите файл
mcp.jsonследующим содержимым:{ "mcpServers": { "milvus-sse": { "url": "http://your_sse_host:port/sse", "disabled": false, "autoApprove": [] } } }
Завершение интеграции
После выполнения вышеуказанных шагов перезапустите Cursor или перезагрузите окно, чтобы убедиться, что конфигурация вступила в силу.
Проверка интеграции
Чтобы убедиться, что Cursor успешно интегрировался с вашим сервером Milvus MCP:
Откройте
Cursor Settings>MCPПроверьте, есть ли в списке «milvus» или «milvus-sse» (в зависимости от выбранного вами режима)
Убедитесь, что соответствующие инструменты перечислены (например, milvus_list_collections, milvus_vector_search и т. д.)
Если сервер включен, но выдает ошибку, проверьте раздел «Устранение неполадок» ниже.
Доступные инструменты
Сервер предоставляет следующие инструменты:
Операции поиска и запроса
milvus_text_search: Поиск документов с помощью полнотекстового поискаПараметры:
collection_name: Название коллекции для поискаquery_text: Текст для поискаlimit: максимальное количество возвращаемых результатов (по умолчанию: 5)output_fields: Поля для включения в результатыdrop_ratio: доля низкочастотных терминов, которые следует игнорировать (0,0–1,0)
milvus_vector_search: Выполнение поиска векторного сходства в коллекцииПараметры:
collection_name: Название коллекции для поискаvector: Вектор запросаvector_field: Имя поля для поиска вектора (по умолчанию: «vector»)limit: максимальное количество возвращаемых результатов (по умолчанию: 5)output_fields: Поля для включения в результатыfilter_expr: Выражение фильтраmetric_type: Метрика расстояния (КОСИНУС, L2, IP) (по умолчанию: «КОСИНУС»)
milvus_hybrid_search: Выполнить гибридный поиск по коллекцииПараметры:
collection_name: Название коллекции для поискаquery_text: Текстовый запрос для поискаtext_field: Имя поля для текстового поискаvector: Вектор текстового запросаvector_field: Имя поля для поиска вектораlimit: максимальное количество возвращаемых результатовoutput_fields: Поля для включения в результатыfilter_expr: Выражение фильтра
milvus_query: Запрос коллекции с использованием выражений фильтраПараметры:
collection_name: Имя коллекции для запросаfilter_expr: Выражение фильтра (например, «возраст > 20»)output_fields: Поля для включения в результатыlimit: максимальное количество возвращаемых результатов (по умолчанию: 10)
Управление коллекциями
milvus_list_collections: Список всех коллекций в базе данныхmilvus_create_collection: Создать новую коллекцию с указанной схемойПараметры:
collection_name: Название новой коллекцииcollection_schema: Определение схемы коллекцииindex_params: Необязательные параметры индекса
milvus_load_collection: Загрузка коллекции в память для поиска и запросаПараметры:
collection_name: Имя коллекции для загрузкиreplica_number: Количество реплик (по умолчанию: 1)
milvus_release_collection: Освободить коллекцию из памятиПараметры:
collection_name: Название коллекции для выпуска
milvus_get_collection_info: выводит подробную информацию, такую как схема, свойства, идентификатор коллекции и другие метаданные конкретной коллекции.Параметры:
collection_name: Название коллекции, о которой нужно получить подробную информацию
Операции с данными
milvus_insert_data: вставить данные в коллекцию.Параметры:
collection_name: Название коллекцииdata: Словарь, сопоставляющий имена полей со списками значений
milvus_delete_entities: Удаление сущностей из коллекции на основе выражения фильтраПараметры:
collection_name: Название коллекцииfilter_expr: Выражение фильтра для выбора объектов для удаления
Переменные среды
MILVUS_URI: URI сервера Milvus (можно установить вместо --milvus-uri)MILVUS_TOKEN: Необязательный токен аутентификацииMILVUS_DB: Имя базы данных (по умолчанию «default»)
Разработка
Чтобы запустить сервер напрямую:
Примеры
Использование Claude Desktop
Пример 1: Перечисление коллекций
Затем Клод проверит эту информацию в вашей базе данных Milvus с помощью MCP.
Пример 2: Поиск документов
Клод будет использовать возможности полнотекстового поиска Milvus для поиска соответствующих документов:
Использование курсора
Пример: Создание коллекции
В Курсоре вы можете спросить:
Курсор будет использовать сервер MCP для выполнения этой операции:
Поиск неисправностей
Общие проблемы
Ошибки соединения
Если вы видите ошибки типа «Не удалось подключиться к серверу Milvus»:
Убедитесь, что ваш экземпляр Milvus запущен:
docker ps(если используется Docker)Проверьте правильность URI в вашей конфигурации.
Убедитесь, что нет правил брандмауэра, блокирующих соединение.
Попробуйте использовать
127.0.0.1вместоlocalhostв URI
Проблемы с аутентификацией
Если вы видите ошибки аутентификации:
Проверьте правильность
MILVUS_TOKENПроверьте, требует ли ваш экземпляр Milvus аутентификации.
Убедитесь, что у вас есть необходимые разрешения для операций, которые вы пытаетесь выполнить.
Инструмент не найден
Если инструменты MCP не отображаются в Claude Desktop или Cursor:
Перезапустите приложение.
Проверьте журналы сервера на наличие ошибок.
Убедитесь, что сервер MCP работает правильно.
Нажмите кнопку обновления в настройках MCP (для курсора)
Получение помощи
Если проблемы продолжаются:
Проверьте GitHub Issues на предмет похожих проблем.
Присоединяйтесь к сообществу Zilliz в Discord для получения поддержки
Создайте новый вопрос с подробной информацией о вашей проблеме