MCP в Codex: config.toml, ключ и таймаутыMCP-сервер: что это простыми словами и как подключить

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_sec10 секундПодключиться к серверу и получить список инструментов
tool_timeout_sec60 секундВыполнить один вызов инструмента
По документации Codex на 17.09.2026.

Поиску минуты хватает с запасом. Генерации картинки в высоком разрешении — не всегда. А генерация видео держит вызов открытым, пока ролик не будет готов, и это минуты. Если 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?
Чаще всего — поиск в интернете и чтение страниц (свежая документация и changelog), доступ к GitHub и браузер для проверки интерфейса. Подборка по задачам — в статье лучшие MCP-серверы.

Попробуйте сами

Соберите свой MCP-сервер за минуту

Отметьте нужные инструменты — ссылки коннекторов и mcp.json соберутся сами. Подключается к Claude, Cursor, LM Studio, Codex и OpenCode.

Собрать MCP-сервер
Оцените свой опыт