Перейти к основному содержимому

Представляем dbt MCP Server — структурированные данные для AI-воркфлоу и агентов

· 12 мин. чтения
Jason Ganz
Developer Experience at dbt Labs

dbt — это стандарт для создания управляемых и надежных датасетов поверх структурированных данных. MCP (Model Context Protocol) демонстрирует всё больший потенциал в качестве стандарта предоставления контекста для LLM, позволяя им эффективно работать в реальных, операционных сценариях.

Сегодня мы открываем исходный код экспериментальной версии dbt MCP server. Мы ожидаем, что в ближайшие годы структурированные данные станут глубоко интегрированы в AI‑воркфлоу, а dbt будет играть ключевую роль в создании и предоставлении этих данных.

В частности, мы ожидаем, что как Business Intelligence, так и Data Engineering будут всё больше управляться AI, работающим поверх контекста, определённого в ваших dbt‑проектах.

Мы стремимся построить data control plane, который позволит AI надежно получать доступ к структурированным данным по всей цепочке lineage. В ближайшие месяцы и годы команды данных будут всё больше сосредотачиваться на создании богатого контекста, который передается в dbt MCP server. После этого как AI‑агенты, так и бизнес‑пользователи смогут работать поверх LLM‑систем, «насыщенных» контекстом dbt MCP.

Текущая система ещё не является полной реализацией видения, описанного в публикациях выше, но это важный шаг на пути к безопасной интеграции корпоративных структурированных данных в AI‑воркфлоу. В этом посте мы рассмотрим, что dbt MCP server умеет сегодня, дадим несколько советов по началу работы и обсудим ограничения текущей реализации.

Мы считаем важным, чтобы индустрия начала вырабатывать лучшие практики безопасного и надежного доступа к бизнес‑данным через LLM.

Что такое MCP?​

MCP расшифровывается как Model Context Protocol — это открытый протокол, выпущенный Anthropic в ноябре прошлого года, который позволяет AI‑системам динамически подгружать контекст и данные. Почему это важно?

Даже самые продвинутые модели ограничены своей изоляцией от данных — они заперты за информационными силосами и устаревшими системами. Каждый новый источник данных требует собственной кастомной интеграции, что делает масштабирование по‑настоящему связных систем крайне сложным.

MCP решает эту проблему. Он предоставляет универсальный, открытый стандарт для подключения AI‑систем к источникам данных, заменяя фрагментированные интеграции единым протоколом. — Anthropic

С тех пор MCP получил широкую поддержку: Google, Microsoft и OpenAI заявили о своей приверженности поддержке MCP.

Что делает dbt MCP Server?​

Его можно рассматривать как недостающее связующее звено между:

  • Вашим dbt‑проектом (модели, документация, lineage, Semantic Layer)
  • Любым MCP‑совместимым клиентом (Claude Desktop Projects, Cursor, агентные фреймворки, кастомные приложения и т.д.)

Мы уже давно знаем, что сочетание структурированных данных из dbt‑проекта и LLM — чрезвычайно мощная комбинация (особенно при использовании dbt Semantic Layer). Вопрос заключался в том, как лучше всего предоставить этот доступ для широкого спектра LLM‑приложений так, чтобы контроль оставался у сообщества и экосистемы, а не требовал создания множества разрозненных интеграций.

dbt MCP server предоставляет доступ к набору tools, которые работают поверх вашего dbt‑проекта. Эти инструменты могут вызываться LLM‑системами для изучения данных и метаданных.

Как и в любых AI‑воркфлоу, обязательно соблюдайте осторожность при предоставлении доступа к продакшен‑системам и данным. Рассмотрите возможность начать с sandbox‑окружения или предоставить только права на чтение.

На сегодняшний день у dbt MCP server есть три основных функции.

Three use‑case pillars of the dbt MCP serverThree use‑case pillars of the dbt MCP server
  • Обнаружение данных: понимание того, какие data‑assets существуют в вашем dbt‑проекте.
  • Запросы к данным: прямой доступ к данным dbt‑проекта. Состоит из двух частей:
    • Использование dbt Semantic Layer для надежной, единой точки истины при работе с метриками
    • Выполнение SQL‑запросов для более свободного исследования и разработки
  • Запуск и выполнение команд dbt: доступ к dbt CLI для запуска проекта и выполнения других операций
