Przejdź do głównej zawartości

Konfiguracja MCP

Poprosiłeś Codex o zaimplementowanie funkcji używając najnowszego API React Server Components, a on wygenerował kod używając wzorców sprzed dwóch lat. Poprosiłeś go o sprawdzenie błędów w Sentry, a on powiedział że nie ma dostępu do zewnętrznych serwisów. Problem nie leży w modelu — chodzi o to, że Codex domyślnie widzi tylko twój lokalny system plików. Serwery MCP (Model Context Protocol) rozszerzają to co Codex może osiągnąć: aktualną dokumentację, kontrolę przeglądarki, trackery issues, narzędzia designu i więcej.

  • Przynajmniej jeden serwer MCP skonfigurowany i działający na wszystkich powierzchniach
  • Zrozumienie typów serwerów STDIO vs Streamable HTTP
  • Konfiguracja config.toml dla popularnych serwerów MCP (Context7, Playwright, GitHub, Figma, Sentry)
  • Uwierzytelnianie OAuth skonfigurowane dla serwerów które go wymagają
  • Pewność w zarządzaniu, włączaniu i wyłączaniu serwerów

Bez MCP, Codex może czytać pliki, uruchamiać polecenia i wyszukiwać w sieci (używając wbudowanego wyszukiwania). Z MCP, Codex otrzymuje narzędzia które może wywoływać: pobieranie aktualnej dokumentacji bibliotek, robienie zrzutów ekranu przeglądarki, czytanie projektów Figma, odpytywanie logów Sentry, zarządzanie pull requestami na GitHub i interakcja z dowolnym serwisem udostępniającym interfejs MCP.

Cała konfiguracja MCP jest współdzielona między Aplikacją, CLI i rozszerzeniem IDE. Skonfiguruj raz w config.toml, używaj wszędzie.

Serwery STDIO działają jako lokalny proces. Codex uruchamia je poleceniem i komunikuje się przez standardowe wejście/wyjście.

Przykłady: Context7, Playwright, Sentry, większość open-source serwerów MCP.

Konfiguracja wymaga command i opcjonalnych args, env i cwd:

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

Najszybszym sposobem dodania serwera jest polecenie CLI. Zacznijmy od Context7, który daje Codex dostęp do aktualnej dokumentacji popularnych bibliotek.

Okno terminala
codex mcp add context7 -- npx -y @upstash/context7-mcp

To wszystko. Codex zapisuje definicję serwera w ~/.codex/config.toml, a wszystkie powierzchnie natychmiast ją podchwytują.

Oto bloki config.toml dla najbardziej użytecznych serwerów MCP, gotowe do wklejenia.

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

Użyj Codex do otwarcia przeglądarki, przejścia do twojej aplikacji, robienia zrzutów ekranu i weryfikacji zmian wizualnych.

[mcp_servers.github]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-github"]
[mcp_servers.github.env]
GITHUB_TOKEN = "ghp_your_token_here"
[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.sentry]
command = "npx"
args = ["-y", "@sentry/mcp-server"]
[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp@latest"]

Dla precyzyjnej kontroli edytuj ~/.codex/config.toml bezpośrednio (lub projektowy .codex/config.toml dla serwerów zespołowych).

Każdy serwer to tabela [mcp_servers.<name>]. Oto w pełni opisany przykład:

[mcp_servers.chrome_devtools]
url = "http://localhost:3000/mcp"
enabled = true
enabled_tools = ["open", "screenshot", "evaluate"]
disabled_tools = ["screenshot"] # Stosowane po enabled_tools
startup_timeout_sec = 20 # Domyślnie: 10
tool_timeout_sec = 45 # Domyślnie: 60

Gdy serwer MCP udostępnia wiele narzędzi, możesz ograniczyć które Codex może używać:

  • enabled_tools: Biała lista. Tylko te narzędzia są dostępne.
  • disabled_tools: Czarna lista. Stosowana po białej liście. Przydatna do usuwania konkretnych narzędzi.

Dla serwerów STDIO wymagających tajemnic:

[mcp_servers.my_server]
command = "my-mcp-server"
env_vars = ["DATABASE_URL", "API_SECRET"]

env_vars mówi Codex aby przekazywał konkretne zmienne środowiskowe z twojej powłoki do procesu serwera. To jest bezpieczniejsze niż kodowanie tajemnic na twardo w env.

Niektóre serwery MCP oparte o HTTP używają OAuth. Codex obsługuje to natywnie:

Okno terminala
codex mcp login figma

Otwiera to przeglądarkę dla procesu OAuth. Po autoryzacji Codex przechowuje token i używa go w przyszłych zadaniach.

Jeśli twój dostawca OAuth wymaga statycznego URI callback, ustaw:

mcp_oauth_callback_port = 8080

Domyślnie Codex binduje się na efemerycznym porcie.

Okno terminala
# Wylistuj wszystkie skonfigurowane serwery
codex mcp list
# Usuń serwer
codex mcp remove context7
# Wyłącz bez usuwania (edytuj config.toml)
# Ustaw enabled = false w tabeli serwera

W aplikacji Codex otwórz Ustawienia > MCP aby zobaczyć wszystkie serwery, włączać/wyłączać je i dodawać nowe z sugerowanych.

W TUI CLI użyj /mcp aby zobaczyć status serwerów.

Serwer nie uruchamia się: Sprawdź czy polecenie istnieje. Dla serwerów npx upewnij się że Node.js 18+ jest zainstalowany i npx jest w twoim PATH. Zwiększ startup_timeout_sec jeśli serwer potrzebuje chwili do inicjalizacji.

Błędy “Tool not found”: Serwer mógł się uruchomić, ale jego narzędzia nie zostały zarejestrowane. Uruchom codex mcp list aby sprawdzić. Jeśli brakuje narzędzi, serwer może potrzebować zmiennych środowiskowych lub konfiguracji która nie jest ustawiona.

Proces OAuth nie kończy się: Sprawdź czy twoja przeglądarka może osiągnąć dostawcę OAuth. Jeśli jesteś za korporacyjnym proxy, URL callback może być zablokowany. Spróbuj ustawić mcp_oauth_callback_port na port który twoje proxy przepuszcza.

Serwery działają w CLI, ale nie w Aplikacji: Wszystkie powierzchnie współdzielą tę samą konfigurację, ale Aplikacja może potrzebować restartu aby podchwycić zmiany. Zamknij i otwórz ponownie Aplikację po dodaniu serwerów.

Serwer MCP pada w trakcie zadania: Codex powinien zgłosić awarię i kontynuować pracę bez serwera. Zadanie może nie powieść się jeśli krytycznie zależy od narzędzi serwera. Zrestartuj Codex aby ponownie się połączyć.

Błędy timeoutu: Zwiększ tool_timeout_sec dla wolnych operacji (np. zrzuty ekranu przeglądarki, duże odpowiedzi API).