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

Использование MCP-серверов с dbt Wizard CLI Бета-версия

Model Context Protocol (MCP) подключает dbt Wizard к внешним инструментам и контексту. Добавьте MCP-сервер, и dbt Wizard сможет вызывать его инструменты прямо во время сеанса — запрашивать у dbt MCP-сервера метаданные проекта с соблюдением правил управления данными, открывать пул-реквесты через GitHub MCP-сервер или подключать любой другой MCP-совместимый сервис.

Посмотрите, как это работает, и поделитесь отзывом

Хотите увидеть dbt Wizard в действии? Посмотрите демонстрационное видео.

Нам было бы интересно узнать о вашем опыте работы с dbt Wizard. Поделитесь отзывом, выполнив слеш-команду /feedback в интерактивном сеансе терминала или перейдя в канал #dbt-wizard в Slack-сообществе dbt.

Большое спасибо за помощь в улучшении dbt Wizard и процесса разработки данных с помощью dbt!

Общие сведения о самом MCP см. во введении в Model Context Protocol. Информацию о сервере, который поддерживает dbt, см. в разделе dbt MCP-сервер.

Расположение файлов и приоритет​

MCP-серверы настраиваются в секциях [mcp_servers.NAME] файла config.toml. Используйте конфигурацию уровня пользователя для серверов, которые нужны во всех локальных проектах, и конфигурацию уровня проекта для серверов, настройки которых должны храниться вместе с доверенным репозиторием.

В следующей таблице перечислены расположения, в которых dbt Wizard ищет конфигурацию MCP-серверов. Для новых MCP-серверов используйте предназначенные для этого расположения, а расположения для совместимости сохраняйте только при переносе существующих настроек. Конфигурация MCP уровня проекта загружается только для доверенных проектов. Среди расположений уровня проекта текущий рабочий каталог имеет приоритет над родительскими каталогами. Серверы уровня проекта имеют приоритет над серверами уровня пользователя с тем же именем.

РасположениеУровеньИспользовать для новых MCP-серверов?Приоритет
.dbt/wizard/config.tomlПроектДа. Используйте здесь [mcp_servers.NAME] для MCP-серверов, общих для репозитория.Расположение с наивысшим приоритетом для конфигурации MCP проекта; каталог, ближайший к текущему рабочему, имеет приоритет над родительскими каталогами.
~/.dbt/wizard/config.tomlПользовательДа. Используйте для MCP-серверов, которые нужны во всех локальных проектах. Команда wizard mcp add записывает настройки сюда.Ниже конфигурации проекта, выше импортируемых настроек для совместимости.
.mcp.jsonПроектНет. Импорт существующих настроек MCP для совместимости.Импортируется вместе с конфигурацией проекта из того же каталога.
~/.dbt/wizard/.mcp.jsonПользовательНет. Импорт существующих настроек MCP для совместимости.Импортируется вместе с конфигурацией пользователя; имеет приоритет над ~/.mcp.json, если существуют оба файла.
~/.mcp.jsonПользовательНет. Импорт существующих настроек MCP для совместимости.Резервный вариант уровня пользователя.

Не определяйте MCP-сервер с одним и тем же именем в нескольких расположениях, если только вы намеренно не хотите переопределить его настройками из расположения с более высоким приоритетом. Если файл совместимости .mcp.json и файл config.toml в одном каталоге определяют сервер с одинаковым именем, удалите дубликат и оставьте нужную запись в config.toml.

Зачем использовать MCP-сервер​

dbt Wizard изначально понимает ваш проект dbt. MCP-сервер расширяет его возможности, предоставляя доступ к другим инструментам и системам, от которых зависит ваша работа, чтобы вы могли делать больше, не выходя из сеанса. Каждый добавленный сервер предоставляет dbt Wizard новый набор инструментов, которые он может вызывать от вашего имени. Например:

  • dbt MCP-сервер для доступа к моделям, метрикам и графу зависимостей с соблюдением правил управления данными.
  • GitHub-сервер для чтения и проверки пул-реквестов.
  • Сервер хранилища данных или другой сервер для получения контекста за пределами dbt.

CLI dbt Wizard позволяет добавлять, удалять и настраивать MCP-серверы, проходить аутентификацию, а также задавать правила подтверждения для отдельных инструментов через файл config.toml.

MCP-серверы доступны только в CLI

