DBCrust CLI

CLI для десятков баз данных с режимом для агентов: JSON на выходе, режим только для чтения, лимиты и брокер, скрывающий пароли

  • 92 ★ репозитория
  • Последний коммит
  • MIT
CLI

Широкий доступ

Почему такой уровень

  • Подключается к базам данных по URL и выполняет произвольные SQL-запросы, при записи без `--read-only` данные меняются
  • Хранит сохраненные подключения и пароли, поддерживает SSH-туннели и учетные данные Vault
  • Брокер ставится как системный сервис с правами суперпользователя
Все причины и проверки

clement-tourriere/dbcrust

Установка

Работает в

В терминале, через SkillFoxx CLI

npx skillfoxx add cli/dbcrust

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Подключается к базам данных по URL и выполняет произвольные SQL-запросы, при записи без `--read-only` данные меняются
  • Хранит сохраненные подключения и пароли, поддерживает SSH-туннели и учетные данные Vault
  • Брокер ставится как системный сервис с правами суперпользователя

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

DBCrust — терминальный клиент в духе psql, который открывает одну и ту же оболочку для PostgreSQL, MySQL, SQLite, ClickHouse, MongoDB, Elasticsearch, Redis, SQL Server, DuckDB и других систем. Подключение задается URL, а файлы Parquet, CSV и JSON читаются через SQL без импорта. Устанавливаются два бинарника: `dbcrust` и короткий `dbc`. Для агентов предусмотрен одноразовый режим. Команда `dbcrust session://prod --read-only --no-input -o json -c "SELECT ..."` печатает результат в stdout одной JSON-строкой, ошибки уходят в stderr, коды выхода стабильны: 0 успех, 1 ошибка SQL, 2 неверный вызов, 3 соединение, 4 запрос остановлен защитой `--read-only`. Флаги `--timeout` и `--max-rows` ограничивают запрос. Контракт полностью выводит команда `dbcrust agents`, а готовый фрагмент для `CLAUDE.md` и `AGENTS.md` есть в руководстве. Когда пароль агенту выдавать нельзя, подключение регистрируют в брокере учетных данных (`dbcrust broker`). Агент получает клиент `dbcrust-agent` без пароля, как CLI или как MCP-сервер, а брокер включает режим только для чтения, лимиты строк и времени и ведет журнал. Помощник на ИИ в интерактивной сессии выключен по умолчанию.

Для кого. Бэкенд-разработчикам и аналитикам, которые поручают Claude Code или Codex читать боевые базы, и командам, где пароли нельзя отдавать агентам.

Подходит, если

  • Агенту нужно одним вызовом получить схему базы: `dbcrust session://prod -c '\ddl'` печатает ее как компактный DDL
  • Выгрузка в Parquet или CSV лежит на диске, и по ней надо посчитать срез SQL-запросом без импорта
  • Агент читает рабочую базу, и пароль не должен попадать в его контекст: помогает брокер и `dbcrust-agent`
  • Один инструмент нужен для PostgreSQL, ClickHouse и Redis, чтобы не учить отдельные клиенты
  • Django-проект тормозит, и надо найти N+1 запросы и пропущенные `select_related` до выката

Не подходит, если

  • Нужен постоянный MCP-сервер с готовыми инструментами по каждой таблице: DBCrust рассчитан на вызовы CLI
  • Требуется жесткая гарантия записи в базу: `--read-only` описан как защита по возможности, для надежности нужна роль с правами только на чтение
  • AWS-источники (DynamoDB, CloudWatch, S3) нужны в готовой сборке: они включаются отдельной сборкой с флагом `aws`
  • База лежит в экзотической СУБД вне списка поддерживаемых схем URL

Пример запроса к агенту

Через DBCrust покажи схему базы prod и посчитай заказы по статусам, только на чтение

