Я Дмитрий Клепиков, разработчик в команде 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 гипотез, разбитых по категориям: временные паттерны, погода и дорожные условия, профиль участников, транспорт, география, нарушения.
Вот те самые гипотезы, предложенные Claude:
H1 Ночь (22:00–06:00) тяжелее дня.
H2 Пятница и суббота — пик аварийности.
H3 Зимние месяцы опаснее летних.
H4 Снегопад увеличивает тяжесть ДТП.
H5 Гололед — главный зимний фактор смертности.
H6 Отсутствие освещения критично для пешеходов.
H7 Новички (стаж <3 лет) чаще становятся виновниками.
H8 Мужчины 18–25 лет — группа максимального риска.
H9 Пешеходы-нарушители гибнут чаще.
H10 Старые автомобили (>15 лет) опаснее новых.
H11 Мотоциклисты — уязвимая группа.
H12 Пешеходные переходы — места повышенной опасности.
H13 Есть районы — «черные точки» (правило Парето).
H14 Превышение скорости — главный убийца.
H15 Алкоголь + ночь = максимальный риск.
Шаг 3. Проверка гипотез. Итерация 1
Я попросил модель проверить все гипотезы, используя навык /analyze-data. Мой следующий промпт выглядел так:
«Используя агент-планировщик проверь все 15 гипотез шаг за шагом.
Используй SKILL аналитика данных:
/analyze-data
/data-analyst-expert
/statistical-analysis.
Сделай таблицу ПОСЛЕ: какие гипотезы проверили, каким способом какие выборки получили, какие нам графики интереснее отобразить, в каком виде, чтобы посмотреть графическое представление гипотез,
какие дополнительные величины вывести, чтобы показать дополнительно значимость гипотезы или ее отсутствие».
Эта итерация потребовала интенсивного взаимодействия с базой. На проверку 15 гипотез ушло более 15 минут, за это время postgres-mcp выполнил около 80 SQL-запросов.
LLM последовательно изложила процесс проверки каждой гипотезы:

Дополнительно модель подготовила таблицы «Статистическая строгость проверки», «Детальная логика проверки» для каждой гипотезы, «Итоговая статистика проверки», а также указала критические проблемы с данными.
Полный файл с результатами доступен в GitHub-репозитории.
Шаг 4: Проверка гипотез с учетом confounding факторов. Итерация 2
Перед тем как запускать вторую итерацию, стало понятно, что простое сравнение может давать искажённые выводы. Например, мужчин за рулём существенно больше, чем женщин, а ясных дней — больше, чем снежных. Без нормализации такие различия легко принять за закономерность.
В следующем промпте я просил учесть дополнительные факторы:
«Учти, что мужчин за рулем больше, чем женщин. Ясных дней больше, чем дождливых, а дождливых — чем снежных. Мотоциклисты ездят чаще летом. Районы разные по размеру и населенности. Проанализируй прочие факторы, влияющие на качество выборки. Сделай выборки с учетом этого. Составь итоговую таблицу и дополни текущие таблицы. Используй SKILL аналитика данных.»
Над этим запросом LLM также работала достаточно долго. В итоге дополнительно составила таблицы «Exposure & confounding» и «Рекомендации по метрикам».
Также LLM предложила три варианта дашбордов, которые можно создать на основе подтвержденных гипотез.
-
«Главные убийцы» — факторы, сильнее всего влияющие на смертность (пешеходы, ночь, дождь, освещение).
-
«Уязвимые группы» — профили участников с высоким риском (пол, стаж, мотоциклисты, возраст авто).
-
«География рисков» — районы и инфраструктурные проблемы (карты смертности, неосвещенные переходы, ДТП вне переходов).
Все результаты также доступны на GitHub.
Создание дашборда через modusbi-mcp
После двух итераций проверки у меня на руках были подтвержденные гипотезы, опровергнутые мифы и несколько неожиданных парадоксов.
Оставалось визуализировать результаты. Я написал Claude следующий промпт:
«/bi-visualization-expert /create-dashboard Учитывая полученные гипотезы, предложи, какие отдельные отчеты можно создать и какие компоненты отобразить, чтобы предоставить пользователю информацию. Составь таблицу с предложениями и согласуй со мной».
Модель сгенерировала HTML-файл с предложениями по дашбордам. Я выбрал три для создания.
Затем я написал следующий промпт:
«/bi-visualization-expert /create-dashboard /sql-bi-expert На основе созданной таблицы создай 3 предложенных дашборда: безопасность дорожного движения, пешеходная безопасность, временные паттерны ДТП. Старайся использовать один датасет для вывода в нескольких отчетах».
Модель через modusbi-mcp, используя навык /create-dashboard и данные, полученные на предыдущих шагах, сгенерировала датасеты, компоненты и layout. Примерно через 5 минут в Modus BI появилось три готовых дашборда.
Конечно, не обошлось без мелких недочетов. Например, не всегда с первого раза получалось задать нужный тип диаграммы. В отдельных графиках пришлось уточнять подписи осей и сортировку. Но и это правилось не вручную, а через уточняающие промпты.
Следующим запросом я постарался изменить дизайн отчета:
«/create-dashboard /bi-visualization-expert Сделай дизайн дашборда в голубых тонах. Добавь градиенты. Следуй современным трендам BI-дизайна».
Конечно, текущая версия 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 мер:
Выводы: что это дает разным ролям
Для разработчика
MCP + Skills — это автоматизация рутины. Сервер позволяет быстро проводить аналитику данных, оптимизировать запросы, тестировать индексы на тестовых контурах, проверять миграции, проводить e2e-тесты и многое другое.
Для аналитика
LLM не заменяет аналитика, но ускоряет его в 5–10 раз. Особенно на этапе разведки данных и проверки множества гипотез. Модель честно сообщает об отсутствии данных, указывает на confounding-факторы и предлагает корректные метрики. Когда нужно учесть сложные взаимосвязи или интерпретировать результаты, человек все равно необходим.
У человека обычно недостаточно времени и возможности сосредоточиться полноценно на различных статистических моделях и гипотезах. ИИ помогает автоматизировать этот процесс: предложить новые идеи, более детально критически проверить имеющиеся.
Для руководителя
Руководитель получает готовые дашборды с проверенными гипотезами за часы, а не недели. Не нужно ждать, пока аналитики соберут данные, напишут запросы и оформят отчеты. Modus BI + MCP дают возможность получать ответы на бизнес-вопросы сразу, без погружения в технические детали.
P.S. Присоединяйтесь к нашему BI-сообществу в Telegram и будьте в курсе последних новостей!
Автор: DarkQuark


