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.

Użyj oficjalnego, aktywnie utrzymywanego serwera GitHub github/github-mcp-server. Najprostsza ścieżka to serwer zdalny z OAuth, który nie przechowuje żadnego tokena w pliku konfiguracyjnym:

[mcp_servers.github]
url = "https://api.githubcopilot.com/mcp/"
bearer_token_env_var = "GITHUB_PAT"

Wyeksportuj precyzyjny osobisty token dostępu w nazwanej zmiennej (export GITHUB_PAT=github_pat_...) przed uruchomieniem Codex. Najlepiej uruchamiaj serwer zdalny z OAuth przez codex mcp login github, gdy jest to dostępne, aby żaden token w ogóle nie trafiał do twojej powłoki.

Jeśli potrzebujesz uruchomić serwer lokalnie, użyj oficjalnego binarium Go w Dockerze — zwróć uwagę, że zmienna środowiskowa to GITHUB_PERSONAL_ACCESS_TOKEN, a nie GITHUB_TOKEN:

[mcp_servers.github]
command = "docker"
args = ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server"]
env_vars = ["GITHUB_PERSONAL_ACCESS_TOKEN"]
[mcp_servers.figma]
url = "https://mcp.figma.com/mcp"
bearer_token_env_var = "FIGMA_OAUTH_TOKEN"
http_headers = { "X-Figma-Region" = "us-east-1" }

Udokumentowana przez Sentry konfiguracja dla Codex to hostowany serwer zdalny, który obsługuje uwierzytelnianie przez przepływ OAuth w przeglądarce — żadnego tokena do zarządzania:

Okno terminala
codex mcp add sentry -- npx -y mcp-remote@latest https://mcp.sentry.dev/mcp

Wykonaj zapytanie do Sentry po raz pierwszy, a Codex otworzy kartę przeglądarki w celu autoryzacji. Jeśli musisz zamiast tego użyć lokalnego pakietu stdio (@sentry/mcp-server), wymaga on tokena dostępu i hosta przekazanych jako argumenty — pobieraj je ze zmiennych środowiskowych, nigdy bezpośrednio w kodzie.

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).