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

MCP-Manticore: Let Your AI Assistant Write Manticore Queries for You

Введение

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

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

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. Он также объяснил поддерживаемые модели (локальные модели HuggingFace, 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:
  • CODE_BLOCK_2

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

Пример 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 проверяет документацию и сразу находит правильный синтаксис:
  • CODE_BLOCK_3
  • OPTION expand_keywords = 1 — unrelated feature
    It even tried to optimize the table and run suggestions again. Complete chaos.
    Result: No working query. Just a pile of failed attempts based on outdated or confused training data.

With MCP:

The AI checks the documentation and finds the correct syntax immediately:

SELECT * FROM products WHERE MATCH('headphons') OPTION fuzzy=1;
Result: Возвращает "Wireless Headphones" несмотря на опечатку. ИИ также объясняет, что fuzzy=1 позволяет расстояние Левенштейна 1 (разница в один символ), и вы можете настроить допуск с помощью OPTION fuzzy=1, distance=2 для большей гибкости.

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

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

MCP-Manticore включает загрузчик документации, который напрямую получает её из Manticore Search manual на GitHub. Когда вы спрашиваете о таких функциях, как поиск KNN‑векторов, нечеткое сопоставление или полнотекстовые операторы, ИИ сначала извлекает официальную документацию.

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

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

  • list_tables() — Показать существующие таблицы

  • describe_table() — Понять имена столбцов и их типы

  • execute_query() — Выполнять запросы и видеть результаты

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

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

export MANTICORE_ALLOW_WRITE_ACCESS=true # Enable INSERT/UPDATE/DELETE

export MANTICORE_ALLOW_DROP=true # Enable DROP/TRUNCATE

### Несколько вариантов транспорта
Подключение через:
  • stdio (для AI‑ассистентов в 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: Настройка переменных окружения (необязательно)

Required: Manticore connection (defaults shown)

export MANTICORE_HOST=localhost

export MANTICORE_PORT=9308
# Optional: Enable write access (default: read-only)
export MANTICORE_ALLOW_WRITE_ACCESS=true

# Optional: Allow destructive operations (DROP, TRUNCATE)
export MANTICORE_ALLOW_DROP=false

### Шаг 3: Добавьте в ваш MCP‑клиент
**Общая конфигурация:**
  • Команда: uvx mcp-manticore

  • Переменные окружения (если необходимо): MANTICORE_HOST, MANTICORE_PORT, etc.
    Пример конфигурации (mcp.json):
    {

    "mcpServers": {

    "manticore": {
      "command": "uvx",
      "args": ["mcp-manticore"],
      "env": {
        "MANTICORE_HOST": "localhost",
        "MANTICORE_PORT": "9308"
      }
    }
  }
}
Для инструкций по настройке конкретного клиента (Cursor, Claude Desktop, Windsurf и т.д.) см. [MCP-Manticore README](https://github.com/manticoresoftware/mcp-manticore#client-configuration).
### Шаг 4: Проверка соединения

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

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

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

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

| Переменная окружения | Описание | По умолчанию |

|---|---|---|

| MANTICORE_HOST | Имя хоста сервера Manticore | localhost |
| MANTICORE_PORT | HTTP‑порт Manticore | 9308 |
| MANTICORE_ALLOW_WRITE_ACCESS | Разрешить INSERT/UPDATE/DELETE | false |
| MANTICORE_ALLOW_DROP | Разрешить DROP/TRUNCATE | false |
| MANTICORE_MCP_TRANSPORT | Тип транспорта (stdio/http/sse) | stdio |
| MANTICORE_MCP_AUTH_TOKEN | JWT‑токен для 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 — Позвольте ИИ обрабатывать синтаксис, пока вы сосредотачиваетесь на приложении

  • Изучение Manticore — Задавайте вопросы на простом английском, получайте точные ответы, подкреплённые документацией

  • Исследование ваших данных — Выполняйте запросы без необходимости запоминать синтаксис SQL или схемы таблиц
    Старый способ: угадывать, ошибаться, отлаживать, повторять.
    Новый способ: спрашивать, проверять, выполнять, готово.

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


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

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