Przejdź do głównej zawartości

Konfiguracja MCP

Poprosiles Codex o zaimplementowanie funkcji uzywajac najnowszego API React Server Components, a on wygenerowql kod uzywajac wzorcow sprzed dwoch lat. Poprosiles go o sprawdzenie bledow w Sentry, a on powiedzial ze nie ma dostepu do zewnetrznych serwisow. Problem nie lezy w modelu — chodzi o to, ze Codex domyslnie widzi tylko twoj lokalny system plikow. Serwery MCP (Model Context Protocol) rozszerzaja to co Codex moze osiagnac: aktualna dokumentacje, kontrole przegladarki, trackery issues, narzedzia designu i wiecej.

  • Przynajmniej jeden serwer MCP skonfigurowany i dzialajacy na wszystkich powierzchniach
  • Zrozumienie typow serwerow STDIO vs Streamable HTTP
  • Konfiguracja config.toml dla popularnych serwerow MCP (Context7, Playwright, GitHub, Figma, Sentry)
  • Uwierzytelnianie OAuth skonfigurowane dla serwerow ktore go wymagaja
  • Pewnosc w zarzadzaniu, wlaczaniu i wylaczaniu serwerow

Bez MCP, Codex moze czytac pliki, uruchamiac polecenia i wyszukiwac w sieci (uzywajac wbudowanego wyszukiwania). Z MCP, Codex otrzymuje narzedzia ktore moze wywoywac: pobieranie aktualnej dokumentacji bibliotek, robienie zrzutow ekranu przegladarki, czytanie projektow Figma, odpytywanie logow Sentry, zarzadzanie pull requestami na GitHub i interakcja z dowolnym serwisem udostepniajacym interfejs MCP.

Cala konfiguracja MCP jest wspoldzielona miedzy Aplikacja, CLI i rozszerzeniem IDE. Skonfiguruj raz w config.toml, uzywaj wszedzie.

Serwery STDIO dzialaja jako lokalny proces. Codex uruchamia je poleceniem i komunikuje sie przez standardowe wejscie/wyjscie.

Przyklady: Context7, Playwright, Sentry, wiekszosc open-source serwerow 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, ktory daje Codex dostep do aktualnej dokumentacji popularnych bibliotek.

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

To wszystko. Codex zapisuje definicje serwera w ~/.codex/config.toml, a wszystkie powierzchnie natychmiast ja podchwytuja.

Oto bloki config.toml dla najbardziej uzytecznych serwerow MCP, gotowe do wklejenia.

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

Uzyj Codex do otwarcia przegladarki, przejscia do twojej aplikacji, robienia zrzutow 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 bezposrednio (lub projektowy .codex/config.toml dla serwerow zespolowych).

Kazdy serwer to tabela [mcp_servers.<name>]. Oto w pelni opisany przyklad:

[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 # Domyslnie: 10
tool_timeout_sec = 45 # Domyslnie: 60

Gdy serwer MCP udostepnia wiele narzedzi, mozesz ograniczyc ktore Codex moze uzywac:

  • enabled_tools: Biala lista. Tylko te narzedzia sa dostepne.
  • disabled_tools: Czarna lista. Stosowana po bialej liscie. Przydatna do usuwania konkretnych narzedzi.

Dla serwerow STDIO wymagajacych tajemnic:

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

env_vars mowi Codex aby przekazywal konkretne zmienne srodowiskowe z twojej powloki do procesu serwera. To jest bezpieczniejsze niz kodowanie tajemnic na twardo w env.

Niektore serwery MCP oparte o HTTP uzywaja OAuth. Codex obsluguje to natywnie:

Okno terminala
codex mcp login figma

Otwiera to przegladarke dla procesu OAuth. Po autoryzacji Codex przechowuje token i uzywa go w przyszlych zadaniach.

Jesli twoj dostawca OAuth wymaga statycznego URI callback, ustaw:

mcp_oauth_callback_port = 8080

Domyslnie Codex binduje sie na efemerycznym porcie.

Okno terminala
# Wylistuj wszystkie skonfigurowane serwery
codex mcp list
# Usun serwer
codex mcp remove context7
# Wylacz bez usuwania (edytuj config.toml)
# Ustaw enabled = false w tabeli serwera

W aplikacji Codex otworz Ustawienia > MCP aby zobaczyc wszystkie serwery, wlaczac/wylaczac je i dodawac nowe z sugerowanych.

W TUI CLI uzyj /mcp aby zobaczyc status serwerow.

Serwer nie uruchamia sie: Sprawdz czy polecenie istnieje. Dla serwerow npx upewnij sie ze Node.js 18+ jest zainstalowany i npx jest w twoim PATH. Zwieksz startup_timeout_sec jesli serwer potrzebuje chwili do inicjalizacji.

Bledy “Tool not found”: Serwer mogl sie uruchomic, ale jego narzedzia nie zostaly zarejestrowane. Uruchom codex mcp list aby sprawdzic. Jesli brakuje narzedzi, serwer moze potrzebowac zmiennych srodowiskowych lub konfiguracji ktora nie jest ustawiona.

Proces OAuth nie konczy sie: Sprawdz czy twoja przegladarka moze osiagnac dostawce OAuth. Jesli jestes za korporacyjnym proxy, URL callback moze byc zablokowany. Sprobuj ustawic mcp_oauth_callback_port na port ktory twoje proxy przepuszcza.

Serwery dzialaja w CLI, ale nie w Aplikacji: Wszystkie powierzchnie wspoldziela te sama konfiguracje, ale Aplikacja moze potrzebowac restartu aby podchwycic zmiany. Zamknij i otworz ponownie Aplikacje po dodaniu serwerow.

Serwer MCP pada w trakcie zadania: Codex powinien zglosic awarie i kontynuowac prace bez serwera. Zadanie moze nie powiesc sie jesli krytycznie zalezy od narzedzi serwera. Zrestartuj Codex aby ponownie sie polaczyc.

Bledy timeoutu: Zwieksz tool_timeout_sec dla wolnych operacji (np. zrzuty ekranu przegladarki, duze odpowiedzi API).