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

Предварительные требования
Перед использованием этого MCP-сервера убедитесь, что у вас есть:
- Python 3.10 или выше
- Запущенный экземпляр Milvus (локальный или удалённый)
- Установленный uv (рекомендуется для запуска сервера)
Использование
Рекомендуемый способ использования этого MCP-сервера — запускать его напрямую с помощью uv без установки. Именно так настроены Claude Desktop и Cursor в примерах ниже.
Если вы хотите клонировать репозиторий:
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
В качестве альтернативы вы можете изменить файл .env в директории src/mcp_server_milvus/, чтобы задать переменные окружения, и запустить сервер следующей командой:
uv run src/mcp_server_milvus/server.py
Важно: файл .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для тестирования.
Режим Streamable HTTP
-
Описание: Использует HTTP с поддержкой потоковой передачи для связи. Это рекомендуемый транспорт для промышленных развёртываний, поддерживающий как stateful, так и stateless режимы работы.
-
Использование:
uv run src/mcp_server_milvus/server.py --streamable-http --milvus-uri http://localhost:19530 --port 8000--streamable-http: Включает режим Streamable HTTP.--port: Указывает порт для сервера (по умолчанию: 8000).--stateless: Опциональный флаг для stateless-режима (без сохранения сессии).
-
Stateless-режим:
uv run src/mcp_server_milvus/server.py --streamable-http --stateless --milvus-uri http://localhost:19530 --port 8000
Поддерживаемые приложения
Этот MCP-сервер можно использовать с различными LLM-приложениями, поддерживающими Model Context Protocol:
- Claude Desktop: Десктопное приложение Anthropic для Claude
- Cursor: Редактор кода на базе ИИ с поддержкой 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
- macOS:
- Добавьте следующую конфигурацию для режима SSE:
{
"mcpServers": {
"milvus-sse": {
"url": "http://your_sse_host:port/sse",
"disabled": false,
"autoApprove": []
}
}
}
Конфигурация режима Streamable HTTP
{
"mcpServers": {
"milvus-streamable-http": {
"url": "http://your_host:port/mcp",
"disabled": false,
"autoApprove": []
}
}
}
- Перезапустите Claude Desktop, чтобы применить изменения.
Конфигурация режима Stdio
Для режима stdio выполните следующие шаги:
- Установите Claude Desktop с https://claude.ai/download.
- Откройте файл конфигурации Claude Desktop:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- macOS:
- Добавьте следующую конфигурацию для режима stdio:
{
"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"
]
}
}
}
- Перезапустите Claude Desktop, чтобы применить изменения.
Использование с Cursor
Cursor также поддерживает MCP инструменты. Вы можете интегрировать свой Milvus MCP-сервер с Cursor, выполнив следующие шаги:
Шаги по интеграции
- Откройте
Cursor Settings>MCP - Нажмите на
Add new global MCP server - После нажатия вы будете автоматически перенаправлены к файлу
mcp.json, который будет создан, если он не существует
Настройка файла mcp.json
Для режима Stdio:
Перезапишите файл 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"
]
}
}
}
Для режима 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": [] } } }
Для режима Streamable HTTP:
-
Запустите службу:
uv run src/mcp_server_milvus/server.py --streamable-http --milvus-uri http://your_host --port port -
Обновите
mcp.json:{ "mcpServers": { "milvus-streamable-http": { "url": "http://your_host:port/mcp", "disabled": false, "autoApprove": [] } } }
Завершение интеграции
После выполнения вышеуказанных шагов перезапустите Cursor или перезагрузите окно, чтобы конфигурация вступила в силу.
Проверка интеграции
Чтобы убедиться, что Cursor успешно интегрировался с вашим Milvus MCP-сервером:
- Откройте
Cursor Settings>MCP - Проверьте, отображаются ли "milvus", "milvus-sse" или "milvus-streamable-http" в списке (в зависимости от выбранного вами режима)
- Убедитесь, что перечислены соответствующие инструменты (например, milvus_list_collections, milvus_vector_search и т.д.)
- Если сервер включён, но показывает ошибку, обратитесь к разделу «Устранение неполадок» ниже
Доступные инструменты
Сервер предоставляет следующие инструменты:
Операции поиска и запросов
-
milvus_text_search: Поиск документов с использованием полнотекстового поиска- Параметры:
collection_name: Имя коллекции для поискаquery_text: Текст для поискаlimit: Максимальное количество возвращаемых результатов (по умолчанию: 5)output_fields: Поля, включаемые в результатыdrop_ratio: Доля низкочастотных терминов, которые следует игнорировать (0.0-1.0) (по умолчанию: 0.2)
- Параметры:
-
milvus_vector_search: Выполнить поиск по векторному сходству в коллекции- Параметры:
collection_name: Имя коллекции для поискаvector: Вектор запросаvector_field: Имя поля для векторного поиска (по умолчанию: "vector")limit: Максимальное количество возвращаемых результатов (по умолчанию: 5)output_fields: Поля, включаемые в результатыfilter_expr: Выражение фильтраmetric_type: Метрика расстояния (COSINE, L2, IP) (по умолчанию: "COSINE")radius: Опциональная нижняя граница для поиска по диапазону (по умолчанию: None)range_filter: Опциональная верхняя граница для поиска по диапазону (по умолчанию: None)
- Параметры:
-
milvus_hybrid_search: Выполнить гибридный поиск в коллекции- Параметры:
collection_name: Имя коллекции для поискаquery_text: Текстовый запрос для поискаtext_field: Имя поля для текстового поискаvector: Вектор текстового запросаvector_field: Имя поля для векторного поискаlimit: Максимальное количество возвращаемых результатов (по умолчанию: 5)output_fields: Поля, включаемые в результатыfilter_expr: Выражение фильтраsparse_radius: Опциональная нижняя граница для поиска по разреженному диапазону (по умолчанию: None)sparse_range_filter: Опциональная верхняя граница для поиска по разреженному диапазону (по умолчанию: None)dense_radius: Опциональная нижняя граница для поиска по плотному диапазону (по умолчанию: None)dense_range_filter: Опциональная верхняя граница для поиска по плотному диапазону (по умолчанию: None)
- Параметры:
-
milvus_text_similarity_search: Выполнить поиск по текстовому сходству в коллекцииПримечание: Этот инструмент поддерживается только в Milvus 2.6.0 и выше. И вам необходимо настроить функцию эмбеддинга на сервере Milvus. Подробнее см. Embedding Function.
- Параметры:
collection_name: Имя коллекции для поискаquery_text: Текстовый запрос для поиска по сходствуanns_field: Имя поля для текстового поискаlimit: Максимальное количество возвращаемых результатов (по умолчанию: 5)output_fields: Поля, включаемые в результатыmetric_type: Метрика расстояния (COSINE, L2, IP) (по умолчанию: "COSINE")filter_expr: Опциональное выражение фильтраradius: Опциональная нижняя граница для поиска по диапазону (по умолчанию: None)range_filter: Опциональная верхняя граница для поиска по диапазону (по умолчанию: None)
- Параметры:
-
milvus_query: Запросить коллекцию с использованием выражений фильтра- Параметры:
collection_name: Имя коллекции для запросаfilter_expr: Выражение фильтра (например, 'age > 20')output_fields: Поля, включаемые в результатыlimit: Максимальное количество возвращаемых результатов (по умолчанию: 10)
- Параметры:
Управление коллекциями
-
milvus_list_collections: Вывести список всех коллекций в базе данных -
milvus_create_collection: Создать новую коллекцию с быстрой настройкой или пользовательской схемой- Параметры:
collection_name: Имя новой коллекцииauto_id: автоматически генерировать id, по умолчанию Truedimension: размерность вектора, по умолчанию 768; для быстрой настройки, будет проигнорирован, если предоставленfield_schemaprimary_field_name: имя первичного поля, по умолчанию "id"; для быстрой настройки, будет проигнорирован, если предоставленfield_schemavector_field_name: имя векторного поля, по умолчанию "vector"; для быстрой настройки, будет проигнорирован, если предоставленfield_schemametric_type: тип метрики, по умолчанию "COSINE"; для быстрой настройки, будет проигнорирован, если предоставленfield_schemafield_schema: Список схем полей, каждый элемент — словарь со следующими ключами:name: имя поляtype: тип поля
index_params: Опциональный список параметров индекса, каждый элемент — словарь со следующими ключами:field_name: имя индексируемого поляindex_type: тип индекса**kwargs: другие опциональные параметры индекса
other_kwargs: Дополнительные именованные аргументы для создания коллекции
- Параметры:
-
milvus_load_collection: Загрузить коллекцию в память для поиска и запросов- Параметры:
collection_name: Имя загружаемой коллекцииreplica_number: Количество реплик (по умолчанию: 1)
- Параметры:
-
milvus_release_collection: Выгрузить коллекцию из памяти- Параметры:
collection_name: Имя выгружаемой коллекции
- Параметры:
-
milvus_get_collection_info: Выводит подробную информацию, такую как схема, свойства, ID коллекции и другие метаданные конкретной коллекции.- Параметры:
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")
Разработка
Чтобы запустить сервер напрямую:
uv run server.py --milvus-uri http://localhost:19530
Примеры
Использование Claude Desktop
Пример 1: Вывод списка коллекций
What are the collections I have in my Milvus DB?
Затем Claude использует MCP для проверки этой информации в вашей базе данных Milvus.
I'll check what collections are available in your Milvus database.
Here are the collections in your Milvus database:
1. rag_demo
2. test
3. chat_messages
4. text_collection
5. image_collection
6. customized_setup
7. streaming_rag_demo
Пример 2: Поиск документов
Find documents in my text_collection that mention "machine learning"
Claude будет использовать возможности полнотекстового поиска Milvus для поиска релевантных документов:
I'll search for documents about machine learning in your text_collection.
> View result from milvus-text-search from milvus (local)
Here are the documents I found that mention machine learning:
[Results will appear here based on your actual data]
Использование Cursor
Пример: Создание коллекции
В Cursor вы можете спросить:
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.
Collection 'articles' has been created successfully with the following schema:
- title: string
- content: string
- vector: float vector[128]
Устранение неполадок
Распространённые проблемы
Ошибки подключения
Если вы видите ошибки типа «Не удалось подключиться к серверу Milvus»:
- Убедитесь, что ваш экземпляр Milvus запущен:
docker ps(при использовании Docker) - Проверьте правильность URI в вашей конфигурации
- Убедитесь, что нет правил брандмауэра, блокирующих соединение
- Попробуйте использовать
127.0.0.1вместоlocalhostв URI
Проблемы с аутентификацией
Если вы видите ошибки аутентификации:
- Проверьте правильность вашего
MILVUS_TOKEN - Проверьте, требует ли ваш экземпляр Milvus аутентификации
- Убедитесь, что у вас есть правильные разрешения для операций, которые вы пытаетесь выполнить
Инструмент не найден
Если инструменты MCP не отображаются в Claude Desktop или Cursor:
- Перезапустите приложение
- Проверьте логи сервера на наличие ошибок
- Убедитесь, что сервер MCP работает корректно
- Нажмите кнопку обновления в настройках MCP (для Cursor)
Получение помощи
Если проблемы сохраняются:
- Проверьте GitHub Issues на наличие похожих проблем
- Присоединитесь к Milvus Community Discord для получения поддержки
- Создайте новый issue с подробной информацией о вашей проблеме