dbt

официальный

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

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

  • Запрос метрик dbt — Запрашивайте определения метрик, измерения или скомпилированный SQL с помощью list_metrics, get_dimensions или get_metrics_compiled_sql.
  • Исследование lineage проекта — Прослеживайте зависимости моделей и связи вверх/вниз по потоку с помощью get_lineage или get_related_models.
  • Выполнение команд dbt — Запускайте run, test или build для материализации моделей, проверки данных или сборки проекта.
  • Генерация шаблонного кода — Создавайте исходный YAML, YAML моделей или staging SQL через generate_source, generate_model_yaml или generate_staging_model.
  • Мониторинг запусков заданий — Проверяйте статус запуска, ошибки или артефакты с помощью get_job_run_details, get_job_run_error или list_job_run_artifacts.
  • Просмотр деталей узлов — Получайте полные метаданные для любого типа ресурсов с помощью get_node_details, включая модели, источники и тесты.

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

dbt MCP Server

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, могли импортировать этот сервер без дополнительной настройки. Скачайте бандл из ресурсов последнего релиза и следуйте документации Anthropic по mcpb CLI, чтобы установить или проверить его.

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

Если у вас есть комментарии или вопросы, создайте 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, снапшот, макрос, 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: [Альфа] Ищет ресурсы по всему проекту dbt (не общедоступно).

dbt CLI

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

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

Admin API

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

  • cancel_job_run: Отменяет выполняющееся задание.
  • get_job_details: Получает конфигурацию задания, включая триггеры, расписание и команды dbt.
  • get_job_run_artifacts: Скачивает конкретный артефакт из запуска задания; для больших артефактов возвращается сообщение с рекомендацией повторить с jq_filter; поддерживает jq-фильтрацию для целевого извлечения.
  • 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: Генерирует YAML для модели с колонками; есть возможность наследовать описания вышестоящих моделей.
  • generate_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-запросы.

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

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