Настройка MCP-сервера Codex

MCP (Model Context Protocol) позволяет Codex интегрироваться с внешними инструментами и сервисами.

В этом разделе приведены подробные инструкции по настройке и использованию MCP-серверов.


Что такое MCP?

MCP — это открытый протокол, обеспечивающий стандартизированное взаимодействие между AI-моделями и внешними инструментами и сервисами. С помощью MCP-серверов вы можете расширить возможности Codex:

  • Подключение файловой системы
  • Доступ к базе данных
  • Интеграция инструментов управления проектами
  • Вызов внешнего API
MCP на основе открытогоModel Context ProtocolBuild, с поддержкой стандартизированной интеграции между различными инструментами.

Базовая конфигурация MCP

Меню конфигурации Codex

Вы можете управлять службами MCP или добавлять их через меню настроек:

Подключение к MCP:

Расположение файла конфигурации

MCP-сервер по адресу~/.codex/config.tomlизmcp_serversЧастичная конфигурация.

stdio MCP-сервер

Настроить stdio MCP-сервер

[mcp_servers.filesystem]
# Команда запуска сервера
command = "npx"

# Аргументы, передаваемые команде
args = ["-y", "@modelcontextprotocol/server-filesystem", "./docs"]

# Рабочий каталог сервера
cwd = "/path/to/workdir"

# Передать переменные окружения
env = {
    NODE_ENV = "production"
}

Сервер типа HTTP

Настройка HTTP MCP-сервера

[mcp_servers.docs]
# Конечная точка HTTP-сервера MCP
url = "https://docs.example.com/mcp"

# Включаемые HTTP-заголовки
http_headers = {
    Authorization = "Bearer token"
}

Конфигурация инструментов MCP

Ограничение доступных инструментов

Вы можете ограничить инструменты, предоставляемые MCP-сервером:

Белый/чёрный список инструментов

[mcp_servers.filesystem]
# Список разрешённых инструментов
enabled_tools = ["read_file", "write_file", "list_directory"]

# Список запрещённых инструментов (применяется после enabled_tools)
disabled_tools = ["delete_file"]
Использование ограничений инструментов может повысить безопасность за счёт предоставления только необходимых инструментов.

Настройка таймаута

Настройте таймаут

[mcp_servers.slow_server]
command = "python"
args = ["-m", "slow_server"]

# Таймаут запуска (секунды, по умолчанию 10)
startup_timeout_sec = 30

# Тайм-аут вызова для каждого инструмента (в секундах, по умолчанию 60)
tool_timeout_sec = 120

Конфигурация аутентификации MCP

Конфигурация OAuth

Настройка OAuth

[mcp_servers.protected]
url = "https://api.example.com/mcp"

# Запрошенные области действия OAuth
scopes = ["read", "write"]

# Параметр resource OAuth
oauth_resource = "codex-integration"

# Переменная среды для Bearer-токена
bearer_token_env_var = "EXAMPLE_API_TOKEN"

Конфигурация HTTP-заголовков

Настройка HTTP-заголовков

[mcp_servers.api]
url = "https://api.example.com/mcp"

# Заполнить HTTP-заголовки из переменных окружения
env_http_headers = {
    X_API_KEY = "MY_API_KEY"
}

# Статические HTTP-заголовки
http_headers = {
    X_Custom_Header = "value"
}

Конфигурация обратного вызова OAuth

Настроить обратный вызов OAuth

# Фиксированный порт обратного вызова
mcp_oauth_callback_port = 8080

# Пользовательский URL обратного вызова
mcp_oauth_callback_url = "https://my-devbox.example.com/callback"

# Расположение хранилища учетных данных
mcp_oauth_credentials_store = "keyring" # file | keyring | auto

Разрешения инструментов MCP

Вы можете настроить разрешения отдельно для инструментов каждого сервера MCP:

Настройка разрешений инструментов

[mcp_servers.docs.tools.search]
# Режим разрешений: ask | approve | deny
approval_mode = "approve"
Режим разрешенийОписание
askСпрашивать перед каждым выполнением (по умолчанию)
approveАвтоматическое одобрение
denyАвтоматический запрет
Будьте осторожны при настройке разрешений инструментов и предоставляйте автоматическое одобрение только тем инструментам, которым доверяете.

Общие MCP-серверы

Сервер файловой системы

MCP файловой системы

[mcp_servers.filesystem]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "./docs"]

Сервер GitHub

MCP GitHub

[mcp_servers.github]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-github"]
env = {
    GITHUB_PERSONAL_ACCESS_TOKEN = "your-token-here"
}

Сервер PostgreSQL

MCP PostgreSQL

[mcp_servers.postgres]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-postgres", "postgresql://user:pass@localhost/db"]

Общие MCP-серверы

Вы можете установить больше MCP-серверов через npm:

# 搜索 MCP 服务器
npm search @modelcontextprotocol/server

# 安装 MCP 服务器
npm install -g @modelcontextprotocol/server-filesystem
OpenAI официально предоставляет множество MCP-серверов. См.репозиторий GitHubПолучите полный список.

Устранение неполадок

Не удалось запустить сервер

Проверьте следующее:

  • Правильны ли команда и параметры?
  • Установлены ли необходимые зависимости?
  • Правильно ли заданы переменные окружения?

Тайм-аут вызова инструмента

Увеличьте тайм-аут:

tool_timeout_sec = 120

Проблема с аутентификацией

Убедитесь, что порт обратного вызова OAuth не занят, а хранилище учётных данных настроено правильно.

Использованиеcodex --verboseВы можете просмотреть подробную отладочную информацию MCP.

ЧАВО

Вопрос: сервер MCP не запускается?

Проверьте, правильно ли установлена команда; попробуйте запустить команду вручную, чтобы убедиться, что ошибок нет.

Вопрос: где настраиваются разрешения для инструментов?

В файле конфигурацииmcp_servers.<id>.tools.<tool>Частичная конфигурация.

Вопрос: как отключить конкретный сервер MCP?

Добавьте в конфигурациюenabled = falseИли просто удалите конфигурацию.

Вопрос: Сколько MCP-серверов поддерживается?

Строгого ограничения нет, но рекомендуется настраивать только те серверы, которые вам действительно нужны.

Другие расширения