⚠️ Эта страница автоматически переведена, и перевод может быть несовершенным.
blog-post

MCP-Manticore: пусть ваш AI-ассистент пишет запросы к Manticore за вас

Введение

Вы наверняка слышали, что Manticore Search очень быстрый. Вы знаете, что он умеет полнотекстовый, векторный и нечеткий поиск в одном движке. Но когда дело доходит до реального использования, вы открываете документацию, пытаетесь угадать SQL-синтаксис и надеетесь, что ваш CREATE TABLE не закончится непонятной ошибкой.

MCP-Manticore меняет ситуацию. Это сервер Model Context Protocol (MCP), который подключает Cursor, Claude Code, Codex CLI или любого AI‑ассистента с поддержкой MCP напрямую к вашему серверу Manticore. AI может читать документацию, проверять схему и выполнять запросы — ещё до того, как напишет для вас хотя бы один SQL-запрос.

MCP (Model Context Protocol) — это открытый стандарт, который позволяет AI‑ассистентам подключаться к внешним инструментам и источникам данных. Вместо того чтобы AI выдумывал синтаксис Manticore по обучающим данным непонятного происхождения, он получает доступ к вашей базе данных и официальной документации в реальном времени.

Два сценария, в которых это особенно полезно

В зависимости от задачи MCP-Manticore особенно полезен в двух основных сценариях:

1. Помощь разработчику (основной сценарий): Вы создаёте приложение на базе Manticore. AI помогает создавать таблицы, писать сложные запросы и разбираться в возможностях системы — без необходимости держать в голове весь синтаксис SQL.

2. Исследование данных (вторичный сценарий): У вас уже есть данные в Manticore, и вы хотите задавать к ним вопросы на обычном английском. Например: «Покажи самые дешёвые аксессуары» или «Найди товары, похожие на этот». Для сложных операций вроде векторного поиска или нечеткого сопоставления AI нужен MCP, чтобы знать правильный синтаксис именно для Manticore.

Давайте рассмотрим оба.

Проблема: AI без контекста

Когда вы просите AI‑ассистента помочь с Manticore без интеграции MCP, происходит следующее:

Пример: создание таблицы с автоматическим созданием эмбеддингов

Вы: "Как создать таблицу Manticore с автоматическим созданием эмбеддингов для семантического поиска?"

AI (угадывая):

CREATE TABLE products (
    title text,
    description text,
    description_vector float_vector 
        embedding='sentence-transformers/all-MiniLM-L6-v2' 
        source='description'
);

Выглядит правдоподобно, правда? Но это неверно. В реальном синтаксисе используются MODEL_NAME и FROM, а не embedding и source. Вы поймёте это только после того, как запрос завершится ошибкой и вам снова придётся идти в документацию.

Обычно всё происходит по одному и тому же сценарию:

  1. AI генерирует запрос на основе устаревшего или угаданного синтаксиса
  2. Вы запускаете его, получаете ошибку
  3. Вы вручную проверяете документацию
  4. Вы исправляете AI (или исправляете сами)
  5. Повторяете, пока не заработает

Для разработчиков, которые интегрируют Manticore в свои приложения, такие лишние шаги быстро съедают время и продуктивность. Вместо работы с данными вы боретесь с синтаксисом.

Решение: MCP-Manticore

С включённым MCP-Manticore разговор меняется:

Вы: "Как создать таблицу Manticore с автоматическим созданием эмбеддингов для семантического поиска?"

AI: "Позвольте мне проверить документацию для правильного синтаксиса..."

[AI вызывает list_documentation через MCP, ищет "embedding|semantic|knn|vector"]

AI: "Вот правильный синтаксис. В Manticore для автоматического создания эмбеддингов используются MODEL_NAME и FROM:"

CREATE TABLE products (
    title TEXT,
    description TEXT,
    embedding_vector FLOAT_VECTOR KNN_TYPE='hnsw' HNSW_SIMILARITY='l2'
    MODEL_NAME='sentence-transformers/all-MiniLM-L6-v2' FROM='title,description'
);

Теперь у AI есть:

  • Доступ в реальном времени к документации Manticore
  • Проверка схемы через list_tables() и describe_table()
  • Выполнение запросов для тестирования и проверки
  • Контроль безопасности — по умолчанию только чтение; операции записи требуют явного разрешения

Реальные примеры: с MCP и без MCP

