Smmly

Работает без обёрток · сервер в config.toml, ключ — переменной окружения

Постинг в соцсети из Codex CLI

Codex ходит на удалённые MCP-серверы сам и умеет собирать заголовок авторизации из переменной окружения — ключ в конфиг писать не надо вовсе. Две строки в config.toml, одна переменная в оболочке, и агент в терминале публикует посты в ваши каналы.

Нужен аккаунт с подключёнными каналами · 7 дней доступа за 10 ₽

Подключение за 4 шага

  1. Возьмите ключ в кабинете

    Раздел «Ключи доступа» → «Создать ключ». Показывается один раз, начинается с smk_. Если потеряли — удалите и выпустите новый, удалённый перестаёт работать сразу.

  2. Опишите сервер и положите токен в окружение

    Раздел в config.toml и одна строка экспорта. Префикс «Bearer» дописывать не нужно — Codex соберёт заголовок сам из значения переменной. Если вам нужен заголовок без принудительного префикса, у Codex есть отдельное поле env_http_headers, но нам оно ни к чему: мы ждём именно Bearer.

    config.toml — серверtoml

    Ключа здесь нет намеренно: указано только имя переменной, из которой Codex его возьмёт.

    [mcp_servers.smmly]
    url = "https://smmly.ru/api/mcp"
    bearer_token_env_var = "SMMLY_MCP_TOKEN"
    Токен — в оболочкетерминал

    Строку стоит положить в ~/.zshrc или ~/.bashrc: заданная разово, она пропадёт вместе с окном терминала.

    export SMMLY_MCP_TOKEN="smk_ВАШ_КЛЮЧ"
    • macOS и Linux: ~/.codex/config.toml
  3. Запустите codex из той же оболочки

    Переменная видна только процессам, запущенным из сессии, где вы её задали. Запустили codex из другого окна или из ярлыка — переменной там нет, и сервер ответит отказом. Ради этого строку и кладут в профиль оболочки.

  4. Проверьте связку

    Спросите агента про каналы — фраза ниже. Если Codex ругается на неизвестное поле url при старте, значит сборка старая: обновите codex, раньше для удалённых серверов требовался отдельный флаг, сейчас он не нужен.

Как понять, что получилось

покажи мои каналы в smmly

Список: площадка, имя канала, ярлыки. Дальше говорите словами — «запости в релизы», «поставь на понедельник в 10 утра по Москве».

Отказ про авторизацию — переменной нет в этой сессии либо ключ удалён. Ошибка вида «missing field command» при старте — сборка Codex старая, обновите её.

Грабли Codex CLI

Переменная нужна той сессии, откуда запускается codex

Самая частая причина отказа. Задали export в одном окне терминала, а codex запустили в другом или из внешнего запускалки — переменной там нет, и Codex отправит запрос с пустым токеном. Наш сервер требует ключ на любом запросе, включая первый, поэтому связка не соберётся вовсе. Кладите строку в профиль оболочки.

Старые сборки не знали удалённых серверов

Раньше Codex умел только локальные серверы, которые запускаются командой, и на поле url отвечал ошибкой «missing field command»; лечилось это отдельным флагом клиента. В актуальном описании конфига такого флага для нашего случая нет — похоже, он больше не нужен. Точного порога версии мы не проверяли, поэтому правило простое: ругается на url — обновите codex.

Команда codex mcp add существует, но конфиг надёжнее

Добавить сервер одной командой Codex в принципе умеет. Мы не даём её точный синтаксис намеренно: он у нас не проверен, а неверная команда молча запишет в конфиг не то. Файл config.toml — путь, который видно глазами и легко починить.

Длинный прогон выпадает из окна защиты

Оборвавшийся вызов безопасно повторить: одинаковая просьба в те же каналы в пределах пяти минут вернёт уже созданный пост. Но Codex работает автономно и подолгу — вернувшись к задаче через полчаса, он выпадет из этого окна, и пост выйдет вторым. Для таких прогонов просите агента задавать свой ключ повтора: он действует бессрочно. И заведите тестовый канал с отдельным ярлыком, прежде чем пускать агента в боевые.

Время публикации называйте городом

Отложенный пост принимает время со смещением часового пояса. Если смещения нет, время читается как всемирное и пост уходит на три часа раньше московского. Скажите «завтра в 9 утра по Москве» — агент подставит смещение сам.

Частые вопросы

Почему ключ не пишется прямо в config.toml?

Потому что Codex так устроен: в конфиге указывается имя переменной окружения, а значение он берёт из оболочки и сам собирает заголовок авторизации. Это удобнее, чем кажется — конфиг можно спокойно показывать и переносить, ключа в нём нет.

Нужно ли писать «Bearer» в переменной?

Нет, в переменной лежит только сам ключ, начинающийся с smk_. Префикс Codex добавит сам. Если когда-нибудь понадобится заголовок без принудительного префикса, для этого есть отдельное поле env_http_headers — но нашему серверу нужен именно Bearer, так что оно не пригодится.

Codex ругается на поле url. Что делать?

Обновить codex. В старых сборках удалённые серверы либо не поддерживались вовсе, либо включались отдельным флагом, и конфиг с url разбирался с ошибкой про отсутствующее поле команды. В актуальных сборках описание сервера ровно такое, как в примере выше.

Могу ли я постить из Codex, не выходя из работы над кодом?

Ровно за этим связка и нужна. Собрали релиз — тут же попросили агента рассказать о нём в канале, приложив картинку из репозитория. Замысел поста при этом приносите вы: сам придумывать, о чём написать, агент не станет, а руки для публикации у него теперь есть.

Что агент точно не сможет сделать моим ключом?

Подключить или отключить канал, поменять тариф, заплатить, выдать или удалить ключ, прочитать токены площадок. Всё это живёт только в кабинете, за паролем. Ключ даёт право вести каналы — публиковать, ставить на время, править и снимать свои посты.

Как безопасно проверить всё на живом аккаунте?

Подключите канал, который не жалко, и повесьте на него отдельный ярлык — например «тестовый». Дальше говорите «проверь на тестовом, боевые не трогай». Ярлык агент умеет повесить и сам, если попросить.

Постить в конкретную площадку из Codex CLI

Другие клиенты

Обзор всего блока — на странице про постинг из ИИ-агента. Общая инструкция по подключению — MCP-сервер, поля инструментов и коды ошибок — техническая справка, постинг из своего кода — API.

Пусть посты ставит агент

7 дней полного доступа за 10 ₽ — подключите каналы, возьмите ключ и проверьте на своих постах.

Попробовать за 10 ₽