О dbt Model Context Protocol (MCP)
По мере того как ИИ все глубже интегрируется в дата‑процессы, пользователям dbt необходим удобный способ доступа к структурированным метаданным dbt и контексту выполнения, а также их эффективной интеграции. На этой странице представлен обзор MCP Server от dbt, который предоставляет этот контекст и поддерживает такие сценарии использования, как диалоговый доступ к данным, агентно‑ориентированная автоматизация dbt‑воркфлоу и разработка с помощью ИИ.
Сервер dbt Model Context Protocol (MCP) предоставляет стандартизированный фреймворк, который позволяет пользователям бесшовно интегрировать ИИ‑приложения с управляемыми dbt дата‑активами независимо от используемых платформ данных. Это обеспечивает единообразный и управляемый доступ к моделям, метрикам, lineage и freshness в различных ИИ‑инструментах.
MCP server предоставляет доступ к dbt CLI, API, Discovery API и Semantic Layer. Он также обеспечивает доступ к приватным API, text‑to‑SQL и выполнению SQL.
Для получения дополнительной информации о MCP см. Get started with the Model Context Protocol (MCP).
Доступ к серверу
Использовать dbt MCP server можно двумя способами: локально или удаленно. Выберите вариант, который лучше всего подходит под ваш рабочий процесс:
Локальный MCP server
Локальный MCP server обеспечивает наилучший опыт для задач разработки, таких как создание dbt‑моделей, тестов и документации.
Локальный MCP server запускается на вашей машине и требует установки uvx (который устанавливает dbt-mcp локально). Этот вариант предоставляет:
- Полный доступ к командам dbt CLI (
dbt run,dbt build,dbt testи другие) - Поддержку dbt Core, Cloud CLI и dbt Fusion Engine
- Возможность работать с локальными dbt‑проектами без необходимости иметь учетную запись dbt platform
- Опциональную интеграцию с API dbt platform для обнаружения метаданных и доступа к Semantic Layer
Удаленный MCP server
Удаленный MCP server от dbt ориентирован на сценарии потребления данных и не требует локальной установки.
Удаленный MCP server подключается к dbt platform по HTTP и не требует установки на локальной машине. Этот вариант полезен, если:
- Вы не хотите устанавливать дополнительное ПО или у вас есть ограничения на его установку.
- Ваш сценарий использования в основном связан с потреблением данных (например, запрос метрик, исследование метаданных, просмотр lineage).
Удалённые инструменты dbt MCP зависят от доступных кредитов dbt Copilot. Обратите внимание, что SQL‑инструменты и удалённые инструменты Fusion относятся к этой категории даже в тех случаях, когда они используются и проксируются через локальный сервер dbt MCP. Большинство MCP‑инструментов не расходуют кредиты dbt Copilot. Однако использование text_to_sql учитывается в вашем потреблении dbt Copilot.
Если вы достигнете лимита использования dbt Copilot, все инструменты будут заблокированы до тех пор, пока ваши кредиты Copilot не будут сброшены. Если вам нужна помощь, пожалуйста, свяжитесь с вашим аккаунт-менеджером.
Доступные инструменты
Поддерживаемые
dbt MCP server имеет доступ ко многим частям экосистемы dbt, связанным с разработкой, развертыванием и исследованием данных. Ниже приведены категории инструментов, доступные в зависимости от типа MCP server, к которому вы подключаетесь, а также указано, какие инструменты доступны LLM.
| Loading table... |
Обратите внимание, что доступ к Discovery API и Semantic Layer API ограничен в зависимости от вашего типа плана.
Команды dbt CLI
build: Выполняет модели, тесты, snapshots и seeds в порядке зависимостейcompile: Генерирует исполняемый SQL из моделей, тестов и analyses без их выполненияdocs: Генерирует документацию для dbt‑проектаls(list): Выводит список ресурсов в dbt‑проекте, таких как модели и тестыparse: Парсит и валидирует файлы проекта на корректность синтаксисаrun: Выполняет модели и материализует их в базе данныхtest: Запускает тесты для проверки данных и целостности моделейshow: Выполняет запрос к data warehouse
Разрешение клиенту использовать команды dbt через MCP‑инструменты может привести к изменениям в моделях данных, источниках и объектах хранилища. Используйте это только в том случае, если вы доверяете клиенту и понимаете потенциальные последствия.
Семантический слой
Чтобы узнать больше о dbt Semantic Layer, перейдите сюда.
list_metrics: Возвращает все определенные метрикиget_dimensions: Возвращает измерения, связанные с указанными метрикамиget_entities: Возвращает сущности, связанные с указанными метрикамиquery_metrics: Выполняет запрос метрик с опциональной группировкой, сортировкой, фильтрацией и ограничениемget_metrics_compiled_sql: Возвращает скомпилированный SQL для указанных метрик и группировок без выполнения запроса
Обнаружение метаданных
Чтобы узнать больше о dbt Discovery API, перейдите сюда.
get_mart_models: Возвращает все mart‑моделиget_all_models: Возвращает все моделиget_model_details: Возвращает детали конкретной моделиget_model_parents: Возвращает родительские узлы конкретной моделиget_model_children: Возвращает дочерние модели конкретной моделиget_model_health: Возвращает сигналы состояния (health) конкретной моделиget_all_sources: Возвращает все source‑таблицы с метаданными и информацией о freshnessget_source_details: Возвращает детали конкретного sourceget_exposures: Возвращает все exposuresget_exposure_details: Возвращает детали конкретного exposure или списка exposuresget_related_models: Использует семантический поиск для нахождения dbt‑моделей, похожих на запрос, даже если нет точного совпадения строки.get_macro_details: Возвращает детали конкретного macroget_seed_details: Возвращает детали конкретного seedget_semantic_model_details: Возвращает детали конкретной semantic‑моделиget_snapshot_details: Возвращает детали конкретного snapshotget_test_details: Возвращает детали конкретного теста
Административный API
Чтобы узнать больше о dbt Administrative API, перейдите сюда.
list_jobs: Возвращает список всех jobs в учетной записи dbtget_job_details: Возвращает подробную информацию о конкретном job, включая конфигурацию и настройкиtrigger_job_run: Запускает выполнение job с опциональными переопределениями параметров, такими как Git‑ветка, схема или параметры выполненияlist_jobs_runs: Возвращает список запусков в учетной записи с возможностью фильтрации по job, статусу или другим критериямget_job_run_details: Возвращает подробную информацию о запуске, включая детали выполнения, шаги, артефакты и debug‑логиcancel_job_run: Отменяет выполняющийся jobretry_job_run: Повторно запускает неудавшийся joblist_job_run_artifacts: Возвращает список всех доступных артефактов запуска job (manifest.json, catalog.json, логи и т.д.)get_job_run_artifact: Загружает конкретный файл артефакта запуска job для анализа или интеграцииget_job_run_error: Возвращает детали ошибок для неудавшихся запусков job, чтобы упростить диагностику (включает опцию возврата предупреждений и сведений о депрекейтах)
SQL (удалённый)
text_to_sql: Генерирует SQL из запросов на естественном языкеexecute_sql: Выполняет SQL на backend‑инфраструктуре dbt platform с поддержкой синтаксиса Semantic Layer SQL. Примечание: для этого инструмента требуется использовать PAT вместо service token вDBT_TOKEN.
Инструменты генерации кода
Эти инструменты помогают автоматизировать генерацию шаблонного кода для файлов dbt‑проекта. Чтобы использовать их, установите dbt-codegen в ваш dbt‑проект. По умолчанию эти инструменты отключены. Чтобы включить их, установите переменную окружения DISABLE_DBT_CODEGEN в значение false.
generate_source: Создает YAML‑описания sources на основе схем базы данных.generate_model_yaml: Генерирует YAML‑документацию для существующих dbt‑моделей, включая имена колонок, типы данных и placeholders для описаний.generate_staging_model: Создает staging SQL‑модели из sources для преобразования сырых данных в чистые staging‑модели.
Инструменты Fusion (удалённые)
Набор инструментов, использующих движок Fusion для расширенной компиляции SQL и анализа lineage на уровне колонок.
compile_sql: Компилирует SQL‑выражение в контексте текущего проекта и окружения.get_column_lineage: Эксклюзивно для Fusion! Возвращает информацию о lineage колонок по DAG проекта для конкретной колонки.
Инструменты Fusion (локальные)
Набор инструментов, использующих движок Fusion через локально запущенный Fusion Language Server Protocol (LSP) в VS Code или Cursor с расширением dbt для VS Code.
get_column_lineage: Эксклюзивно для Fusion! Возвращает информацию о lineage колонок по DAG проекта для конкретной колонки.
MCP‑интеграции
dbt MCP server интегрируется с любым MCP client, который поддерживает аутентификацию по токену и использование инструментов.
Мы также подготовили гайды по интеграции для следующих клиентов:
Ресурсы
- Дополнительную информацию см. в нашем блоге: Introducing the dbt MCP Server.