Привет, Хабр! Я Дмитрий Клепиков, разработчик в команде Modus BI. Хотя моя основная работа напрямую не связана с аналитикой данных, мне стало интересно: может лПривет, Хабр! Я Дмитрий Клепиков, разработчик в команде Modus BI. Хотя моя основная работа напрямую не связана с аналитикой данных, мне стало интересно: может л

Можно ли собрать BI-дашборды за 4 часа, если ты не аналитик? Эксперимент с MCP, PostgreSQL и Modus BI

2026/03/03 12:42
11м. чтение
Для обратной связи или замечаний по поводу данного контента, свяжитесь с нами по адресу crypto.news@mexc.com

Привет, Хабр! Я Дмитрий Клепиков, разработчик в команде Modus BI. Хотя моя основная работа напрямую не связана с аналитикой данных, мне стало интересно: может ли разработчик без профильного опыта пройти весь путь аналитика — от гипотез до BI-дашбордов — используя только LLM и MCP-серверы?

Сейчас мы в команде разрабатываем собственный MCP-сервер для Modus BI, чтобы пользователи могли взаимодействовать с платформой через естественный язык без глубоких знаний в статистике и SQL. Прежде чем двигаться дальше с разработкой, я решил проверить на реальной задаче, насколько такой подход жизнеспособен.

Задача нетривиальная, так как аналитика требует понимания структуры данных, формулирования гипотез, написания SQL-запросов, подбора статистических методов и учета искажающих факторов. Обычно это трудоемкий процесс.

Моя мотивация была простой:

  • понять, насколько MCP‑серверы могут упростить аналитику;

  • проверить, сможет ли не‑аналитик (вроде меня) сделать сложный многошаговый анализ;

  • автоматизировать создание дашбордов, чтобы получать их за минуты, а не дни.

Для проверки я взял открытую статистику ДТП Санкт‑Петербурга за 10 лет, подключил MCP‑серверы и составил Skill‑файлы для Claude Code, чтобы автоматизировать визуализацию. За 4 часа получилось собрать три дашборда, выполнить около 80 SQL-запросов и проверить 15 гипотез. Вот что из этого вышло.

Что такое MCP и зачем он тут

MCP (Model Context Protocol) — открытый стандарт, который дает LLM возможность работать с внешними инструментами через единый интерфейс. Проще говоря, MCP-сервер — это адаптер между моделью и конкретной системой. Через него ИИ получает доступ к функциям инструмента и возвращает результат в структурированном виде.

Ключевая идея MCP — единый протокол. Любая LLM (Claude, OpenAI, Gemini и другие) может работать с любым MCP-сервером без переписывания логики интеграции.

Примеры MCP-серверов и их задачи:

  • postgres — доступ к PostgreSQL (SQL-запросы, исследование схемы);

  • clickhouse — доступ к ClickHouse (OLAP-аналитика больших данных);

  • github — работа с GitHub (репозитории, issues, pull requests);

  • jira — управление задачами в Jira.

Если MCP дает доступ к инструментам, то Skills задают способ работы с ними.

Skill (навыки) — это структурированный набор инструкций и правил (файл SKILL.md и при необходимости вспомогательные скрипты), который описывает:

  • как формулировать гипотезы;

  • какие шаги проверки выполнять;

  • какие статистические методы применять;

  • как оформлять результат.

В связке это работает так: LLM принимает задачу → Skill задает методологию → MCP выполняет действия в реальных системах.

Подробнее о формате Skills можно узнать на agentskills.io/specification.

Стек: Postgres + Modus BI + Claude

Чтобы пройти весь путь от гипотез до готовых дашбордов, мне нужен был минимальный, но связный технологический стек. В итоге все свелось к четырем компонентам, каждый из которых выполнял свою роль.

1. postgres-mcp — работа с данными

Данные о ДТП я загрузил в PostgreSQL, а доступ к ним обеспечивал MCP-сервер postgres-mcp. С его помощью модель могла:

  • исследовать структуру базы данных;

  • выполнять SQL-запросы;

  • получать данные для анализа.

Важно, что данные оставались в Postgres — их не нужно было никуда переносить, настраивать ETL-процессы или выгружать в CSV.

2. modusbi-mcp — автоматизация дашбордов

Второй компонент — мой MCP-сервер для Modus BI. Он дал модели возможность:

  • создавать датасеты из SQL;

  • добавлять на дашборд графики, таблицы и другие визуальные элементы;

  • автоматически компоновать их по сетке (layout);

  • применять единый дизайн (цвета, шрифты, градиенты).

