DBCrust CLI
CLI для десятков баз данных с режимом для агентов: JSON на выходе, режим только для чтения, лимиты и брокер, скрывающий пароли
- 92 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Подключается к базам данных по URL и выполняет произвольные SQL-запросы, при записи без `--read-only` данные меняются
- Хранит сохраненные подключения и пароли, поддерживает SSH-туннели и учетные данные Vault
- Брокер ставится как системный сервис с правами суперпользователя
Установка
- Работает в
В терминале, через 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 сбой соединения.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыТерминальный клиент баз данных на Rust с MCP и JSON CLI: агент читает схему и запускает запросы с правами профиля.
Один MCP-сервер для SQLite, SQL Server, PostgreSQL и MySQL: агент читает и меняет данные, правит схему и выгружает CSV и JSON
Легкое рабочее место для баз данных с MCP-сервером: агент читает схему, выполняет запросы и разбирает данные в PostgreSQL, MySQL и других
Настольный клиент баз данных с MCP-сервером: агент читает схему, выполняет запросы и запускает рабочие процессы через stdio.
Один бинарник строит поисковый индекс по таблицам и логам, и агент получает в ответ несколько записей вместо сырой истории
Экономный по токенам MCP-сервер для PostgreSQL, MySQL, MariaDB, SQL Server и SQLite с режимом только для чтения
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| DBCrust (эта карточка) | нет | 92 | ||
| DBHub | нет | не нужна | 3 839 | MCP-сервер для нескольких СУБД, DBCrust работает как CLI и добавляет брокер без паролей у агента |
| Postgres MCP Pro | нет | API-ключ | 3 472 | MCP-сервер только для PostgreSQL с подбором индексов, DBCrust охватывает десятки источников и файлы |
Коротко о README
README представляет DBCrust как psql-подобную рабочую среду для многих баз и файлов. Описаны установка, URL всех поддерживаемых источников, раздел для ИИ-агентов с контрактом вывода и брокером, SQL по локальным файлам, интерактивные команды с обратной косой чертой, помощник на ИИ и анализатор запросов Django.