Database MCP
Один бинарник MCP-сервера для MySQL, MariaDB, PostgreSQL и SQLite: запросы только на чтение по умолчанию и маскировка ПДн
- 33 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Сервер получает пароль к базе и читает рабочие данные, в ответы могут попасть персональные данные
- После выключения режима только на чтение агент пишет данные и удаляет базы и таблицы
Установка
- Работает в
Ручная установка
curl -fsSL https://dbmcp.haymon.ai/install.sh | bashУстановка для macOS, Linux и WSL; для Windows есть скрипты PowerShell и CMD, для Docker и Cargo см. документацию.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Сервер получает пароль к базе и читает рабочие данные, в ответы могут попасть персональные данные
- После выключения режима только на чтение агент пишет данные и удаляет базы и таблицы
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Database MCP подключает агента к базе MySQL, MariaDB, PostgreSQL или SQLite. Сервер собран на Rust в один файл около 7 МБ, Python, Node и Docker не нужны. Инструменты разбиты на три группы: обзор схемы (listDatabases, listTables, listViews, listTriggers, listFunctions, listProcedures, listMaterializedViews), запросы (readQuery, writeQuery, explainQuery) и изменение структуры (createDatabase, dropDatabase, dropTable). Режим только на чтение включен по умолчанию: инструменты записи агенту скрыты. Инструмент readQuery проверяет запрос по разбору SQL, пропускает один оператор и блокирует опасные функции вроде LOAD_FILE и INTO OUTFILE. К MySQL, MariaDB и PostgreSQL можно ходить через SSH-бастион со встроенным клиентом. Маскировка персональных данных в ответах выключена по умолчанию. Включенная, она находит 46 типов сущностей в семи категориях, от адресов почты и номеров карт до JWT и ключей, и заменяет, маскирует, удаляет или хеширует найденное. Опциональная модель NER добавляет имена, места и организации. Настройки задаются переменными DBMCP_*, файлом окружения или YAML.
Для кого. Разработчикам и аналитикам, которые хотят дать агенту доступ к рабочей базе на чтение и сохранить контроль над записью и персональными данными.
Подходит, если
- Агент разбирает схему незнакомой базы PostgreSQL и находит таблицы по шаблону имени
- Медленный запрос проверяют через explainQuery с планом выполнения
- Локальный SQLite-файл исследуют без установки Python и драйверов
- Выборку из боевой базы отдают модели с маскировкой адресов почты, телефонов и карт
- Базу за SSH-бастионом читают из Claude Code без проброса портов вручную
Не подходит, если
- Агенту требуется менять данные в рабочей базе без проверки человеком
- Нужна база другого типа: сервер знает MySQL, MariaDB, PostgreSQL и SQLite
- Нужна маскировка имен на русском: модель NER в версии 1 рассчитана на английский
- Сервер планируют открыть в сеть без токена: при привязке к не-локальному адресу он откажется стартовать
Пример запроса к агенту
Покажи список таблиц в базе `orders` с подстрокой user в имени и опиши колонки таблицы `users`.MCP
- Транспорт
- stdio, http
- Авторизация
- не нужна
Переменные окружения
DBMCP_DB_BACKENDобязательная- Тип базы: mysql, postgres или sqlite.
DBMCP_DB_HOST- Адрес сервера базы данных.
DBMCP_DB_USER- Пользователь базы данных.
DBMCP_DB_PASSWORDсекрет- Пароль пользователя базы данных.
DBMCP_DB_NAME- Имя базы данных или путь к файлу SQLite.
DBMCP_DB_READ_ONLY- Режим только на чтение, по умолчанию true.
DBMCP_HTTP_AUTH_TOKENсекрет- Токен для HTTP-транспорта, обязателен при привязке к не-локальному адресу.
Ограничения
Выключение режима только на чтение включает writeQuery и инструменты, которые создают и удаляют базы и таблицы. Строка с паролем лежит в переменных окружения клиента. Маскировка ПДн по регулярным выражениям может пропустить часть данных. Модель NER рассчитана на английский текст. SSH-туннель работает с MySQL, MariaDB и PostgreSQL, но не с SQLite. Установка выполняется скриптом по ссылке, его стоит прочитать перед запуском.
Как отключить. Уберите запись dbmcp из .mcp.json или выполните claude mcp `remove` dbmcp. Бинарник удаляется как обычный файл, фоновых служб сервер не создает.
Частые вопросы
Как установить Database MCP?
На macOS, Linux и WSL выполните curl -fsSL https://dbmcp.haymon.ai/install.sh | bash. Для Windows есть скрипты PowerShell и CMD, а Docker и Cargo описаны в документации на dbmcp.haymon.ai.
Может ли агент менять данные?
По умолчанию нет: режим DBMCP_DB_READ_ONLY включен, инструменты записи скрыты. Если выключить его, станут доступны writeQuery, createDatabase, dropDatabase и dropTable.
Как включить маскировку персональных данных?
Задайте DBMCP_PII_ENABLE и выберите оператор в DBMCP_PII_OPERATOR: replace, `mask`, `redact` или `hash`. Категории можно сузить переменной DBMCP_PII_CATEGORIES, например `financial`,`government`.
Как подключить сервер по HTTP, а не по stdio?
Запустите с DBMCP_TRANSPORT=http и укажите в клиенте type http с адресом, по умолчанию http://127.0.0.1:9001/mcp. На не-локальном адресе нужен токен DBMCP_HTTP_AUTH_TOKEN.
Чем Database MCP отличается от DBHub?
Database MCP написан на Rust, ставится одним бинарником, умеет маскировать ПДн и ходить через SSH-бастион. DBHub дополнительно поддерживает SQL Server и экономит токены на описаниях инструментов.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыОдин MCP-сервер для SQLite, SQL Server, PostgreSQL и MySQL: агент читает и меняет данные, правит схему и выгружает CSV и JSON
MCP-сервер на Python для работы с MySQL: список таблиц, чтение данных, выполнение SQL и разбор схемы через контролируемый интерфейс
MCP-сервер для доступа агента к MySQL: чтение схемы и запросы, по умолчанию только на чтение, запись включается флагами
MySQL MCP Server Pro
mysql_mcp_server_pro
MCP-сервер для MySQL: выполняет SQL с ролями доступа, ищет таблицы по комментариям и разбирает блокировки, индексы и планы запросов
Экономный по токенам MCP-сервер для PostgreSQL, MySQL, MariaDB, SQL Server и SQLite с режимом только для чтения
DB MCP Server
db-mcp-server
Сервер MCP для нескольких баз данных с защитой: режим только чтения по каждой базе и ограничение числа строк. Написан на Go, запуск в Docker
Коротко о README
В README изложены установка, быстрый старт через .mcp.json, переменные окружения и слоистую конфигурацию с приоритетом: процесс, файлы окружения, YAML, значения по умолчанию. Отдельные разделы посвящены инструментам, модели безопасности и устройству крейтов.