Настраивать MCP-серверы можно только в CLI dbt Wizard. Вы не можете добавлять собственные MCP-серверы в dbt platform (Studio IDE и приложение на главной странице), но dbt Wizard включает встроенные инструменты dbt, такие как навыки dbt Agent и получение документации по продукту через dbt MCP-сервер.

Поддерживаемые типы MCP-серверов​

dbt Wizard поддерживает два транспорта:

ТипОписание
STDIO-сервер (стандартный ввод/вывод; сервер, который работает как программа на вашем компьютере, а не как сервис, к которому вы подключаетесь через интернет)Работает как локальный процесс, который dbt Wizard запускает командой (например, npx или uvx). Поддерживает переменные окружения.
Сервер с транспортом Streamable HTTPСервер, доступный по URL. Поддерживает аутентификацию с помощью bearer-токена и OAuth.
Инструкции сервера

Для обоих транспортов dbt Wizard читает поле instructions, которое сервер возвращает при инициализации, и использует его как общие указания для работы с инструментами.

Добавление MCP-сервера​

Используйте команду wizard mcp add или отредактируйте ~/.dbt/wizard/config.toml напрямую. В обоих случаях настройки [mcp_servers.NAME] записываются на уровне пользователя.

wizard mcp add SERVER_NAME --env VAR1=value1 -- COMMAND ARGS

Здесь:

  • SERVER_NAME — выбранное вами имя сервера (например, filesystem).
  • --env VAR1=value1 — необязательный параметр, который можно указывать несколько раз; применяется только к STDIO-серверам.
  • Всё после -- — это команда, которую dbt Wizard выполняет для запуска сервера, поэтому пробел после -- указан намеренно.

Например, добавьте MCP-сервер для работы с файловой системой, который запускается локально через npx. Этому серверу не нужны переменные окружения, поэтому опустите --env:

wizard mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /Users/you/my-project

Чтобы подключить dbt MCP-сервер, используйте приведённый ниже вариант для Streamable HTTP — см. dbt MCP-сервер в разделе примеров.

Ключи конфигурации​

Эти ключи можно задать в блоке [mcp_servers.NAME] файла config.toml.

КлючПрименяется кОписание
commandSTDIOКоманда для запуска сервера (например, uvx или npx).
argsSTDIOМассив аргументов, передаваемых в command.
envSTDIOТаблица переменных окружения, устанавливаемых при запуске сервера.
env_varsSTDIOИмена существующих переменных окружения, которые нужно передать серверу.
urlHTTPКонечная точка сервера с транспортом Streamable HTTP.
bearer_token_env_varHTTPИмя переменной окружения, из которой считывается bearer-токен. Передаётся как Authorization: Bearer TOKEN.
http_headersHTTPТаблица статических HTTP-заголовков, отправляемых с каждым запросом.
env_http_headersHTTPHTTP-заголовки, значения которых считываются из переменных окружения.
scopesHTTPМассив областей доступа OAuth, запрашиваемых при входе. Переопределяет области доступа, объявленные сервером.
oauth.client_idHTTPИдентификатор клиента OAuth, передаваемый при авторизации и обмене токенами.
oauth_resourceHTTPПараметр ресурса OAuth, включаемый в запросы входа (RFC 8707).
enabledОбаОпределяет, активен ли сервер. По умолчанию true.
requiredОбаЕсли задано true, wizard exec завершается с ошибкой, когда не удаётся инициализировать этот сервер.
enabled_toolsОбаСписок имён инструментов сервера, которые нужно сделать доступными.
disabled_toolsОбаСписок имён инструментов сервера, которые нужно скрыть.
default_tools_approval_modeОбаРежим подтверждения по умолчанию для инструментов этого сервера: prompt (спрашивать перед каждым вызовом) или auto/approve (выполнять без запроса; эти значения работают одинаково).
startup_timeout_secОбаВремя ожидания запуска сервера и получения списка его инструментов.
tool_timeout_secОбаВремя ожидания выполнения отдельного вызова инструмента.

Задавайте правила подтверждения для отдельных инструментов с помощью блока [mcp_servers.NAME.tools.TOOL_NAME] и параметра approval_mode со значением auto, prompt или approve:

[mcp_servers.github.tools.create_pull_request]
approval_mode = "approve"

Аутентификация на сервере​

Если сервер с транспортом Streamable HTTP использует OAuth, необходимо пройти аутентификацию из CLI, прежде чем dbt Wizard сможет его использовать. Выполните:

wizard mcp login SERVER_NAME
wizard mcp logout SERVER_NAME

