dbt

официальный

Официальный MCP-сервер для dbt (data build tool), обеспечивающий интеграцию с CLI dbt Core/Cloud, обнаружение метаданных проекта, информацию о моделях и возможности запросов к семантическому слою.

Что можно делать с Dbt MCP?

  • Изучайте модели данных вашего dbt-проекта — запросите все модели с помощью get_all_models, затем просмотрите полную информацию о любом узле через get_node_details.
  • Прослеживайте восходящие и нисходящие связи — используйте get_lineage, чтобы увидеть предков и потомков модели с фильтрацией по типу и глубине.
  • Запрашивайте метрики через Semantic Layer — получите список доступных метрик с помощью list_metrics, затем выполняйте отфильтрованные и сгруппированные запросы метрик через query_metrics.
  • Проверяйте состояние и производительность моделей — получайте статус выполнения, результаты тестов и свежесть источников через get_model_health, а также историю выполнения через get_model_performance.
  • Генерируйте шаблоны проекта — создавайте YAML для моделей, YAML для источников или SQL для staging-моделей с помощью generate_model_yaml, generate_source и generate_staging_model.
  • Управляйте заданиями dbt Cloud — просматривайте и запускайте задания через list_jobs и trigger_job_run, затем изучайте детали выполнения или артефакты с помощью get_job_run_details и list_job_run_artifacts.

Документация

dbt MCP-сервер

OpenSSF Best Practices

Этот MCP-сервер (Model Context Protocol) предоставляет различные инструменты для взаимодействия с dbt. Вы можете использовать этот MCP-сервер, чтобы предоставить AI-агентам контекст вашего проекта в dbt Core, dbt Fusion и dbt Platform.

Подробнее читайте в нашей документации здесь. Этот пост в блоге содержит больше деталей о возможностях dbt MCP-сервера.

Экспериментальный MCP-бандл

С каждым релизом мы публикуем экспериментальный Model Context Protocol Bundle (dbt-mcp.mcpb), чтобы клиенты, поддерживающие MCPB, могли импортировать этот сервер без дополнительной настройки. Скачайте бандл из ассетов последнего релиза и следуйте документации mcpb CLI от Anthropic для установки или проверки.

Обратная связь

Если у вас есть комментарии или вопросы, создайте GitHub Issue или присоединяйтесь к нам в Slack сообщества в канале #tools-dbt-mcp.

Архитектура

Архитектура dbt MCP-сервера позволяет вашему агенту подключаться к различным инструментам.

architecture diagram of the dbt MCP server

Инструменты

SQL

Инструменты для выполнения и генерации SQL на инфраструктуре dbt Platform.

  • execute_sql: Выполняет SQL на инфраструктуре dbt Platform с поддержкой Semantic Layer.
  • text_to_sql: Генерирует SQL из естественного языка, используя контекст проекта.

Semantic Layer

Чтобы узнать больше о dbt Semantic Layer, нажмите здесь.

  • get_dimension_values: Получает уникальные значения измерения; возможность ограничить конкретными метриками.
  • get_dimensions: Получает измерения для указанных метрик.
  • get_entities: Получает сущности для указанных метрик.
  • get_metrics_compiled_sql: Возвращает скомпилированный SQL для метрик без выполнения запроса.
  • list_metrics: Извлекает все определенные метрики.
  • list_saved_queries: Извлекает все сохраненные запросы.
  • query_metrics: Выполняет запросы метрик с возможностью фильтрации и группировки.

Discovery

Чтобы узнать больше о dbt Discovery API, нажмите здесь.

  • get_all_macros: Извлекает макросы; возможность фильтровать по пакету или возвращать только имена пакетов.
  • get_all_models: Извлекает имя и описание всех моделей.
  • get_all_sources: Получает все источники со статусом актуальности; возможность фильтровать по имени источника.
  • get_exposure_details: (устарело — используйте get_node_details)
  • get_exposures: Получает все экспозиции (нисходящие дашборды, приложения или аналитику).
  • get_lineage: Получает полный граф происхождения (предки и потомки) с фильтрацией по типу и глубине.
  • get_macro_details: (устарело — используйте get_node_details)
  • get_mart_models: Извлекает все модели витрин данных.
  • get_model_children: (устарело — используйте get_lineage)
  • get_model_details: (устарело — используйте get_node_details)
  • get_model_health: Получает сигналы здоровья: статус запуска, результаты тестов и актуальность вышестоящих источников.
  • get_model_parents: (устарело — используйте get_lineage)
  • get_model_performance: Получает историю выполнений для модели; возможность включить результаты тестов.
  • get_node_details: Получает полную информацию о любом типе ресурса dbt (модель, источник, экспозиция, тест, seed, snapshot, макрос, semantic_model).
  • get_related_models: Находит похожие модели с помощью семантического поиска.
  • get_seed_details: (устарело — используйте get_node_details)
  • get_semantic_model_details: (устарело — используйте get_node_details)
  • get_snapshot_details: (устарело — используйте get_node_details)
  • get_source_details: (устарело — используйте get_node_details)
  • get_test_details: (устарело — используйте get_node_details)
  • search: [Alpha] Ищет ресурсы по всему проекту dbt (не общедоступно).