Сейчас это версия для внутренних нужд, но он уже дает возможность полностью автоматизировать сборку дашбордов.

3. Skills — обучение AI специфическим задачам

Навыки, которые я подготовил для аналитики:

/analyze-data — анализ гипотезы с оркестрацией postgres-mcp и modusbi-mcp;

/create-dashboard — создание дашборда;

/generate-sql — генерация SQL‑запросов для аналитики;

/explain-chart — объяснение графиков и выводов;

/bi-visualization-expert — выбор правильных компонентов на дашборде;

/statistical-analysis — статистические методы для BI аналитики;

/sql-bi-expert — особенности SQL запросов для BI систем.

По сути, Skills преобразуют LLM из общего помощника в специализированного эксперта для аналитики.

4. Современные LLM

В качестве «мозга» я использовал Claude Code — интерфейс, который умеет работать с MCP‑серверами и Skills. Но это не жесткая привязка: протокол MCP открыт, поэтому можно использовать любые LLM.

Полезные коллекции навыков Claude можно найти в K-Dense-AI Scientific Skills и Awesome Claude Skills.

Кейс: проверка 15 гипотез о ДТП Санкт-Петербурга

Я взял открытые данные ГИБДД по ДТП в Санкт-Петербурге за 10 лет — с 2015 по 2025 год. В базе получилось:

  • 56 671 происшествие;

  • 2 206 погибших;

  • 65 859 раненых;

  • 10 таблиц, связанных по идентификаторам;

  • ключевые поля: datetime, severity, light, region, injured_count, dead_count и дополнительные таблицы по участникам, погоде, дорожным условиям, объектам рядом и т. д.

Данные остались в том виде, в каком их публикует ГИБДД. Я сознательно не стал ничего причесывать, чтобы проверить, справится ли связка LLM + MCP с реальной, не всегда идеальной структурой.

Шаг 1. Визуализация структуры данных (Mermaid-схемы)

Прежде чем формулировать гипотезы, я попросил Claude визуализировать структуру базы данных. Промпт был простой:

«Создай Mermaid ERD для базы данных ДТП. Используй подключенный MCP Postgres для чтения базы данных.»

Модель через postgres-mcp изучила схему, получила список таблиц, их поля и связи, и сгенерировала ER-диаграмму в формате Mermaid.

Я увидел, какие таблицы есть, как они связаны, какие поля содержат ключевую информацию. Это помогло быстро сориентироваться в данных без ручного изучения документации.

Кроме того, Claude построил workflow-схему анализа:

1. Mermaid-схемы → понять структуру.

2. Формулировка гипотез → что проверять.

3. Итерация 1: Проверка через MCP postgres.

4. Итерация 2: Проверка через MCP postgres. После анализа данных оставляем необходимое.

5. Утверждаем дашборды для создания.

6. Создаем дашборды используя MCP ModusBI.

7. Задаем дизайн, добавляем выводы в дашбордах.

Шаг 2. Формулировка гипотез

Имея Mermaid-схемы, я попросил LLM сформулировать гипотезы. Мой промпт:

«Изучи структуру базы данных по mermaid-схеме, используя Skills для аналитика. /analyze-data /data-analyst-expert /statistical-analysis Предложи 15 гипотез, которые:

  • можно проверить статистически (есть данные);

  • Actionable (можем повлиять на ситуацию);

  • социально значимы (помогут снизить аварийность).

Составь план их проверки в виде таблицы и html-документа.»

Модель, используя postgres-mcp, просканировала таблицы, доступные поля и сформировала 15 гипотез, разбитых по категориям: временные паттерны, погода и дорожные условия, профиль участников, транспорт, география, нарушения.

Рисунок 1. План проверки 15 гипотез. Разбивка по категориям, гипотезы H1–H9
Рисунок 1. План проверки 15 гипотез. Разбивка по категориям, гипотезы H1–H9

Вот те самые гипотезы, предложенные Claude:

H1 Ночь (22:00–06:00) тяжелее дня.

H2 Пятница и суббота — пик аварийности.

H3 Зимние месяцы опаснее летних.

H4 Снегопад увеличивает тяжесть ДТП.

H5 Гололед — главный зимний фактор смертности.

H6 Отсутствие освещения критично для пешеходов.

H7 Новички (стаж <3 лет) чаще становятся виновниками.

H8 Мужчины 18–25 лет — группа максимального риска.

H9 Пешеходы-нарушители гибнут чаще.

H10 Старые автомобили (>15 лет) опаснее новых.

