# Промпт для Codex: подключение Yandex Direct MCP

Скопируй весь текст ниже и отправь его в чат Codex, в котором нужно подключить MCP-сервер Яндекс Директа.

> Этот же промпт доступен в личном кабинете `https://bflprime.ru/app` — раздел «Конфигурация MCP» → кнопка «Скачать инструкцию».
> Актуализировано: 2026-07-08. Проверено с `codex-cli 0.128.0`: Streamable HTTP MCP можно добавлять через `codex mcp add ... --url ... --bearer-token-env-var ...`.

````text
Мне нужно подключить к этому Codex MCP-сервер yandex-direct-mcp (Яндекс Директ). Проведи меня через установку прямо в чате: куда вписать API-ключ, как добавить MCP-сервер, как проверить подключение и что делать при первом запросе 2FA. Если у тебя есть безопасный доступ к файловой системе — внеси правки сам; если нет — дай точные команды и путь к файлу под мою ОС.

Важно:
- Не проси меня вставлять API-ключ прямо в чат.
- Ключ должен храниться в переменной окружения YD_DIRECT_API_KEY, а не в открытом виде в конфиге.
- Это удалённый Streamable HTTP сервер. В текущих версиях Codex он добавляется командой "codex mcp add ... --url ... --bearer-token-env-var ...". Если такой команды нет — обнови Codex или добавь сервер вручную в config.toml (блок ниже).
- После установки переменной окружения Codex нужно перезапустить, иначе он не увидит ключ.

Данные сервера:
- Имя сервера: yandex_direct
- URL: https://bflprime.ru/mcp
- Транспорт: Streamable HTTP (единственный endpoint — /mcp)
- Авторизация: заголовок "Authorization: Bearer <ключ>"; ключ берётся из переменной окружения YD_DIRECT_API_KEY
- Первый реальный вызов запросит 2FA-код из Telegram
- Доверенная сессия действует 24 часа
- Ограничение частоты: 60 запросов в минуту на ключ

Шаги:

1. Где взять API-ключ.
   Ключ выдаёт администратор сервиса — он показывается один раз при создании, сразу сохрани его.
   В личном кабинете https://bflprime.ru/app войди по одноразовому коду с email и привяжи Telegram в настройках (без этого не придёт 2FA-код).

2. Установи API-ключ в переменную окружения YD_DIRECT_API_KEY.
   Windows PowerShell, постоянно для пользователя, предпочтительно без попадания ключа в историю команд:
       $secure = Read-Host "Paste YD_DIRECT_API_KEY" -AsSecureString
       $bstr = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($secure)
       try {
         $plain = [Runtime.InteropServices.Marshal]::PtrToStringBSTR($bstr)
         [Environment]::SetEnvironmentVariable("YD_DIRECT_API_KEY", $plain, "User")
       }
       finally {
         if ($bstr -ne [IntPtr]::Zero) { [Runtime.InteropServices.Marshal]::ZeroFreeBSTR($bstr) }
         Remove-Variable secure, plain -ErrorAction SilentlyContinue
       }
   Проверка без вывода ключа:
       [bool][Environment]::GetEnvironmentVariable("YD_DIRECT_API_KEY", "User")
   Простая, но менее безопасная альтернатива, потому что ключ может остаться в истории PowerShell:
       setx YD_DIRECT_API_KEY "вставь-сюда-ключ"
   (после setx открой новый терминал или перезапусти Codex)
   Windows PowerShell, только текущее окно:
       $env:YD_DIRECT_API_KEY = "вставь-сюда-ключ"

   2б. macOS.
   Если Codex запускается из Terminal, задай ключ для текущей shell-сессии без попадания ключа в историю:
       printf "Paste YD_DIRECT_API_KEY: "
       stty -echo
       IFS= read -r YD_DIRECT_API_KEY
       stty echo
       printf "\n"
       export YD_DIRECT_API_KEY
   Для постоянной установки в новых терминалах добавь export в ~/.zshrc:
       printf '\nexport YD_DIRECT_API_KEY=%q\n' "$YD_DIRECT_API_KEY" >> ~/.zshrc
       source ~/.zshrc
   Если Codex app запускается из Dock/Finder, ~/.zshrc может не примениться. Для текущей GUI-сессии macOS задай переменную через launchctl:
       printf "Paste YD_DIRECT_API_KEY: "
       stty -echo
       IFS= read -r YD_DIRECT_API_KEY
       stty echo
       printf "\n"
       launchctl setenv YD_DIRECT_API_KEY "$YD_DIRECT_API_KEY"
       open -a Codex
   После launchctl полностью перезапусти Codex app. Проверка без вывода ключа:
       launchctl getenv YD_DIRECT_API_KEY >/dev/null && echo "YD_DIRECT_API_KEY is set"

   Linux, текущая сессия:
       export YD_DIRECT_API_KEY="вставь-сюда-ключ"
   Для постоянной установки на Linux добавь этот export в ~/.zshrc или ~/.bashrc.