Пример 1: создание схемы

Без MCP:
AI угадывает синтаксис и использует embedding='...' и source='...' — параметров, которых в Manticore вообще нет. В результате вы получаете ошибку и тратите время на отладку.

С MCP:
AI сначала запрашивает официальную документацию и сразу выдаёт правильный синтаксис с MODEL_NAME и FROM. Заодно он объясняет, какие модели поддерживаются (локальные модели Hugging Face, OpenAI, Voyage, Jina) и какие есть варианты HNSW_SIMILARITY (L2, IP, COSINE).

Пример 2: семантический поиск с автоматическим созданием эмбеддингов

Вы: "Найдите товары, похожие на 'noise-canceling headphones for travel'"

Без MCP:
Не имея доступа к документации, AI полностью теряется и начинает:

  • пытаться делать SELECT по всем данным и агрегировать результат без какого-либо внятного фильтра
  • выдумывать векторные эмбеддинги с несуществующим синтаксисом вроде ANY_KNN(embedding, (-0.07089090,0.04201586,-0.03262700...))
  • писать Python-скрипты для ручного расчёта похожести
  • в итоге скатываться к обычному строковому сопоставлению по описаниям

Результат: Находит "Wireless Headphones" только потому, что в описании буквально встречается фраза "noise-canceling headphones" — это чистая удача, а не семантический поиск.

С MCP:
AI проверяет документацию, видит, что в таблице настроено автоматическое создание эмбеддингов, и узнаёт, что knn() может принимать текст напрямую, если указан MODEL_NAME:

SELECT id, name, description, knn_dist() 
FROM products 
WHERE knn(embedding, 5, 'noise-canceling headphones for travel');

Результат: Возвращает Wireless Headphones на первом месте, но вдобавок показывает и семантически близкие товары — это уже настоящий векторный поиск, а не совпадение по ключевым словам.

Пример 3: нечеткий поиск (устойчивость к опечаткам)

Вы: "Найдите товары, даже если я ошибаюсь в написании названия, например 'headphons' вместо 'headphones'"

Без MCP:
AI начинает перебирать всё подряд, надеясь, что хоть что-то сработает:

  • MATCH('headphons~1') и MATCH('headphons~') — неверные операторы
  • CALL SUGGEST('headphons', 'products') — неверный подход для этой задачи
  • MATCH('FUZZY(headphons') — вымышленный синтаксис, которого не существует
  • ALTER TABLE products SET min_infix_len = 3 — ненужный и неверный шаг
  • OPTION expand_keywords = 1 — несвязанная возможность

Он даже пытается оптимизировать таблицу и снова запускать подсказки. В итоге получается полный хаос.

Результат: Нет ни одного рабочего запроса — только набор неудачных попыток, основанных на устаревших или спутанных знаниях.

С MCP:
AI проверяет документацию и сразу находит правильный синтаксис:

SELECT * FROM products WHERE MATCH('headphons') OPTION fuzzy=1;

Результат: Возвращает "Wireless Headphones" несмотря на опечатку. AI также объясняет, что fuzzy=1 допускает расстояние Левенштейна 1, а через OPTION fuzzy=1, distance=2 можно сделать поиск ещё терпимее к ошибкам.

Ключевые возможности

Интеллектуальный поиск документации

Сервер предоставляет инструменты, которые позволяют AI понять структуру ваших данных до того, как он начнёт писать запросы:

Построение запросов с учётом схемы

Сервер предоставляет инструменты, которые позволяют AI понять структуру ваших данных до того, как он начнёт писать запросы:

  • list_tables() — показать существующие таблицы
  • describe_table() — посмотреть имена столбцов и их типы
  • execute_query() — выполнять запросы и видеть результаты

Безопасное выполнение запросов

По умолчанию MCP-Manticore работает в режиме только для чтения. Операции записи (INSERT, UPDATE, DELETE, DROP) нужно явно включить через переменные окружения:

export MANTICORE_ALLOW_WRITE_ACCESS=true  # Включить INSERT/UPDATE/DELETE
export MANTICORE_ALLOW_DROP=true          # Включить DROP/TRUNCATE

Несколько вариантов транспорта

Подключение возможно через:

  • stdio (для CLI-ассистентов вроде Claude Code)
  • HTTP (для веб-интеграций)
  • SSE (Server-Sent Events для обновлений в реальном времени)

