mnemiq MCP
MCP-сервер text-to-SQL: агент спрашивает базу словами, получает SQL и трассу ответа, а при нехватке данных отказ с причиной.
- 88 ★ репозитория
- Последний коммит
Расширенный доступ
Почему такой уровень
- Вопросы и описание схемы уходят выбранной модели, а запросы выполняются на вашей базе.
- Строки результата попадают в контекст агента, поэтому права ролей задают заранее.
Установка
- Работает в
Ручная установка
{ "mcpServers": { "mnemiq": { "command": "mnemiq", "args": ["serve"] } } }Конфигурация из README. Сначала выполняют `uv sync`, настраивают источник и модель, затем `mnemiq enrich` и `mnemiq build`.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Вопросы и описание схемы уходят выбранной модели, а запросы выполняются на вашей базе.
- Строки результата попадают в контекст агента, поэтому права ролей задают заранее.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
mnemiq отвечает на вопросы на естественном языке по вашей базе данных и отдает агенту два инструмента через MCP: `db_read(question)` возвращает ответ, SQL и трассу, `get_schema()` возвращает схему. Оба инструмента только читают данные и работают в границах прав вызывающего. Модель только составляет запрос. Затем детерминированный слой проверяет, что запрос читающий, обращается только к доступным объектам, компилируется в диалекте источника и проходит `EXPLAIN`. Не прошедший проверку запрос заканчивается отказом с причиной, без правдоподобного числа. Источники: Postgres, SQLite, DuckDB, Oracle, Snowflake и Databricks. Встроенный стенд измеряет точность на ваших вопросах.
Для кого. Аналитикам данных и командам, которые хотят дать Claude Code или Cursor ответы по своей базе и сначала измерить точность на ее вопросах.
Подходит, если
- Агенту нужны цифры из склада данных, но писать SQL руками никто не хочет.
- Для каждой роли нужны свои права: таблицы вне доступа модель вообще не видит.
- Перед запуском интересует точность на своей схеме: двадцать-тридцать вопросов прогоняют с разными настройками.
- Ответ должен показывать запрос и прочитанные таблицы, чтобы его проверил человек.
Не подходит, если
- Требуется запись в базу или изменение данных: инструменты только читают.
- Данные нельзя отправлять внешнему поставщику модели, а локальной модели нет.
- Нужен готовый хостинг без развертывания: проект запускают самостоятельно.
Пример запроса к агенту
Сколько у нас клиентов по странам? Покажи SQL и таблицы, из которых ты брал данные.MCP
- Транспорт
- stdio
- Авторизация
- API-ключ
Переменные окружения
MNEMIQ_LLM_BASE_URLобязательная- Адрес совместимого с OpenAI API модели, которая пишет SQL.
MNEMIQ_LLM_API_KEYобязательная, секрет- Ключ доступа к модели.
MNEMIQ_LLM_MODELобязательная- Название модели.
MNEMIQ_SOURCES_PATHобязательная- Путь к манифесту источников данных.
MNEMIQ_AUTHZ_PATHобязательная- Путь к политике доступа ролей.
MNEMIQ_STORE_PATHобязательная- Путь к файлу DuckDB с кешем обогащения.
Ограничения
Нужен Python 3.12 и новее и менеджер `uv`, первая установка тянет около 230 МБ. Требуется доступ к модели через переменные `MNEMIQ_LLM_BASE_URL`, `MNEMIQ_LLM_API_KEY` и `MNEMIQ_LLM_MODEL`. Перед вопросами нужно выполнить `mnemiq enrich` и `mnemiq build`, пока этого нет, инструмент возвращает ошибку. DuckDB в зависимостях ограничен версией ниже 2. Проект молодой: версия в `pyproject.toml` помечена как `0.1.0.dev0`.
Как отключить. Уберите запись `mnemiq` из конфигурации MCP-клиента. Кеш лежит по пути `MNEMIQ_STORE_PATH` и удаляется вместе с этим файлом.
Частые вопросы
Какие инструменты MCP дает mnemiq?
Два: `db_read(question)` возвращает ответ, SQL и трассу, `get_schema()` отдает схему. Оба только читают и учитывают права вызывающего.
Как подключить mnemiq к MCP-клиенту?
Добавьте в конфигурацию `{ "mcpServers": { "mnemiq": { "command": "mnemiq", "args": ["serve"] } } }`. При установке через `uv sync` запускайте `uv run mnemiq serve` из каталога репозитория.
Что будет, если данных для ответа нет?
Движок откажет и назовет, каких столбцов не хватает, вместо числа, которое выглядит правдоподобно.
Можно ли запустить mnemiq без своей базы?
Да. `uv run python scripts/seed_demo.py` создает небольшую SQLite-базу с манифестом источников и политикой доступа в папке `demo/`.
Есть ли веб-интерфейс?
Да, стенд запускается командой `uv run mnemiq serve --http` на `127.0.0.1:8080` после сборки каталога `workbench`.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыОдин бинарник MCP-сервера для MySQL, MariaDB, PostgreSQL и SQLite: запросы только на чтение по умолчанию и маскировка ПДн
Один MCP-сервер для SQLite, SQL Server, PostgreSQL и MySQL: агент читает и меняет данные, правит схему и выгружает CSV и JSON
SQL-движок на SQLite с плагинами для приложений, баз и файлов: команда anyquery mcp открывает эти данные Claude, Cursor и другим клиентам MCP
MCP-сервер на Go: агент задает вопросы базе PostgreSQL обычными словами и получает результат запроса
Десктопное рабочее место для SQL с встроенным MCP-сервером: агент читает схему и выполняет запросы в том же клиенте, где работаете вы
MCP-сервер на Python для работы с MySQL: список таблиц, чтение данных, выполнение SQL и разбор схемы через контролируемый интерфейс
Коротко о README
Проект дает движок text-to-SQL и стенд оценки точности на ваших данных. Описаны девять стадий ответа, уровни семантического слоя и быстрый старт на демо-базе. Отдельный репозиторий beacon проверяет результаты, чтобы система не оценивала сама себя.