Ограничения

  • `--read-only` описан как защита на уровне операторов плюс настройки соединения (`query_only` в SQLite, `default_transaction_read_only` в PostgreSQL). Жесткую гарантию дает только роль в базе с правами на чтение.
  • DynamoDB, CloudWatch Logs и S3 доступны в сборке с флагом `aws` и Rust 1.94.1 или новее, DuckDB в сборке с флагом `duckdb`.
  • Помощник на ИИ в сессии выключен. Команда `??` отправляет схему и вопрос провайдеру модели, а `???` может прочитать ограниченный результат запроса.
  • Установка одной строкой через `curl | sh` скачивает бинарник из сети проекта.

Как отключить. Установленный через uv пакет удаляет `uv tool uninstall dbcrust`, через pipx — `pipx uninstall dbcrust`. Бинарники `dbcrust` и `dbc` из установочного скрипта удаляются вручную. Сервис брокера снимается его командами `dbcrust broker`, а фрагмент про DBCrust убирают из `CLAUDE.md` или `AGENTS.md`.

Частые вопросы

Как дать Claude Code доступ к базе, не отдавая пароль?

Зарегистрируйте подключение в брокере (`sudo dbcrust broker install-service`, затем `dbcrust broker enroll`) и дайте агенту клиент `dbcrust-agent` вместо `dbcrust`. Брокер включает режим только для чтения, лимиты строк и времени и ведет журнал.

Какой формат ответа получает агент?

В режиме `-o json` stdout содержит одну строку с полями `columns` и `rows`. Служебные сообщения идут в stderr, а ошибки печатаются как JSON.

Можно ли делать SQL по CSV и Parquet?

Да. `dbc ./data.parquet` или `dbc 'logs/*.csv?header=true'` регистрирует файлы как таблицы через Apache DataFusion, импорт не нужен.

Как поставить DBCrust?

Выполните `uv tool install dbcrust`, либо `pipx install dbcrust`. Готовый бинарник для macOS и Linux ставит `curl -fsSL https://clement-tourriere.github.io/dbcrust/install.sh | sh`, для Windows есть скрипт PowerShell.

Что значит код выхода 4?

Запрос остановлен защитой `--read-only`: он пытался изменить данные. Остальные коды: 1 ошибка SQL, 2 неверный вызов, 3 сбой соединения.

Обсуждение

Вопросов и отзывов пока нет.

Терминальный клиент баз данных на Rust с MCP и JSON CLI: агент читает схему и запускает запросы с правами профиля.

CLIРасширенный доступ67Звезды репозитория

Один MCP-сервер для SQLite, SQL Server, PostgreSQL и MySQL: агент читает и меняет данные, правит схему и выгружает CSV и JSON

MCP-серверШирокий доступ391Звезды репозитория
Официальный

Легкое рабочее место для баз данных с MCP-сервером: агент читает схему, выполняет запросы и разбирает данные в PostgreSQL, MySQL и других

MCP-серверШирокий доступ5,1 тыс.Звезды репозитория

Настольный клиент баз данных с MCP-сервером: агент читает схему, выполняет запросы и запускает рабочие процессы через stdio.

MCP-серверШирокий доступ118Звезды репозитория

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

CLIРасширенный доступ882Звезды репозитория
Выбор редакции

Экономный по токенам MCP-сервер для PostgreSQL, MySQL, MariaDB, SQL Server и SQLite с режимом только для чтения

MCP-серверШирокий доступ3,8 тыс.Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
DBCrust (эта карточка)нет92
DBHubнетне нужна3 839MCP-сервер для нескольких СУБД, DBCrust работает как CLI и добавляет брокер без паролей у агента
Postgres MCP ProнетAPI-ключ3 472MCP-сервер только для PostgreSQL с подбором индексов, DBCrust охватывает десятки источников и файлы

Коротко о README

README представляет DBCrust как psql-подобную рабочую среду для многих баз и файлов. Описаны установка, URL всех поддерживаемых источников, раздел для ИИ-агентов с контрактом вывода и брокером, SQL по локальным файлам, интерактивные команды с обратной косой чертой, помощник на ИИ и анализатор запросов Django.

Бейдж для README

Сообщить о проблеме