При необходимости можно включить JWT-аутентификацию для безопасных развертываний.

Руководство: настройка MCP-Manticore

MCP-Manticore работает с любым AI‑ассистентом, совместимым с MCP, включая Cursor , Claude Code , Codex CLI , Windsurf и другие инструменты, поддерживающие Model Context Protocol.

Шаг 1: Убедитесь, что установлен UV

MCP-Manticore лучше всего работает с uv — быстрым менеджером пакетов Python:

curl -LsSf https://astral.sh/uv/install.sh | sh

С uv вам не нужно устанавливать MCP-Manticore вручную — uvx сам скачает и запустит его автоматически.

Шаг 2: Настройка переменных окружения (необязательно)

# Обязательно: подключение к Manticore (показаны значения по умолчанию)
export MANTICORE_HOST=localhost
export MANTICORE_PORT=9308

# Необязательно: включить доступ на запись (по умолчанию только чтение)
export MANTICORE_ALLOW_WRITE_ACCESS=true

# Необязательно: разрешить destructive-операции (DROP, TRUNCATE)
export MANTICORE_ALLOW_DROP=false

Шаг 3: Добавьте сервер в конфигурацию MCP-клиента

Общая конфигурация:

  • Команда: uvx mcp-manticore
  • Переменные окружения (если нужно): MANTICORE_HOST, MANTICORE_PORT и т. д.

Пример конфигурации (mcp.json):

{
  "mcpServers": {
    "manticore": {
      "command": "uvx",
      "args": ["mcp-manticore"],
      "env": {
        "MANTICORE_HOST": "localhost",
        "MANTICORE_PORT": "9308"
      }
    }
  }
}

Инструкции по настройке конкретных клиентов (Cursor, Claude Desktop, Windsurf и т. д.) см. в README проекта MCP-Manticore .

Шаг 4: Проверьте соединение

Проверьте, задав вопрос вашему AI‑ассистенту:

"Покажи все таблицы в Manticore"

Вы должны увидеть, как AI вызывает инструмент list_tables() и отображает ваши таблицы.

Справочник конфигурации

Переменная окруженияОписаниеПо умолчанию
MANTICORE_HOSTИмя хоста сервера Manticorelocalhost
MANTICORE_PORTHTTP‑порт Manticore9308
MANTICORE_ALLOW_WRITE_ACCESSРазрешить INSERT/UPDATE/DELETEfalse
MANTICORE_ALLOW_DROPРазрешить DROP/TRUNCATEfalse
MANTICORE_MCP_TRANSPORTТип транспорта (stdio/http/sse)stdio
MANTICORE_MCP_AUTH_TOKENJWT‑токен для HTTP/SSE-

Будущее: агенты, которые устанавливают себя сами

На горизонте появляется третий сценарий: автономные агенты, которые сами обнаруживают и устанавливают MCP‑серверы.

Представьте AI‑агента, который:

  1. Находит ваш репозиторий GitHub, где упоминается Manticore
  2. Ищет "Manticore MCP server"
  3. Находит MCP-Manticore и автоматически устанавливает его
  4. Начинает выполнять запросы к вашей базе данных, чтобы завершить задачу

Это уже не научная фантастика — Codex от OpenAI и другие агентные системы движутся именно в эту сторону. Когда это будущее наступит, наличие MCP-Manticore в реестре MCP будет означать, что ваши AI‑инструменты смогут работать с Manticore без ручной настройки.

Заключение

MCP-Manticore превращает AI‑ассистентов из пассивных генераторов текста в активных и информированных партнёров по разработке. Неважно, какая у вас задача:

  • Разрабатываете на Manticore — позвольте AI разбираться с синтаксисом, пока вы сосредоточены на приложении
  • Изучаете возможности Manticore — задавайте вопросы на обычном английском и получайте точные ответы, подкреплённые документацией
  • Исследуете свои данные — выполняйте запросы без необходимости помнить SQL-синтаксис или схемы таблиц

Старый подход: угадать, ошибиться, отладить, повторить.
Новый подход: спросить, проверить, выполнить — и готово.

Готовы попробовать? Если у вас уже установлен uv, просто добавьте MCP-Manticore в настройки MCP‑клиента и начните задавать вопросы. Ваше будущее «я», избавленное от синтаксических ловушек, ещё скажет вам спасибо.


Ресурсы:

Установить Manticore Search

Установить Manticore Search