How the dbt MCP server fits between data sources and MCP‑enabled clientsHow the dbt MCP server fits between data sources and MCP‑enabled clients

❓ Нужно ли быть клиентом dbt Cloud, чтобы использовать dbt MCP server?

  • Нет — в MCP включена функциональность как для dbt, так и для пользователей dbt Core. Со временем Cloud‑специфичные сервисы будут добавляться в MCP server там, где они дают дополнительную ценность.

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

Использование dbt MCP Server для обнаружения data‑assets​

dbt обладает знаниями обо всех data‑assets во всём вашем data‑стеке — от сырых staging‑моделей до отполированных аналитических витрин. dbt MCP server делает эти знания доступными для LLM и AI‑агентов, обеспечивая мощные возможности discovery:

  • Для бизнес‑пользователей: интерактивное изучение продакшен‑dbt‑проекта через естественный язык. Пользователи могут задавать вопросы вроде «Какие у нас есть данные о клиентах?» или «Где хранится информация о маркетинговых расходах?» и получать точные ответы на основе документации и структуры dbt‑проекта.
  • Для AI‑агентных воркфлоу: автоматическое обнаружение и понимание доступных моделей данных, их связей и структуры без участия человека. Это позволяет агентам автономно ориентироваться в сложных data‑средах и формировать корректные инсайты.

Инструменты discovery позволяют LLM понимать, какие данные существуют, как они структурированы и как связаны между собой различные data‑assets. Этот контекст критически важен для генерации корректного SQL, ответов на бизнес‑вопросы и предоставления надежных аналитических выводов.

Инструменты для обнаружения data‑assets:​

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

Tool NameНазначениеРезультат
get_all_modelsПредоставляет полный инвентарь всех моделей в dbt‑проекте независимо от типаСписок всех моделей и их описаний
get_mart_modelsОпределяет модели презентационного слоя, предназначенные для конечных пользователейСписок mart‑моделей и их описаний (модели слоя отчетности)
get_model_detailsВозвращает детальную информацию о конкретной моделиСкомпилированный SQL, описание, имена колонок, их описания и типы данных
get_model_parentsОпределяет upstream‑зависимости для конкретной моделиСписок родительских моделей, от которых зависит указанная модель
Loading table...

Использование dbt MCP server для запросов через dbt Semantic Layer​

dbt Semantic Layer определяет метрики и измерения вашей организации единым, управляемым образом. С dbt MCP server LLM могут напрямую понимать и запрашивать эти метрики, гарантируя, что AI‑анализ соответствует корпоративным определениям.

  • Для бизнес‑пользователей: запрос метрик на естественном языке. Пользователи могут запросить, например, «ежемесячную выручку по регионам» и получить корректный результат, соответствующий стандартным определениям метрик, с более высокой базовой точностью, чем у SQL, сгенерированного LLM.
  • Для AI‑агентных воркфлоу: по мере того как агентные системы начинают действовать в реальном мире на более длинных горизонтах времени, им требуется понимание базовой реальности бизнеса. dbt Semantic Layer может служить надежным интерфейсом для LLM — от аналитических отчетов до операционных агентов.

Используя dbt Semantic Layer через MCP server, вы обеспечиваете, что LLM‑анализы основаны на строгих определениях, реализованных в коде и доступных в любом MCP‑совместимом клиенте.

Инструменты Semantic Layer:​

Tool NameНазначениеРезультат
list_metricsПредоставляет инвентарь всех доступных метрик в dbt Semantic LayerПолный список метрик с типами, лейблами и описаниями
get_dimensionsОпределяет доступные измерения для указанных метрикСписок измерений для группировки/фильтрации метрик
query_metricsВыполняет запросы к метрикам в dbt Semantic LayerРезультаты запроса по заданным метрикам, измерениям и фильтрам
Loading table...