Чтобы запросить определённые области доступа при входе, передайте флаг CLI --scopes со списком через запятую. Он запрашивает те же области доступа, что и ключ scopes в config.toml, но только для этого входа:

wizard mcp login SERVER_NAME --scopes read,write

Для серверов, использующих статический токен, задайте в bearer_token_env_var имя переменной окружения, содержащей токен, и экспортируйте эту переменную перед запуском wizard.

Управление MCP-серверами (CLI)​

Управляйте настроенными серверами через CLI dbt Wizard или напрямую редактируя config.toml. CLI предоставляет следующие команды:

КомандаНазначение
wizard mcp listВывести список настроенных MCP-серверов. Добавьте --json для вывода в машиночитаемом формате.
wizard mcp get NAMEПоказать конфигурацию одного сервера.
wizard mcp add NAME ...Добавить STDIO-сервер или сервер с транспортом Streamable HTTP.
wizard mcp remove NAMEУдалить конфигурацию сервера.
wizard mcp login NAMEПройти аутентификацию на сервере OAuth.
wizard mcp logout NAMEВыйти из учётной записи на сервере OAuth.

Подтверждения и разрешения для инструментов​

Вызовы инструментов MCP подчиняются тем же правилам подтверждения и изоляции, что и остальные действия dbt Wizard. Задайте enabled_tools и disabled_tools в config.toml, чтобы управлять тем, какие инструменты предоставляет сервер (отдельного флага CLI для этого нет). Так dbt Wizard будет вызывать только те инструменты, которые вы разрешили.

Примеры​

Следующие примеры показывают распространённые сценарии добавления MCP-сервера и их настройку.

dbt MCP-сервер​

dbt MCP-сервер предоставляет dbt Wizard доступ к моделям, метрикам, графу зависимостей, сведениям об актуальности данных и API платформы вашего проекта с соблюдением правил управления данными. Подключить его можно двумя способами:

Работает на вашем компьютере через uvx как с учётной записью dbt platform, так и без неё — оптимальный вариант для разработки:

wizard mcp add dbt -- uvx dbt-mcp

Сервер с собственным размещением считывает настройки подключения (такие как DBT_HOST, DBT_TOKEN и DBT_PROJECT_DIR) из переменных окружения, обычно из файла .env в корневом каталоге вашего проекта dbt. URL не требуется. Инструкции по настройке см. в разделах Запуск dbt с собственным размещением и Настройка MCP с собственным размещением.

Затем отправьте запрос dbt Wizard:

Use the dbt MCP server to find the most recent failed run for the
nightly job and summarize the error.

MCP-сервер Fivetran Agent Context​

Подключите dbt Wizard к MCP-серверу Fivetran Agent Context, который предоставляет Wizard доступ к контекстному слою Fivetran вашей организации, чтобы он мог отвечать на вопросы с учётом ваших бизнес-определений, метрик и операционных данных. Добавьте его следующей командой:

wizard mcp add AgentContext \
--url "https://api.fivetran.ai/mcp"

Затем Wizard предложит вам авторизовать подключение. Следуйте подсказкам, чтобы завершить подключение.

Если ваша организация использует системные ключи, сначала задайте API-ключ в переменной окружения, а затем укажите её в команде:

export FIVETRAN_AI_API_KEY=YOUR_API_KEY
wizard mcp add AgentContext --url "https://api.fivetran.ai/mcp" --bearer-token-env-var FIVETRAN_AI_API_KEY

GitHub MCP-сервер для проверки пул-реквестов​

Подключите GitHub MCP-сервер, чтобы dbt Wizard мог читать пул-реквесты и оставлять комментарии при проверке:

~/.dbt/wizard/config.toml
[mcp_servers.github]
url = "https://api.githubcopilot.com/mcp/"
# Это ИМЯ переменной окружения, а не сам токен.
# Не храните настоящий токен в этом файле.
bearer_token_env_var = "GITHUB_MCP_TOKEN"

Затем перед запуском dbt Wizard задайте в этой переменной окружения свой настоящий токен:

export GITHUB_MCP_TOKEN="your-real-token-here"

Во время работы dbt Wizard считывает токен из окружения и отправляет его как Authorization: Bearer <the token>. Храните в config.toml только имя переменной, чтобы секрет не попадал в конфигурацию, которую вы сохраняете в репозитории.

Review the dbt model changes in PR #482 — check for missing tests on
new columns and confirm downstream refs still resolve.

Связанная документация​

Нашли ошибку?

0
Loading