H11 Мотоциклисты — уязвимая группа.

H12 Пешеходные переходы — места повышенной опасности.

H13 Есть районы — «черные точки» (правило Парето).

H14 Превышение скорости — главный убийца.

H15 Алкоголь + ночь = максимальный риск.

Рисунок 2. План проверки 15 гипотез. Разбивка по категориям, гипотезы H10–H15
Рисунок 2. План проверки 15 гипотез. Разбивка по категориям, гипотезы H10–H15

Шаг 3. Проверка гипотез. Итерация 1

Я попросил модель проверить все гипотезы, используя навык /analyze-data. Мой следующий промпт выглядел так:

«Используя агент-планировщик проверь все 15 гипотез шаг за шагом.

Используй SKILL аналитика данных:

/analyze-data

/data-analyst-expert

/statistical-analysis.

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

какие дополнительные величины вывести, чтобы показать дополнительно значимость гипотезы или ее отсутствие».

Эта итерация потребовала интенсивного взаимодействия с базой. На проверку 15 гипотез ушло более 15 минут, за это время postgres-mcp выполнил около 80 SQL-запросов.

Рисунок 3. Таблица ПОСЛЕ: результаты проверки
Рисунок 3. Таблица ПОСЛЕ: результаты проверки

LLM последовательно изложила процесс проверки каждой гипотезы:

63ec1d2b595db253f7ffcd65bf5724fb.pngРисунок 4. Детальная логика проверки (по шагам analyze-data)
Рисунок 4. Детальная логика проверки (по шагам analyze-data)

Дополнительно модель подготовила таблицы «Статистическая строгость проверки», «Детальная логика проверки» для каждой гипотезы, «Итоговая статистика проверки», а также указала критические проблемы с данными.

Рисунок 5. Итоговая статистика проверки
Рисунок 5. Итоговая статистика проверки

Полный файл с результатами доступен в GitHub-репозитории.

Шаг 4: Проверка гипотез с учетом confounding факторов. Итерация 2

Перед тем как запускать вторую итерацию, стало понятно, что простое сравнение может давать искажённые выводы. Например, мужчин за рулём существенно больше, чем женщин, а ясных дней — больше, чем снежных. Без нормализации такие различия легко принять за закономерность.

В следующем промпте я просил учесть дополнительные факторы:

«Учти, что мужчин за рулем больше, чем женщин. Ясных дней больше, чем дождливых, а дождливых — чем снежных. Мотоциклисты ездят чаще летом. Районы разные по размеру и населенности. Проанализируй прочие факторы, влияющие на качество выборки. Сделай выборки с учетом этого. Составь итоговую таблицу и дополни текущие таблицы. Используй SKILL аналитика данных.»

Над этим запросом LLM также работала достаточно долго. В итоге дополнительно составила таблицы «Exposure & confounding» и «Рекомендации по метрикам».

Рисунок 6. Итерация 2: проверка Exposure & Confounding факторов
Рисунок 6. Итерация 2: проверка Exposure & Confounding факторов

Также LLM предложила три варианта дашбордов, которые можно создать на основе подтвержденных гипотез.

  1. «Главные убийцы» — факторы, сильнее всего влияющие на смертность (пешеходы, ночь, дождь, освещение).

  2. «Уязвимые группы» — профили участников с высоким риском (пол, стаж, мотоциклисты, возраст авто).

  3. «География рисков» — районы и инфраструктурные проблемы (карты смертности, неосвещенные переходы, ДТП вне переходов).

Рисунок 7. Готовые дашборды: пример варианта с корреляциями
Рисунок 7. Готовые дашборды: пример варианта с корреляциями

Все результаты также доступны на GitHub.

Создание дашборда через modusbi-mcp

После двух итераций проверки у меня на руках были подтвержденные гипотезы, опровергнутые мифы и несколько неожиданных парадоксов.

Рисунок 8. Неожиданные открытия и парадоксы
Рисунок 8. Неожиданные открытия и парадоксы

Оставалось визуализировать результаты. Я написал Claude следующий промпт:

«/bi-visualization-expert /create-dashboard Учитывая полученные гипотезы, предложи, какие отдельные отчеты можно создать и какие компоненты отобразить, чтобы предоставить пользователю информацию. Составь таблицу с предложениями и согласуй со мной».

Модель сгенерировала HTML-файл с предложениями по дашбордам. Я выбрал три для создания.

Рисунок 9. Отчет 1: Executive Dashboard — Безопасность дорожного движения
Рисунок 9. Отчет 1: Executive Dashboard — Безопасность дорожного движения