Использование dbt MCP server для выполнения SQL (text‑to‑SQL)​

Хотя dbt Semantic Layer предоставляет управляемый, метрико‑ориентированный подход, многие аналитические задачи требуют более гибких, исследовательских SQL‑запросов. dbt MCP server вскоре будет включать возможности валидации и выполнения SQL с богатым контекстом.

  • Для бизнес‑пользователей: ответы на сложные аналитические вопросы, выходящие за рамки предопределенных метрик. Пользователи могут свободно исследовать данные, при этом LLM учитывает конкретные модели данных, что повышает корректность и оптимальность SQL.
  • Для AI‑агентных воркфлоу: автоматическая генерация и валидация SQL по моделям данных. Агенты смогут создавать и выполнять сложные запросы, адаптироваться к изменениям схем, оптимизировать производительность и следовать корпоративным SQL‑конвенциям.

В отличие от традиционной генерации SQL, запросы через dbt MCP server осведомлены о конкретных моделях данных, что делает их более точными и полезными именно для вашей среды. Это особенно ценно для исследования данных, разовых анализов и прототипов, которые позже могут быть включены в dbt‑проект.

В настоящее время выполнение SQL осуществляется через инструмент dbt Show. В ближайшей перспективе мы планируем выпустить более производительные инструменты, лучше подходящие для этого сценария.

Использование dbt MCP server для выполнения проекта​

dbt MCP server не только предоставляет доступ к данным — он также позволяет LLM и AI‑агентам напрямую взаимодействовать с dbt, выполняя команды и управляя проектом.

  • Для бизнес‑пользователей: запуск dbt‑команд через диалоговые интерфейсы без знания CLI. Пользователи могут попросить «запустить ежедневные модели» или «протестировать customer‑модели» и получить понятные объяснения результатов и рекомендации по исправлению ошибок.
  • Для AI‑агентных воркфлоу: автономный запуск dbt‑процессов в ответ на события. Агенты могут управлять выполнением проекта, автоматически тестировать и валидировать изменения моделей и даже отлаживать типовые проблемы без участия человека.

В то время как инструменты discovery и запросов работают поверх environments как источника контекста, инструменты выполнения взаимодействуют напрямую с CLI — как dbt Core, так и Cloud CLI.

Инструменты выполнения проекта​

Tool NameНазначениеРезультат
buildВыполняет команду dbt build для сборки всего проектаРезультаты сборки, включая статус и логи
compileВыполняет команду dbt compile для компиляции SQLРезультаты компиляции, включая статус и логи
listСписок всех ресурсов в dbt‑проектеСтруктурированный список ресурсов проекта
parseПарсит файлы dbt‑проектаРезультаты парсинга со статусом и логами
runВыполняет команду dbt run для запуска моделейРезультаты выполнения со статусом и логами
testВыполняет тесты, определенные в dbt‑проектеРезультаты выполнения тестов со статусом и логами
Loading table...

Начало работы​

dbt MCP server доступен как экспериментальный релиз. Чтобы начать:

  1. Клонируйте репозиторий с GitHub: dbt-labs/dbt-mcp
  2. Следуйте инструкциям по установке в README
  3. Подключите ваш dbt‑проект и начните исследовать возможности

Нам интересно увидеть, как сообщество будет развивать и расширять dbt MCP server. Независимо от того, создаёте ли вы AI‑ориентированный BI‑инструмент, автономного data‑агента или просто исследуете возможности LLM в своих data‑воркфлоу, dbt MCP server предоставляет прочную основу для передачи dbt‑контекста в AI‑приложения.

Какой воркфлоу лучше всего подходит для текущей версии MCP server?​

Этот ранний релиз в первую очередь предназначен для использования поверх существующего dbt‑проекта для ответов на вопросы о данных и метаданных — в соответствии с кейсами, описанными в этом посте о будущем BI и потребления данных.

Чат‑сценарий:

Мы рекомендуем использовать Claude Desktop и создать кастомный project с описанием предполагаемых сценариев использования.