3. Добавь MCP-сервер. Предпочтительно одной командой:
       codex mcp add yandex_direct --url https://bflprime.ru/mcp --bearer-token-env-var YD_DIRECT_API_KEY
   Если сервер уже есть или команда вернула конфликт — не дублируй блок, а обнови существующую настройку yandex_direct в config.toml.
   Если твоя версия codex mcp add не поддерживает --url — обнови Codex или добавь блок вручную в config.toml.
   Путь к файлу: ~/.codex/config.toml (на Windows — папка .codex в домашней директории пользователя; если файла или папки нет, создай).
   Блок:
       [mcp_servers.yandex_direct]
       url = "https://bflprime.ru/mcp"
       bearer_token_env_var = "YD_DIRECT_API_KEY"
       startup_timeout_sec = 30
       tool_timeout_sec = 180
   Если в config.toml уже есть другие настройки — не удаляй их, только добавь или обнови блок [mcp_servers.yandex_direct].

4. Перезапусти Codex и проверь подключение:
       codex mcp list
   В списке должен появиться сервер yandex_direct со статусом enabled и Auth = Bearer token. Это проверяет конфигурацию, но не доказывает успешную авторизацию на сервере — реальная проверка будет на первом tools/call.

5. Первый вызов и 2FA.
   Попроси Codex сделать читающий вызов, например list_yandex_accounts.
   Сервер пришлёт 6-значный код в Telegram. Передай мне этот короткоживущий код в чат, и Codex вызовет authorize_session с этим кодом. После успеха инструменты доступны 24 часа.
   Если сервер ответит "Требуется 2FA, но к вашему аккаунту не привязан Telegram" — открой https://bflprime.ru/app, привяжи Telegram в настройках и повтори list_yandex_accounts.

6. Ограничения и поведение.
   - При смене IP, VPN, устройства или версии клиента сервер может снова запросить 2FA.
   - При ротации API-ключа доверенные устройства сбрасываются.
   - Если ключ потерян — запроси новый у администратора.
   - Для write-операций (инструменты add_/update_/delete_/set_/manage_) сервер вернёт confirmation_required: покажи мне summary и подтверждай только после моего явного согласия.

7. Если возникнут ошибки:
   - 401 Missing API key — переменная окружения не задана или Codex не перезапущен;
   - 401 Invalid API key — ключ неверный или ротирован;
   - сервера нет в "codex mcp list" — ошибка в config.toml или не тот путь;
   - "failed to load configuration" / "unknown variant ... in service_tier" — в config.toml задано невалидное значение service_tier, например "default" или "priority"; удали эту строку или замени на поддерживаемое значение "fast" / "flex";
   - инструменты MCP не появились в чате, хотя codex mcp list показывает сервер — полностью перезапусти Codex или начни новый чат после перезапуска;
   - timeout — увеличь startup_timeout_sec или tool_timeout_sec;
   - код 2FA не приходит — Telegram не привязан, либо повтори первый вызов.

8. Когда я попрошу данные Яндекс Директа, соблюдай правила:
   - при нескольких подключённых аккаунтах сначала вызови list_yandex_accounts, если я не указал аккаунт, и дальше передавай нужный yandex_login;
   - если аккаунт агентский и работа идёт по клиенту агентства, используй client_login для клиента, не путай его с yandex_login;
   - в статистических отчётах ставь высокий limit (обычно 10000);
   - для get_campaigns / get_keywords / get_ads / get_adgroups запрашивай только нужные field_names;
   - большие выгрузки обрабатывай через файл и скрипт, не вставляй огромный JSON в ответ;
   - предупреждай про модель атрибуции, цели Метрики, НДС и полноту данных, когда показываешь статистику.

Сначала коротко скажи, что будешь делать, затем проверь, можешь ли сам увидеть и изменить ~/.codex/config.toml. Если не можешь — дай мне точные команды под мою ОС.
````

## Короткая версия для отправки в Codex

```text
Подключи мне MCP-сервер Яндекс Директа. Не проси API-ключ в чат: объясни, как безопасно сохранить его в переменной окружения YD_DIRECT_API_KEY, как добавить сервер командой `codex mcp add yandex_direct --url https://bflprime.ru/mcp --bearer-token-env-var YD_DIRECT_API_KEY` (а если команда не поддерживает `--url` — обновить Codex или вручную добавить блок `[mcp_servers.yandex_direct]` в `~/.codex/config.toml`), как перезапустить Codex, проверить `codex mcp list`, пройти первый 2FA через Telegram с `authorize_session` и при нескольких аккаунтах использовать `yandex_login` из `list_yandex_accounts`. Если `codex mcp list` падает из-за `service_tier = "default"` или `"priority"`, удали эту строку или замени на `fast`/`flex`. Если можешь безопасно править конфиг сам, сделай это; иначе дай точные команды для моей ОС.
```
