Русский

Model Context Protocol

Предоставьте Codex доступ к сторонним инструментам и контексту

Model Context Protocol (MCP) связывает модели с инструментами и контекстом. Используйте его, чтобы предоставить ChatGPT или Codex доступ к сторонней документации либо позволить им взаимодействовать с инструментами разработчика, например с вашим браузером или Figma.

Веб-версия ChatGPT может использовать удалённые инструменты на базе MCP, предоставляемые плагинами. Локальные клиенты Codex также могут напрямую подключаться к серверам MCP и совместно использовать их конфигурацию.

Настольное приложение ChatGPT, Codex CLI и расширение IDE поддерживают серверы MCP и совместно используют конфигурацию MCP для одного и того же хоста Codex.

Перечисленные ниже поддерживаемые возможности серверов относятся к серверам MCP, настроенным на хосте Codex. Инструменты размещённых плагинов могут иметь другие возможности.

Поддерживаемые возможности MCP

  • Серверы STDIO: серверы, работающие как локальный процесс (запускаемый командой).
    • Переменные окружения
  • Серверы Streamable HTTP: серверы, доступные по сетевому адресу.
    • Аутентификация с помощью Bearer-токена
    • Аутентификация OAuth
    • Аутентификация с помощью сеанса ChatGPT для доверенных серверов OpenAI
  • Инструкции сервера: Codex считывает поле MCP instructions, возвращённое при инициализации, и использует его как общие указания для всего сервера наряду с его инструментами.

Если вы разрабатываете или поддерживаете сервер MCP для Codex, используйте instructions для описания рабочих процессов с несколькими инструментами, ограничений и лимитов запросов, действующих на всём сервере. Первые 512 символов должны быть самодостаточными, чтобы наиболее важные указания были доступны, когда Codex решает, как использовать сервер.

Подключение Codex к серверу MCP

Codex хранит конфигурацию MCP в config.toml вместе с другими параметрами конфигурации Codex. По умолчанию это ~/.codex/config.toml, однако область действия серверов MCP также можно ограничить проектом с помощью .codex/config.toml (только для доверенных проектов).

Настольное приложение ChatGPT, Codex CLI и расширение IDE совместно используют эту конфигурацию. Настроив серверы MCP, вы сможете переключаться между этими клиентами без повторной настройки.

Настройка в настольном приложении ChatGPT

  1. Откройте Настройки, затем выберите Серверы MCP.
  2. Выберите Добавить сервер.
  3. Введите имя, выберите STDIO или Streamable HTTP и укажите команду сервера или URL.
  4. Сохраните сервер, затем выберите Перезапустить.

В списке серверов указано, какие серверы включены и для каких требуется OAuth. Выберите Аутентифицироваться, если для сервера OAuth необходимо войти в систему. В поле ввода сообщения введите /mcp, чтобы просмотреть подключённые серверы.

Настройка с помощью config.toml

Для более точного управления измените ~/.codex/config.toml или файл .codex/config.toml, действующий в пределах проекта. Полный список поддерживаемых параметров MCP с возможностью поиска приведён в справочнике по конфигурации.

Настройте каждый сервер MCP с помощью таблицы [mcp_servers.<server-name>] в файле конфигурации.

Серверы STDIO

  • command (обязательно): команда, запускающая сервер.
  • args (необязательно): аргументы, передаваемые серверу.
  • env (необязательно): переменные окружения, задаваемые для сервера.
  • env_vars (необязательно): переменные окружения, которые разрешено передавать.
  • cwd (необязательно): рабочий каталог, из которого запускается сервер.
  • experimental_environment (необязательно): задайте remote, чтобы запускать сервер stdio через удалённую среду выполнения, если она доступна.

env_vars может содержать простые имена переменных или объекты с указанием источника:

env_vars = ["LOCAL_TOKEN", { name = "REMOTE_TOKEN", source = "remote" }]

Строковые элементы и source = "local" считываются из локального окружения Codex. source = "remote" считывается из удалённой среды выполнения и требует удалённого MCP stdio.

Серверы Streamable HTTP

  • url (обязательно): адрес сервера.
  • auth (необязательно): способ аутентификации, применяемый после настроенных Bearer-токенов и заголовков авторизации. Используйте oauth (значение по умолчанию) для сохранённых учётных данных MCP OAuth. Используйте chatgpt, чтобы применить текущий сеанс ChatGPT для доверенного источника ChatGPT с сохранёнными данными OAuth в качестве резервного варианта.
  • bearer_token_env_var (необязательно): имя переменной окружения с Bearer-токеном, отправляемым в Authorization.
  • http_headers (необязательно): сопоставление имён заголовков со статическими значениями.
  • env_http_headers (необязательно): сопоставление имён заголовков с именами переменных окружения (значения берутся из окружения).