Чтобы всё заработало:

  • Следуйте инструкциям в README для установки MCP server
  • Убедитесь, что вы добавили MCP‑конфигурацию в настройки Claude Desktop. В разделе Claude→Settings→Developer вы должны увидеть ‘dbt’
Claude Desktop – MCP server running in Developer settingsClaude Desktop – MCP server running in Developer settings
  • Создайте новый проект с названием “analytics” и опишите, как конечный пользователь будет с ним взаимодействовать
Example Claude Desktop project connected to the dbt MCP serverExample Claude Desktop project connected to the dbt MCP server
  • Добавьте кастомный prompt, объясняющий, что вопросы в этом проекте, вероятно, будут маршрутизироваться через dbt MCP server. Настройте его под контекст вашей организации.
    • Например: Этот диалог подключен к информации вашего dbt‑проекта через dbt MCP server. Если вы получаете вопрос, для ответа на который нужны данные из внешнего источника, используйте инструменты dbt MCP server.

Рекомендации по деплою:

  • Это экспериментальный релиз. Рекомендуем начать с прототипирования и проверки ценности перед широким внедрением.
  • Будьте особенно осторожны с инструментами выполнения проекта — LLM могут ошибаться, поэтому начинайте с ограниченных прав доступа.
  • Начните с минимального use case, который даёт ощутимую пользу. Вместо доступа ко всему продакшен‑проекту рассмотрите создание upstream‑проекта с ограниченным набором моделей и метрик.
  • На текущий момент выбор инструментов не всегда идеален. В тестах модель иногда вызывает лишние инструменты или делает это в неправильном порядке. Это часто можно исправить более точным prompt’ом, но это противоречит идее динамического выбора инструментов. Мы ожидаем улучшений в dbt MCP server, клиентах и самом протоколе.
  • Внимательно продумывайте, когда использовать инструменты Semantic Layer, а когда — SQL execution. SQL execution мощный, но менее контролируемый. Мы планируем активное тестирование для выработки эвристик.
  • Использование инструментов особенно ценно, когда они комбинируются. Какие инструменты дополняют dbt MCP server? Как связать структурированные данные с другими воркфлоу?

Будущее dbt MCP и уровни абстракций для доступа к данным​

Мы находимся на самом раннем этапе развития MCP как протокола и поиска оптимальных способов подключения структурированных данных к LLM. Это чрезвычайно захватывающее и динамичное время, когда мы в реальном времени определяем, как лучше всего предоставлять данные и контекст.

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

Определение лучшего источника контекста для dbt MCP
Инструменты используют два основных источника информации — dbt Cloud APIs и dbt CLI. Мы продолжим развивать оба направления, особенно dbt Cloud APIs как предпочтительный уровень абстракции при работе с конкретным environment.

Для других сценариев, особенно разработки dbt, потребуется работа из текущего рабочего контекста — соответствующие инструменты появятся в ближайшее время (и мы приветствуем вклад сообщества). Мы будем рады экспериментам и обратной связи.

Определение наиболее полезных инструментов для dbt MCP

Какой набор инструментов лучше всего подходит для human‑in‑the‑loop и AI‑driven доступа к структурированным данным? dbt MCP server — это лишь первые эксперименты, и мы ожидаем, что сообщество предложит гораздо больше.

Хостинг, аутентификация, RBAC и другое

Сейчас dbt MCP server запускается локально, а управление доступом осуществляется через service tokens dbt Cloud или локальную конфигурацию CLI. Мы планируем развивать систему по трем направлениям:

  1. Хостинг MCP: в ближайшем будущем появится Cloud‑версия MCP наряду с локальной
  2. Управление доступом к данным: безопасный и надежный доступ к данным и data‑assets (OAuth и др.)
  3. Контекст пользователя и домена: предоставление пользовательского и доменного контекста при запросах данных

Ожидайте больше новостей на эту тему 5/28.

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

Чтобы присоединиться к обсуждению, заходите в канал #tools-dbt-mcp в Slack‑сообществе dbt.

Comments

Loading