Sno Station
Sno Station은 AI 에이전트를 하나의 팀으로 묶는 오픈소스 워크스테이션으로, 로컬 머신에서 에이전트 협업을 가능하게 함
Плагин Claude Code для управления Яндекс.Директ: MCP-сервер + скиллы + OAuth
플러그인Python · ShellGitHub @axisrow직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
설치형 프로젝트는 배포 도메인 없이도 확인할 수 있습니다. 개인 저장소는 GitHub 로그인으로, 조직 저장소는 위의 저장소 확인 파일로 직접 확인해 주세요.
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Управляйте Яндекс.Директом из Claude Code, ChatGPT или любой LLM — через промпты. Не нужны сервисы за 5–50 тыс. ₽/мес. Не нужно разбираться в сложных интерфейсах. Напишите промпт — нейросеть сама соберёт статистику, поменяет ставки, отключит дорогие объявления и пришлёт понятный отчёт. Откроется браузер → войдите в Яндекс → токен сохранится автоматически. Перед первой авторизацией нужно один раз создать приложение Яндекс.README 전문 보기 ↗
Управляйте Яндекс.Директом из Claude Code, ChatGPT или любой LLM — через промпты.
Не нужны сервисы за 5–50 тыс. ₽/мес. Не нужно разбираться в сложных интерфейсах. Напишите промпт — нейросеть сама соберёт статистику, поменяет ставки, отключит дорогие объявления и пришлёт понятный отчёт.
Open-source · бесплатно · работает локально
1. Подключите маркетплейс (один раз):
/plugin marketplace add etopro/plugin-marketplace
2. Установите плагин:
/plugin install yandex-direct@plugin-marketplace
3. Авторизуйтесь в Яндексе:
auth_login()
Откроется браузер → войдите в Яндекс → токен сохранится автоматически.
4. Готово. Пишите промпт:
Покажи кампании за последнюю неделю, отключи объявления,
где заявка дороже 1500 ₽, а там, где дешёвые — подними бюджет на 20%.
Перед первой авторизацией нужно один раз создать приложение Яндекс.
Всего 174 инструмента. Полный список: docs/TOOLS.md.
В чате: tool_help() — все инструменты, tool_help('campaigns_get') — справка по конкретному.
покажи активные кампании
сколько я потратил за эту неделю?
отключи кампанию «Ретаргет ДРР» — она сливает бюджет
подними ставку на 15 руб для ключевика 99999
покажи объявления, где CTR ниже 2%
баланс аккаунта
напиши три варианта объявления для доставки пиццы
цели Метрики для кампании 12345
Плагин работает только на вашем компьютере. Токен и данные аккаунта не уходят на чужие серверы. Исходный код открыт — можно проверить.
Все изменения требуют подтверждения: нейросеть покажет, что собирается сделать, и дождётся вашего «ок».
| Платформа | Как подключить |
|---|---|
| Claude Code | /plugin marketplace add etopro/plugin-marketplace → /plugin install yandex-direct@plugin-marketplace |
| Codex | Маркетплейс-манифест: .agents/plugins/marketplace.json |
| ChatGPT / локальные LLM | Любой MCP-клиент → python -m server.main (stdio) |
| Разработка | git clone + pip install -e ".[dev]" |
По умолчанию зарегистрировано 174 инструмента (включая browser-инструменты Мастеров; они работают headless, нужен настроенный браузерный профиль — см. ниже). Можно ограничить набор через переменные окружения:
| Переменная | Что делает |
|---|---|
YANDEX_DIRECT_TOOL_PROFILE | Пресет: full (по умолчанию), core (10), analytics (28), campaign-editor (36) |
YANDEX_DIRECT_ENABLED_GROUPS | Включить только эти группы |
YANDEX_DIRECT_DISABLED_GROUPS | Исключить группы (например, browser — вся browser-область) |
YANDEX_DIRECT_ENABLED_TOOLS / _DISABLED_TOOLS | Точечные переопределения |
YANDEX_DIRECT_OPTIONAL_TOOLS | Какие browser/local-reference бандлы грузить: browser, trackingparams, комбинация или all; без переменной грузятся все |
Настройка развёртывания browser-инструментов (это env сервера, а не параметры тулов):
| Переменная | Что делает |
|---|---|
YANDEX_DIRECT_BROWSER_PROFILE_DIR | Каталог постоянного профиля браузера; по умолчанию используется профиль CLI |
YANDEX_DIRECT_BROWSER_CHROME_PROFILE | Выбор профиля внутри каталога |
YANDEX_DIRECT_BROWSER_HEADFUL | 1 — показывать окно браузера вместо headless-режима |
YANDEX_DIRECT_BROWSER_TIMEOUT | Таймаут браузерных команд в секундах (положительное целое) |
// ~/.claude/settings.json — только аналитика
{ "env": { "YANDEX_DIRECT_TOOL_PROFILE": "analytics" } }
Подробнее: docs/token-budget.md.
Делается один раз перед первой авторизацией.
My Direct Plugin)https://oauth.yandex.ru/verification_codedirect:api)Без Шага 2 все запросы вернут ошибку
incomplete_registration.
direct auth login --client-id "ваш-client-id" --client-secret "ваш-client-secret"
В версиях плагина, где доступны masters_get и
masters_targetactions_get, эти инструменты отличаются от остальных:
Мастера кампаний доступны только в веб-интерфейсе Директа, поэтому
direct-cli читает их через браузер под управлением Playwright. OAuth-токен
из auth_login() или ~/.direct-cli/auth.json для этого не используется и
не заменяет браузерную сессию. Проверьте наличие инструментов через
tool_help(); если их нет, сначала обновите плагин до версии с поддержкой
read-only Masters.
Перед первым вызовом masters-инструмента выполните в обычном терминале, вне MCP-сессии:
direct auth login browser
Команда открывает видимое окно Chromium с Яндекс Паспортом и ждёт ручного
входа. Она сохраняет сессию в единственное хранилище CLI
~/.direct-cli/playwright/session.json. Браузерные команды при отсутствии,
повреждении или истечении envelope сами импортируют живую сессию из Chrome
(headless, без окна) — окно открывает только direct auth login browser.
Запускайте команду от того же пользователя и с тем же HOME, под которым
работает MCP-сервер.
Тот же вход доступен и из MCP-сессии тулом auth_browser_login() — оно
открывает такое же видимое окно либо импортирует уже залогиненную сессию
Chrome (source="chrome").
Для direct auth login browser нужны browser extra direct-cli и Chromium
для Playwright. Установите их в то же окружение и для той же закреплённой
версии CLI, которую выбирает MCP-сервер. Для установки из Claude marketplace
по умолчанию:
DIRECT_BIN="${YANDEX_DIRECT_CLI_PATH:-${CLAUDE_PLUGIN_DATA:-$HOME/.claude/plugins/data/yandex-direct}/venv/bin/direct}"
DIRECT_PY="$(dirname "$DIRECT_BIN")/python3"
DIRECT_VERSION="$("$DIRECT_PY" -c 'import importlib.metadata as m; print(m.version("direct-cli"))')"
"$DIRECT_PY" -m pip install "direct-cli[browser]==$DIRECT_VERSION"
"$DIRECT_PY" -m playwright install chromium
"$DIRECT_BIN" auth login browser
Если используется другой MCP-клиент или собственный YANDEX_DIRECT_CLI_PATH,
задайте DIRECT_BIN и DIRECT_PY путями из одного и того же окружения. Не
направляйте MCP на случайную или незакреплённую системную версию direct-cli:
она станет транспортом для всех инструментов плагина, а не только Masters.
Интерактивный вход нельзя выполнить из MCP tool-call, headless-сессии, удалённого процесса без GUI/TTY или CI. После ручной настройки сами read-only-инструменты могут запускать браузер без окна, если им доступны тот же профиль и установленный Chromium. Не рассчитывайте на эту схему в эфемерных или sandboxed-окружениях, где домашний каталог не сохраняется.
Импорт из уже авторизованного Chrome: source="chrome" у
auth_browser_login (или автоимпорт любой browser-командой при отсутствии/
повреждении envelope) копирует Yandex cookies из выбранного Chrome-профиля в
~/.direct-cli/playwright/session.json. На macOS для расшифровки cookies
потребуется разрешить чтение ключа Chrome Safe Storage из Keychain. Для
безопасной диагностики без входа и записи файлов используйте direct playwright doctor (legacy-команда direct playwright login deprecated —
используйте direct auth login browser).
Браузерные тулы авторизуют аккаунт, открытый в браузере; OAuth-профиль и
YANDEX_DIRECT_LOGIN не переключают masters-инструменты на другой клиентский
аккаунт. Хранилище содержит живую Яндекс-сессию — не копируйте и не
публикуйте его. Удалить сохранённую сессию можно командой direct auth logout browser или тулом auth_browser_logout внутри MCP-сессии.
| Скилл | Что делает |
|---|---|
/yandex-direct:yandex-direct | Управление кампаниями — стратегия, оптимизация, лимиты |
/yandex-direct:direct-ads | Написание объявлений для Яндекс.Директ |
/yandex-direct:direct-eda | Разведочный анализ рекламной статистики |
pytest # тесты (кассеты, без токена)
pytest -m mocks # edge-case моки
pytest -m integration # живой API (нужен токен)
ruff check . && ruff format . # линт
mypy . # типы
Архитектура, тестовая инфраструктура, конвенции: CLAUDE.md.
MIT