Если получить учётные данные ни из одного источника не удаётся, Codex может подключиться к серверу без аутентификации. Отдельно выполните codex mcp login <server-name>, чтобы начать вход через MCP OAuth.

Другие параметры конфигурации

  • startup_timeout_sec (необязательно): время ожидания запуска сервера в секундах. По умолчанию: 10.
  • tool_timeout_sec (необязательно): время ожидания выполнения инструмента сервером в секундах. По умолчанию: 60.
  • enabled (необязательно): задайте false, чтобы отключить сервер, не удаляя его.
  • required (необязательно): задайте true, чтобы запуск завершался с ошибкой, если этот включённый сервер не удаётся инициализировать.
  • enabled_tools (необязательно): список разрешённых инструментов.
  • disabled_tools (необязательно): список запрещённых инструментов (применяется после enabled_tools).
  • default_tools_approval_mode (необязательно): поведение подтверждений по умолчанию для инструментов этого сервера. Поддерживаемые значения: auto, prompt, writes и approve. В режиме writes запрашивается подтверждение для инструментов, не помеченных как доступные только для чтения.
  • tools.<tool>.approval_mode (необязательно): переопределение поведения подтверждений для отдельных инструментов.

Если вашему провайдеру OAuth требуется фиксированный порт обратного вызова, задайте параметр верхнего уровня mcp_oauth_callback_port в config.toml. Если он не задан, Codex привязывается к временному порту.

Если поток MCP OAuth должен использовать определённый URL обратного вызова (например, URL входа удалённого Devbox или собственный путь обратного вызова), задайте mcp_oauth_callback_url. Codex использует это значение как базовый URL обратного вызова, а затем добавляет идентификатор обратного вызова конкретного сервера, формируя OAuth redirect_uri, который отправляется при входе. Зарегистрируйте у провайдера OAuth полный производный redirect_uri, включая добавленный идентификатор обратного вызова и все настроенные путь, строку запроса или порт, а не только базовый хост или путь без этого суффикса. Локальные URL обратного вызова (например, localhost) привязываются к локальному интерфейсу; нелокальные URL обратного вызова привязываются к 0.0.0.0, чтобы обратный вызов мог достичь хоста.

Если сервер MCP объявляет scopes_supported, Codex отдаёт предпочтение этим областям доступа, объявленным сервером, при входе через OAuth. В противном случае Codex использует области доступа, настроенные в config.toml.

Примеры config.toml

[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]
env_vars = ["LOCAL_TOKEN"]

[mcp_servers.context7.env]
MY_ENV_VAR = "MY_ENV_VALUE"
# Optional MCP OAuth callback overrides (used by `codex mcp login`)
mcp_oauth_callback_port = 5555
mcp_oauth_callback_url = "https://devbox.example.internal/callback"
[mcp_servers.figma]
url = "https://mcp.figma.com/mcp"
bearer_token_env_var = "FIGMA_OAUTH_TOKEN"
http_headers = { "X-Figma-Region" = "us-east-1" }
[mcp_servers.chrome_devtools]
url = "http://localhost:3000/mcp"
enabled_tools = ["open", "screenshot"]
disabled_tools = ["screenshot"] # applied after enabled_tools
default_tools_approval_mode = "prompt"
startup_timeout_sec = 20
tool_timeout_sec = 45
enabled = true

[mcp_servers.chrome_devtools.tools.open]
approval_mode = "approve"

Серверы MCP, предоставляемые плагинами

Установленные плагины могут включать серверы MCP в свой манифест. Эти серверы запускаются из плагина, поэтому пользовательская конфигурация не задаёт для них команду транспорта. При этом в пользовательской конфигурации по-прежнему можно управлять включением и отключением, а также политикой инструментов в разделе plugins.<plugin>.mcp_servers.<server>.

[plugins."sample@test".mcp_servers.sample]
enabled = true
default_tools_approval_mode = "prompt"
enabled_tools = ["read", "search"]

[plugins."sample@test".mcp_servers.sample.tools.search]
approval_mode = "approve"

Примеры полезных серверов MCP

Список серверов MCP продолжает расти. Вот несколько распространённых вариантов:

  • OpenAI Docs MCP: поиск и чтение документации OpenAI для разработчиков.
  • Context7: подключение к актуальной документации для разработчиков.
  • Figma: локальный и удалённый доступ к вашим макетам Figma.
  • Playwright: управление браузером и его исследование с помощью Playwright.
  • Инструменты разработчика Chrome: управление Chrome и его исследование.
  • Sentry: доступ к журналам Sentry.
  • GitHub: управление возможностями GitHub, выходящими за рамки поддерживаемых git (например, запросами на слияние и задачами).