MCP в Codex: config.toml, ключ и таймауты
Коротко: Codex хранит MCP-серверы в ~/.codex/config.toml, в секциях [mcp_servers.имя]. Удалённому серверу нужен url, а ключ Codex берёт из переменной окружения, имя которой указывается в bearer_token_env_var. И одна настройка, которую почти все пропускают: по умолчанию вызов инструмента обрывается через 60 секунд.
Где Codex хранит MCP-серверы
Глобальные настройки — в ~/.codex/config.toml. Для доверенного проекта можно завести .codex/config.toml в его корне — тогда серверы включатся только там. Файл в формате TOML, каждый сервер — отдельная секция. Что вообще такое MCP-сервер и зачем он агенту, — в обзоре MCP-серверов.
Шаг 1. Ключ в переменную окружения
Codex не хранит ключ в конфиге — он читает его из окружения при подключении. Получите ключ (без регистрации):
Ключ для Codex
Получите ключ sk-… прямо на странице
Серию модели выберите любую — Codex работает на своей модели, а MCP-серверам нужен только ключ. Он подставится в строку ниже.
Нажмите — и получите base_url и API-ключ.
Регистрация и карта не нужны.
Бесплатно. Ключ появится прямо здесь.
~/.zshrc или ~/.bashrcПодсвеченное — заглушки. Их выдаёт кнопка выше: пара секунд, без регистрации и карты.export TWELVER_API_KEY="sk-<ваш-ключ>"Откройте новый терминал или выполните source ~/.zshrc, чтобы переменная появилась в текущей оболочке.
Шаг 2. Секции mcp_servers в config.toml
[mcp_servers.twelver-web-search]
url = "https://twelver.ru/api/mcp/v1/web-search"
bearer_token_env_var = "TWELVER_API_KEY"
[mcp_servers.twelver-image]
url = "https://twelver.ru/api/mcp/v1/image-generation"
bearer_token_env_var = "TWELVER_API_KEY"
tool_timeout_sec = 120Обратите внимание: в bearer_token_env_var пишется имя переменной, а не сам ключ. Codex сам добавит заголовок Authorization: Bearer … к каждому запросу.
Или одной командой
Сервер можно добавить из терминала — Codex запишет секцию в конфиг сам. Имя переменной с ключом потом всё равно нужно дописать в секцию (bearer_token_env_var) — или войти через OAuth (для этого нужен зарегистрированный аккаунт):
codex mcp add twelver-web-search --url https://twelver.ru/api/mcp/v1/web-search
codex mcp login twelver-web-searchШаг 3. Таймауты: почему генерация «падает» через минуту
У Codex два таймаута на сервер, и оба стоит знать:
| Параметр | По умолчанию | За что отвечает |
|---|---|---|
startup_timeout_sec | 10 секунд | Подключиться к серверу и получить список инструментов |
tool_timeout_sec | 60 секунд | Выполнить один вызов инструмента |
Поиску минуты хватает с запасом. Генерации картинки в высоком разрешении — не всегда. А генерация видео держит вызов открытым, пока ролик не будет готов, и это минуты. Если Codex сообщает о таймауте, а токены при этом списались, — это как раз такой случай: сервер доделал работу, но клиент уже перестал ждать ответа. Поднимите таймаут для видео-сервера заранее:
[mcp_servers.twelver-video]
url = "https://twelver.ru/api/mcp/v1/seedance-video-generation"
bearer_token_env_var = "TWELVER_API_KEY"
tool_timeout_sec = 600Держите поиск глобально, генерацию — в проекте
~/.codex/config.toml. Генерацию изображений и видео разумнее включать в .codex/config.toml тех проектов, где она нужна, например для фронтенда или лендинга.Шаг 4. Проверьте
Запустите codex и дайте задачу, которой нужен инструмент: «найди, какие breaking changes в последнем мажорном релизе нашего ORM, и проверь, задевают ли они наш код». Codex вызовет web-search, прочитает changelog и только затем пойдёт по файлам проекта. Список подключённых серверов показывает команда:
codex mcp listЕсли не работает
| Симптом | Причина | Что делать |
|---|---|---|
| 401 при подключении | Переменная окружения пуста в оболочке, где запущен Codex | Проверьте echo $TWELVER_API_KEY; в bearer_token_env_var должно быть имя переменной, не ключ |
| Сервер не успевает подключиться за 10 секунд | Медленная сеть при первом подключении | Поднимите startup_timeout_sec до 20–30 |
| Вызов обрывается через минуту | tool_timeout_sec по умолчанию 60 | Для генерации картинок — 120, для видео — 600 |
| Серверов нет в проекте | Проектный .codex/config.toml читается только в доверенном проекте | Отметьте проект доверенным или перенесите секции в ~/.codex/config.toml |
Та же пара «ссылка + ключ» работает в OpenCode и Claude Code. Что стоит подключить разработчику, кроме поиска, — в подборке лучших MCP-серверов.
Частые вопросы
Как подключить MCP к Codex?
~/.codex/config.toml секцию [mcp_servers.имя]. Для удалённого сервера укажите url и, если нужен ключ, bearer_token_env_var с именем переменной окружения. Или выполните codex mcp add имя --url адрес — Codex запишет секцию сам.Где лежит конфиг MCP-серверов Codex?
~/.codex/config.toml для всех проектов и в .codex/config.toml в корне доверенного проекта — только для него.Как передать токен MCP-серверу в Codex?
bearer_token_env_var — Codex добавит заголовок Authorization: Bearer сам. Для других заголовков есть http_headers. Если сервер поддерживает OAuth, можно войти командой codex mcp login имя.Почему инструмент MCP в Codex падает по таймауту?
tool_timeout_sec равен 60 секундам. Долгие инструменты — генерация видео, иногда картинок в высоком разрешении — не укладываются. Поднимите значение в секции сервера, например до 600 для видео.Какие MCP-серверы полезны в Codex?
Попробуйте сами
Соберите свой MCP-сервер за минуту
Отметьте нужные инструменты — ссылки коннекторов и mcp.json соберутся сами. Подключается к Claude, Cursor, LM Studio, Codex и OpenCode.
Собрать MCP-сервер