dbt CLI

Использование вашим клиентом команд dbt через инструментарий MCP может изменить ваши модели данных, источники и объекты хранилища. Продолжайте, только если вы доверяете клиенту и понимаете потенциальное влияние.

  • build: Выполняет модели, тесты, snapshots и seeds в порядке DAG.
  • clone: Клонирует выбранные узлы из указанного состояния в целевые схемы.
  • compile: Генерирует исполняемый SQL из моделей/тестов/аналитики; полезно для проверки логики Jinja.
  • docs: Генерирует документацию для проекта dbt.
  • get_lineage_dev: Извлекает происхождение из локального manifest.json с фильтрацией по типу и глубине.
  • get_node_details_dev: Извлекает детали узлов из локального manifest.json (модели, seeds, snapshots, источники).
  • list: Перечисляет ресурсы в проекте dbt по типу с поддержкой селекторов.
  • parse: Парсит и проверяет файлы проекта на синтаксическую корректность.
  • run: Выполняет модели для материализации их в базе данных.
  • show: Выполняет SQL в базе данных и возвращает результаты.
  • test: Запускает тесты для проверки целостности данных и моделей.

Admin API

Чтобы узнать больше об Administrative API dbt, нажмите здесь.

  • cancel_job_run: Отменяет запущенное задание.
  • get_job_details: Получает конфигурацию задания, включая триггеры, расписание и команды dbt.
  • get_job_run_details: Получает детали запуска, включая статус, время, шаги и артефакты.
  • get_job_run_error: Получает детали ошибок и/или предупреждений для запуска задания; возможность включить или показать только предупреждения.
  • list_job_run_artifacts: Перечисляет доступные артефакты запуска задания.
  • list_jobs: Перечисляет задания в аккаунте dbt Platform; возможность фильтровать по проекту или окружению.
  • list_jobs_runs: Перечисляет запуски заданий; возможность фильтровать по заданию, статусу или полю сортировки.
  • list_projects: Перечисляет все проекты в аккаунте dbt Platform.
  • retry_job_run: Повторяет неудачный запуск задания.
  • trigger_job_run: Запускает задание; возможность переопределить git-ветку, схему или другие настройки.

dbt Codegen

Эти инструменты помогают автоматизировать генерацию шаблонного кода для файлов проекта dbt.

  • generate_model_yaml: Генерирует model YAML с колонками; возможность наследовать вышестоящие описания.
  • generate_source: Генерирует source YAML путем интроспекции схем базы данных; возможность включить колонки.
  • generate_staging_model: Генерирует SQL для staging-модели из исходной таблицы.

dbt LSP

Набор инструментов, использующих движок Fusion для продвинутой компиляции SQL и анализа происхождения на уровне колонок.

  • fusion.compile_sql: Компилирует SQL в контексте проекта через dbt Platform.
  • fusion.get_column_lineage: Отслеживает происхождение на уровне колонок через dbt Platform.
  • get_column_lineage: Отслеживает происхождение на уровне колонок локально (требуется dbt-lsp через dbt Labs VSCE).

Документация по продукту

Инструменты для поиска и получения контента из официальной документации dbt на docs.getdbt.com.

  • get_product_doc_pages: Извлекает полное Markdown-содержимое одной или нескольких страниц docs.getdbt.com по пути или URL.
  • search_product_docs: Ищет на docs.getdbt.com страницы, соответствующие запросу; возвращает заголовки, URL и описания, ранжированные по релевантности. Используйте get_product_doc_pages для получения полного содержимого.

Метаданные MCP-сервера

Эти инструменты предоставляют информацию о самом MCP-сервере.

  • get_mcp_server_branch: Возвращает текущую git-ветку запущенного dbt MCP-сервера.
  • get_mcp_server_version: Возвращает текущую версию dbt MCP-сервера.

Примеры

Обычно вы подключаете dbt MCP-сервер к продукту-агенту, такому как Claude или Cursor. Однако, если вы заинтересованы в создании собственного агента, посмотрите директорию с примерами, чтобы узнать, с чего начать.

Зависимости

Зависимости зафиксированы на конкретных версиях и не обновляются автоматически. Только обновления зависимостей, связанные с безопасностью, отправляются через автоматические pull request'ы.

Участие в разработке

Прочитайте CONTRIBUTING.md для инструкций о том, как принять участие!