Почему это важно именно вам
Есть одна ситуация, которую знает каждый директор, работающий с данными. Нужно понять: какие клиенты не платили больше трёх месяцев, или сколько сделок закрылось в прошлом квартале по каждому менеджеру, или какой канал привёл больше всего заявок в мае. Данные в базе есть. Но чтобы их получить, нужно или идти к разработчику с запросом «выгрузи мне вот это», или ждать когда кто-то обновит дашборд в Power BI, или самому разбираться в SQL — языке запросов, который большинство директоров не знают и, честно говоря, знать не обязаны.
MCP с базой данных убирает этот барьер полностью. Вы подключаете Claude к своей базе данных один раз — и дальше задаёте вопросы на русском. «Покажи топ-10 клиентов по выручке за этот год». «Сколько заявок пришло вчера». «Сравни конверсию по источникам за апрель и май». Claude переводит вопрос в SQL-запрос, выполняет его, получает данные и возвращает вам понятный ответ — с таблицами, числами, сравнениями. Разработчик в этой цепочке не нужен.
Для директора по развитию, который работает с аналитикой, порталом, коллцентром и маркетинговыми данными, это означает одно: оперативные данные перестают быть привилегией тех, кто умеет в SQL. Вы получаете ответ на вопрос за 30 секунд, а не через день после того, как поставили задачу разработчику.
Что это такое
Представьте базу данных как огромный структурированный архив документов. Там лежат таблицы: клиенты, заказы, платежи, звонки, заявки. Каждая таблица — это как отдельная папка с тысячами одинаково структурированных карточек. Чтобы что-то найти или посчитать, нужно задать запрос на специальном языке — SQL. Что-то вроде: «из папки "заказы" выбери все карточки, где дата больше 1 января, сгруппируй по клиенту и посчитай сумму». Это и есть SQL-запрос, только в человеческом пересказе.
SQL сам по себе не сложный, но требует знания синтаксиса, структуры конкретной базы, названий таблиц и колонок. Для непрограммиста это порог, который реально мешает работе.
@bytebase/dbhub — это MCP-сервер, который становится посредником между вами и базой данных. Он знает структуру вашей базы, отдаёт её Claude и выполняет присланные SQL-запросы, возвращая результат. Claude, в свою очередь, понимает ваш вопрос на русском, формулирует нужный запрос через dbhub и объясняет полученный результат.
Claude не хранит ваши данные
Claude видит данные только в момент запроса — в рамках конкретной сессии. После разговора ничего не сохраняется. Это важно понимать: каждый новый сеанс начинается без памяти о предыдущих запросах к базе.
Схема работы выглядит так: вы задаёте вопрос → Claude через dbhub запрашивает структуру базы → формулирует SQL-запрос → dbhub выполняет его → возвращает данные → Claude объясняет результат вам.
Поддерживаются PostgreSQL (промышленная база данных, стоит за большинством серьёзных продуктов), SQLite (лёгкая файловая база, часто используется в небольших приложениях и локальных сервисах) и ещё несколько популярных систем.
Как работает на практике
Разберём полный путь от установки до первого вопроса к данным.
Шаг 1. Установить Node.js
dbhub работает через Node.js — это среда выполнения JavaScript-кода. Проверьте, есть ли он:
node --version
Если видите что-то вроде v20.11.0 — всё хорошо. Если команда не найдена, скачайте установщик с nodejs.org и запустите его. Процедура стандартная, как любая установка программы на Mac или Windows.
Шаг 2. Добавить dbhub в конфигурацию Claude Code
Проще всего добавить сервер командой — тогда вопрос о файле не встаёт вовсе:
claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
--dsn "postgresql://claude_reader:пароль@localhost:5432/mydb"
Если правите руками — это ~/.claude.json (для себя) или .mcp.json в корне проекта (для команды). Секция называется mcpServers:
{
"mcpServers": {
"dbhub": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@bytebase/dbhub",
"--transport",
"stdio",
"--dsn",
"postgresql://user:password@localhost:5432/mydb"
]
}
}
}
Строку --dsn замените на строку подключения к вашей базе. Для PostgreSQL формат: postgresql://пользователь:пароль@хост:порт/имя_базы. Для SQLite: sqlite:///полный/путь/к/файлу.db.
Пароль в строке подключения
Строка DSN содержит пароль в открытом виде. Файл .mcp.json (или ~/.claude.json) хранится локально на вашем компьютере, но будьте внимательны: не отправляйте этот файл никому и не кладите его в облачное хранилище без шифрования. Если работаете с чувствительными данными — используйте отдельного пользователя базы данных с правами только на чтение.
Шаг 3. Создать пользователя только на чтение (рекомендуется)
Если у вас PostgreSQL и есть доступ к нему как администратор, создайте отдельного пользователя для Claude:
CREATE USER claude_reader WITH PASSWORD 'безопасный_пароль';
GRANT CONNECT ON DATABASE mydb TO claude_reader;
GRANT USAGE ON SCHEMA public TO claude_reader;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO claude_reader;
Этот пользователь сможет только читать данные — никаких удалений, изменений, вставок. Это разумная мера безопасности, особенно если база содержит рабочие данные.
Шаг 4. Перезапустить Claude Code
После изменения конфигурации переподключите сервер: /mcp reconnect db. MCP-серверы инициализируются при старте сессии.
Шаг 5. Проверить подключение
В новой сессии напишите:
Какие таблицы есть в базе данных?
Claude должен ответить списком таблиц с кратким описанием. Если ответил — подключение работает.
Если вместо списка таблиц вы видите ошибку «tool not found» или «MCP server not available» — значит сервер не стартовал. Проверьте, правильно ли установлен Node.js, и убедитесь, что в .mcp.json нет синтаксических ошибок (лишних запятых, незакрытых скобок). JSON — капризный формат: одна лишняя запятая в конце блока ломает весь файл. Проверить синтаксис можно через сайт jsonlint.com — просто вставьте содержимое файла.
Шаг 6. Задавать вопросы
Теперь можно работать. Примеры запросов, которые реально нужны в работе:
Сколько заявок пришло за прошлую неделю?
Покажи топ-10 клиентов по сумме заказов за этот год.
Выведи в таблице: название клиента, количество заказов, общая сумма.
Сравни количество новых клиентов в апреле и мае этого года.
Какие источники трафика привели больше всего заявок в мае?
Укажи конверсию по каждому источнику.
Есть ли клиенты, у которых не было ни одного заказа за последние 90 дней?
Покажи список с датой последнего заказа.
Claude сначала спросит структуру таблиц (это один скрытый запрос к базе), потом сформулирует SQL, выполнит его через dbhub и вернёт результат в читаемом виде.
Хороший рабочий паттерн — начинать сессию с «ориентационного» вопроса: «Опиши мне структуру базы данных: какие таблицы есть, что в них хранится, как они связаны». Это займёт минуту, но дальнейшие вопросы будут точнее — Claude будет использовать правильные таблицы и названия колонок. Можно сохранить этот ответ в CLAUDE.md проекта как постоянный контекст: тогда в каждой новой сессии Claude уже будет знать структуру без дополнительного вопроса.
Если Claude ошибается в структуре
Иногда Claude формулирует запрос с неправильным названием таблицы или колонки. Это случается когда названия нестандартные или когда структура базы неочевидна. В таком случае скажите: «Ты ошибся в названии колонки, правильное название — orders_total». Claude исправит запрос и повторит.
Частые ошибки
Ошибка 1. Забыть перезапустить Claude Code после изменения настроек.
MCP-серверы читаются один раз при старте сессии. Если вы добавили dbhub в конфигурацию, но не переподключили сервер — он ничего не знает о новом сервере. Симптом: Claude отвечает, что не может подключиться к базе данных или не видит инструмент dbhub. Решение: закрыть и открыть заново.
Ошибка 2. Неправильный формат строки DSN.
Каждая СУБД имеет свой формат строки подключения. Для PostgreSQL это postgresql://, для MySQL — mysql://, для SQLite — sqlite:/// (три слеша, третий — начало пути). Опечатка в одном символе означает ошибку подключения. Если получаете ошибку «connection refused» или «cannot open database» — сначала проверяйте DSN посимвольно. Частая проблема: путь к SQLite-файлу не абсолютный. Пишите sqlite:////Users/yourname/data/mybase.db, не sqlite:///~/data/mybase.db — тильда в пути не всегда раскрывается.
Ошибка 3. Задавать слишком расплывчатые вопросы к сложной базе.
«Покажи статистику по продажам» — звучит просто, но для базы с 30 таблицами это неоднозначный запрос. Claude будет угадывать, какие именно таблицы использовать, и может взять не те. Правило: чем точнее вопрос, тем точнее ответ. Добавляйте период, метрику, разрез. «Покажи количество и сумму заказов за июнь 2026, сгруппированных по менеджерам» — это хороший запрос.
Ошибка 4. Давать Claude права на запись в рабочую базу.
Если пользователь базы, которого вы указали в DSN, имеет права на INSERT, UPDATE, DELETE — теоретически Claude может эти операции выполнить, если его об этом попросить. На практике Claude не будет изменять данные без явной просьбы, но лучше исключить саму возможность. Используйте пользователя только с правами SELECT, особенно если это рабочая база с реальными клиентами.
Когда нужно / когда нет
Подключайте MCP с базой данных, если:
- У вас есть доступ к базе данных вашей системы (CRM, портал, аналитика) и вы регулярно хотите получать из неё данные без SQL и без разработчика.
- Вы работаете с SQLite-файлом от локального приложения или скрипта — это вообще без сервера, просто файл.
- У вас аналитическая база данных (отдельная от боевой) специально для отчётности — идеальный сценарий.
- Вы хотите быстро проверить гипотезу по данным: «а правда ли что конверсия выросла», «действительно ли этот источник хуже других».
Не нужно подключать, если:
- У вас нет прямого доступа к базе данных — только выгрузки в Excel. В этом случае используйте подход из Дня 4 (передача файлов в контекст) или День 55 (MCP Notion).
- База данных хранит особо чувствительные данные (паспортные данные, медицинские записи) и у вас нет возможности создать отдельный пользователь только на чтение. В таком случае риски перевешивают удобство.
- Вопросы к данным разовые и нерегулярные. Настройка подключения занимает время — если вы спрашиваете «сколько заказов было в прошлом году» один раз в квартал, проще попросить коллегу-разработчика сделать выгрузку.
- База огромная и неструктурированная, с десятками таблиц без документации. Claude будет путаться в названиях, запросы будут некорректными, вы потратите больше времени на исправление ошибок, чем на получение ответа.
Аналитическая база — лучший сценарий
Если в вашей компании есть отдельная аналитическая база данных (DWH, data warehouse) или хотя бы реплика боевой — подключайте туда. Там нет риска случайно что-то изменить, она оптимизирована под чтение, и нагрузка от ваших запросов не влияет на работу основного продукта.
Связь с другими уроками
День 51 (Что такое MCP и зачем он нужен) — базовый урок про архитектуру MCP. Если ещё не читали или подзабыли как работает stdio-транспорт и зачем нужен раздел mcpServers в .mcp.json — вернитесь туда. День 57 строится прямо на этой базе.
День 55 (MCP Notion) — смежный урок про структурированные данные через MCP. Разница принципиальная: базы Notion — карточки со свойствами, SQL-база — записи с отношениями между таблицами. Разница принципиальная: Sheets — это таблицы с ячейками, SQL-база — это структурированные записи с отношениями между таблицами. Для разных задач подходит разное.
День 25 (Агент-аналитик) — в том уроке мы строили агента, который анализирует данные из файлов. Теперь, когда есть MCP с базой данных, можно сделать следующий шаг: аналитический агент, который сам ходит в базу за свежими данными, а не ждёт когда вы принесёте файл. Связка День 25 + День 57 = автономный аналитик данных.
Задание на сегодня
Если у вас есть SQLite-файл от любого локального приложения (агент, скрипт, телеграм-бот, трекер) — подключите его к Claude Code через dbhub и задайте один вопрос к данным.
Конкретные шаги:
- Найдите SQLite-файл. Часто они называются
*.dbили*.sqlite. Можно поискать командойfind ~ -name "*.db" -not -path "*/Library/*" 2>/dev/null. - Добавьте dbhub командой:
claude mcp add --transport stdio db -- npx -y @bytebase/dbhub --dsn "sqlite:////полный/путь/к/файлу.db". Если правите руками — это~/.claude.jsonили.mcp.jsonв корне проекта. - Перезапустите Claude Code.
- Спросите: «Какие таблицы есть в этой базе данных?»
Критерий выполнения: Claude ответил списком таблиц. Это означает, что подключение работает.
Если SQLite-файла нет под рукой — можно создать тестовый. Скажите Claude: «Создай SQLite-файл с тестовыми данными: таблица orders с полями id, client_name, amount, created_at, добавь 20 строк с реалистичными данными». Затем подключите его и поработайте с тестом.
Нет базы данных — не беда
Многие директора не имеют прямого доступа к базам данных своих систем. Это нормально. Задание в таком случае — создать тестовую базу через Claude (он напишет Python-скрипт, который её создаст) и отработать механику на ней. Навык подключения и формулировки запросов будет тот же.
Резюме
- dbhub через MCP позволяет Claude напрямую задавать SQL-запросы к вашей базе данных — PostgreSQL, SQLite и другим — и возвращать результаты в понятном виде.
- Вы пишете вопрос на русском — Claude сам переводит его в SQL, выполняет через dbhub и объясняет результат.
- Настройка занимает 15 минут: Node.js + строка в
.mcp.jsonили~/.claude.jsonс DSN вашей базы, перезапуск Claude Code. - Безопасность: используйте пользователя базы данных только с правами SELECT — это исключает случайные изменения данных.
- Лучший сценарий — аналитическая или тестовая база; худший — прямой доступ к боевой базе без read-only пользователя.