Затем я написал следующий промпт:

«/bi-visualization-expert /create-dashboard /sql-bi-expert На основе созданной таблицы создай 3 предложенных дашборда: безопасность дорожного движения, пешеходная безопасность, временные паттерны ДТП. Старайся использовать один датасет для вывода в нескольких отчетах».

Модель через modusbi-mcp, используя навык /create-dashboard и данные, полученные на предыдущих шагах, сгенерировала датасеты, компоненты и layout. Примерно через 5 минут в Modus BI появилось три готовых дашборда.

Конечно, не обошлось без мелких недочетов. Например, не всегда с первого раза получалось задать нужный тип диаграммы. В отдельных графиках пришлось уточнять подписи осей и сортировку. Но и это правилось не вручную, а через уточняающие промпты.

Рисунок 10: Готовый дашборд
Рисунок 10: Готовый дашборд

Следующим запросом я постарался изменить дизайн отчета:

«/create-dashboard /bi-visualization-expert Сделай дизайн дашборда в голубых тонах. Добавь градиенты. Следуй современным трендам BI-дизайна».

Рисунок 11: Отчет с измененным дизайном
Рисунок 11: Отчет с измененным дизайном

Конечно, текущая версия MCP-сервера пока не покрывает 100% возможностей, и иногда требовалась небольшая ручная коррекция. Но даже сейчас результат впечатляет.

Важный момент: после того как дашборды созданы, работать с ними через BI-платформу гораздо удобнее, чем каждый раз перегенерировать отчеты через LLM. Во-первых, данные в дашбордах можно просто обновлять в источнике — не нужно заново формировать страницы. Во-вторых, в отчеты легко добавить фильтры, чтобы проверять гипотезы в разных разрезах, не возвращаясь к модели.

Что я получил в результате

За четыре часа работы (включая две итерации и финальные правки) я получил готовый к использованию аналитический продукт.

Примерная разбивка времени:

анализ структуры — ~10 минут

формулировка гипотез — ~15 минут

проверка гипотез — ~30+ минут

сборка дашбордов — ~5 минут

дополнительные итерации и правки — остальное время.

Вот что удалось сделать.

  • postgres-mcp выполнил около 80 SQL-запросов к базе данных;

  • modusbi-mcp создал 17 датасетов и 20 визуальных компонентов с единым дизайном и раскладкой.

На основе выявленных факторов модель оценила, сколько жизней можно спасти за 10 лет при реализации конкретных мер:

  • защита пешеходов → ~200 жизней;

  • патрулирование и освещение в ночные часы → ~390 жизней;

  • кампания «Дождь = опасность» + водоотведение → ~100 жизней;

  • контроль скорости → ~150 жизней;

  • программа утилизации старых авто → ~50 жизней.

Суммарно около 800 спасенных жизней за 10 лет только за счет топ-5 мер:

Рисунок 12: ТОП-5 статистически значимых факторов (для дашборда)
Рисунок 12: ТОП-5 статистически значимых факторов (для дашборда)

Выводы: что это дает разным ролям

Для разработчика

MCP + Skills — это автоматизация рутины. Сервер позволяет быстро проводить аналитику данных, оптимизировать запросы, тестировать индексы на тестовых контурах, проверять миграции, проводить e2e-тесты и многое другое.

Для аналитика

LLM не заменяет аналитика, но ускоряет его в 5–10 раз. Особенно на этапе разведки данных и проверки множества гипотез. Модель честно сообщает об отсутствии данных, указывает на confounding-факторы и предлагает корректные метрики. Когда нужно учесть сложные взаимосвязи или интерпретировать результаты, человек все равно необходим.

У человека обычно недостаточно времени и возможности сосредоточиться полноценно на различных статистических моделях и гипотезах. ИИ помогает автоматизировать этот процесс: предложить новые идеи, более детально критически проверить имеющиеся.

Для руководителя

Руководитель получает готовые дашборды с проверенными гипотезами за часы, а не недели. Не нужно ждать, пока аналитики соберут данные, напишут запросы и оформят отчеты. Modus BI + MCP дают возможность получать ответы на бизнес-вопросы сразу, без погружения в технические детали.

P.S. Присоединяйтесь к нашему BI-сообществу в Telegram и будьте в курсе последних новостей!

Источник

Возможности рынка
Логотип 4
4 Курс (4)
$0.009675
$0.009675$0.009675
+9.76%
USD
График цены 4 (4) в реальном времени
Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу crypto.news@mexc.com для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.