Możesz skonfigurować Narzędzia deweloperskie w Chrome dla agentów, aby dostosować sposób ich interakcji z przeglądarką, włączone narzędzia i sposób obsługi danych.
Skonfiguruj serwer, przekazując flagi wiersza poleceń w tablicy args pliku konfiguracji klienta Model Context Protocol (MCP). Zazwyczaj jest to plik config.json.
Aby na przykład uruchomić Chrome w trybie bez interfejsu i używać kanału Canary, użyj tej konfiguracji:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": [
"-y",
"chrome-devtools-mcp@latest",
"--headless",
"--channel=canary"
]
}
}
}
Typowe scenariusze konfiguracji
Poniższe scenariusze opisują typowe sposoby konfigurowania Narzędzi deweloperskich w Chrome dla agentów.
Uruchamianie w trybie bez interfejsu graficznego
Aby wykonywać zadania w tle bez widocznego okna przeglądarki, uruchom Chrome w trybie bez interfejsu graficznego. Dodaj flagę --headless do argumentów serwera.
Łączenie z istniejącą sesją przeglądarki
Domyślnie narzędzia deweloperskie w Chrome dla agentów uruchamiają nową instancję Chrome. Możesz jednak połączyć agenta z istniejącą sesją przeglądarki. Jest to przydatne, jeśli agent musi zbadać problem w sesji, która została już rozpoczęta (na przykład jeśli jesteś już zalogowany(-a)).
Możesz połączyć się z istniejącą sesją na 2 sposoby:
Automatyczne połączenie (Chrome 144 lub nowszy)
Jeśli użyjesz flagi --autoConnect, serwer MCP automatycznie połączy się z aktywną instancją Chrome.
- W uruchomionej przeglądarce Chrome otwórz
chrome://inspect/#remote-debuggingi włącz Zdalne debugowanie. - Dodaj
--autoConnectdo konfiguracji MCP:json "args": ["chrome-devtools-mcp@latest", "--autoConnect"] - Gdy agent próbuje się połączyć, Chrome wyświetla okno z prośbą o zezwolenie. Kliknij Zezwól.
Połączenie ręczne
Jeśli nie możesz użyć --autoConnect (np. w środowisku piaskownicy), możesz ręcznie uruchomić Chrome z portem debugowania i połączyć się za pomocą --browser-url.
- Uruchom Chrome z terminala z włączonym zdalnym debugowaniem i niestandardowym katalogiem danych użytkownika.
- macOS:
shell /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-profile-stable - Windows:
shell start chrome --remote-debugging-port=9222 --user-data-dir=%TEMP%\chrome-profile-stable - Linux
shell google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-profile-stable
- macOS:
- Skonfiguruj agenta, aby łączył się z tym portem:
json "args": ["chrome-devtools-mcp@latest", "--browser-url=http://127.0.0.1:9222"]
Zezwalaj na dostęp do plików poza katalogiem tymczasowym
Narzędzia, które odczytują lub zapisują pliki (np. zapisywanie zrzutów ekranu, śladów lub wczytywanie rozszerzeń), mogą uzyskiwać dostęp tylko do ścieżek w skonfigurowanych katalogach głównych obszaru roboczego. Serwer używa katalogów głównych udostępnianych przez klienta MCP za pomocą funkcji MCP
roots oraz wszystkich katalogów przekazywanych za pomocą dyrektywy --filesystemRoot (alias --workspace). Jeśli klient nie udostępnia katalogów głównych i nie ustawisz dyrektywy --filesystemRoot, dostęp do plików jest ograniczony do katalogu tymczasowego systemu operacyjnego.
Żądania dotyczące innych ścieżek kończą się niepowodzeniem z błędem Access denied: ... is not within any of
the configured workspace roots.
Aby zezwolić na dostęp do katalogu projektu, dodaj --filesystemRoot do argumentów serwera. Możesz powtórzyć flagę, aby zezwolić na wiele katalogów:
"args": ["chrome-devtools-mcp@latest", "--filesystemRoot=/path/to/project"]
Dokumentacja opcji konfiguracji
W sekcjach poniżej znajdziesz listę dostępnych flag konfiguracji. Najnowsze opcje i aktualizacje znajdziesz w repozytorium GitHub MCP Narzędzi deweloperskich w Chrome.
Opcje połączenia
Użyj tych opcji, aby skonfigurować sposób łączenia się serwera z Chrome.
| Flaga | Typ | Domyślny | Opis |
|---|---|---|---|
--autoConnect lub --auto-connect |
wartość logiczna | false |
Automatycznie łączy się z lokalnie uruchomioną instancją Chrome (144+). Wymaga włączenia debugowania zdalnego za pomocą chrome://inspect/#remote-debugging. |
--browserUrl lub --browser-url-u |
tekst | false |
Połącz się z uruchomioną instancją Chrome z możliwością debugowania (np. http://127.0.0.1:9222). |
--wsEndpoint lub --ws-endpoint-w |
tekst | false |
Punkt końcowy WebSocket do połączenia z uruchomioną instancją Chrome (np. ws://127.0.0.1:9222/devtools/browser/<id>). Alternatywa dla --browserUrl. |
--wsHeaders lub --ws-headers |
tekst | false |
Niestandardowe nagłówki połączenia WebSocket w formacie JSON (na przykład '{"Authorization":"Bearer token"}'). Działa tylko z --wsEndpoint. |
Opcje uruchamiania przeglądarki
Te opcje mają zastosowanie, gdy serwer MCP uruchamia Chrome.
| Flaga | Typ | Domyślny | Opis |
|---|---|---|---|
--headless |
wartość logiczna | false |
Uruchamia Chrome w trybie bez interfejsu graficznego. |
--channel |
tekst | stable |
Określa kanał Chrome, którego należy używać. Opcje: canary, dev, beta i stable. |
--executablePath lub --executable-path-e |
tekst | false |
Ścieżka do niestandardowego pliku wykonywalnego Chrome. |
--userDataDir lub --user-data-dir |
tekst | Zobacz opis | Ścieżka do katalogu danych użytkownika. Wartość domyślna to $HOME/.cache/chrome-devtools-mcp/chrome-profile$CHANNEL_SUFFIX_IF_NON_STABLE. |
--isolated |
wartość logiczna | false |
Tworzy tymczasowy katalog danych użytkownika, który jest automatycznie czyszczony po zamknięciu przeglądarki. |
--viewport |
tekst | false |
Początkowy rozmiar widocznego obszaru (np. 1280x720). W trybie bez interfejsu graficznego maksymalny rozmiar to 3840x2160. |
--proxyServer lub --proxy-server |
tekst | false |
Konfiguracja serwera proxy przekazywana do Chrome. |
--chromeArg lub --chrome-arg |
tablica | false |
Dodatkowe argumenty do przekazania do Chrome. |
--ignoreDefaultChromeArg lub --ignore-default-chrome-arg |
tablica | false |
Wyłącz domyślne argumenty Chrome. |
Opcje zabezpieczeń i prywatności
Użyj tych opcji, aby zarządzać ustawieniami bezpieczeństwa i prywatności danych.
| Flaga | Typ | Domyślny | Opis |
|---|---|---|---|
--acceptInsecureCerts lub --accept-insecure-certs |
wartość logiczna | false |
Ignoruje błędy związane z certyfikatami podpisanymi samodzielnie i wygasłymi. Używaj z rozwagą. |
--blockedUrlPattern lub --blocked-url-pattern |
tablica | false |
Ogranicza dostęp do sieci przez blokowanie określonych wzorców adresów URL (używa URLPattern). Blokuje nawigacje i zasoby podrzędne. |
--allowedUrlPattern lub --allowed-url-pattern |
tablica | false |
Ogranicza dostęp do sieci, zezwalając tylko na określone wzorce adresów URL. Wymaga Chrome w wersji 149 lub nowszej. |
--redactNetworkHeaders lub --redact-network-headers |
wartość logiczna | false |
Usuwa poufne nagłówki sieciowe przed zwróceniem ich klientowi. |
--usageStatistics lub --usage-statistics |
wartość logiczna | true |
Umożliwia zbieranie statystyk użytkowania w celu ulepszania narzędzia. Można je też wyłączyć za pomocą zmiennych środowiskowych CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS lub CI. |
--performanceCrux lub --performance-crux |
wartość logiczna | true |
Wysyła adresy URL ze śladów wydajności do interfejsu Google CrUX API, aby pobrać dane o wrażeniach prawdziwych użytkowników. |
--javascriptEvaluation lub --javascript-evaluation |
wartość logiczna | true |
Ustaw wartość false, aby wyłączyć wykonywanie kodu JavaScript. Gdy ta opcja jest wyłączona, narzędzia do oceny skryptów są wyłączone, parametr initScript funkcji navigate_page jest wyłączony, a nawigowanie do adresów URL javascript:, data: i vbscript: jest niedozwolone. |
--filesystemRoot lub --filesystem-root--workspace |
tablica | Katalog tymczasowy systemu operacyjnego | Katalog, którego mogą używać narzędzia uzyskujące dostęp do plików, oprócz katalogów głównych udostępnianych przez klienta MCP. Można określić więcej niż raz. Zobacz Zezwalanie na dostęp do plików poza katalogiem tymczasowym. |
--allowUnrestrictedPaths lub --allow-unrestricted-paths |
wartość logiczna | false |
Wycofane: użyj zamiast tego --workspace=/. Wyłącza ograniczenie ścieżki, które obowiązuje, gdy klient MCP nie udostępnia certyfikatów głównych. |
Kategorie funkcji
Za pomocą tych flag możesz włączać i wyłączać grupy narzędzi.
| Flaga | Typ | Domyślny | Opis |
|---|---|---|---|
--categoryInput lub --category-input |
wartość logiczna | true |
Włącza narzędzia związane z wprowadzaniem tekstu. |
--categoryNavigation lub --category-navigation |
wartość logiczna | true |
Włącza narzędzia związane z nawigacją. |
--categoryEmulation lub --category-emulation |
wartość logiczna | true |
Włącza narzędzia związane z emulacją. |
--categoryNetwork lub --category-network |
wartość logiczna | true |
Włącza narzędzia związane z siecią. |
--categoryPerformance lub --category-performance |
wartość logiczna | true |
Włącza narzędzia związane z wydajnością. |
--categoryDebugging lub --category-debugging |
wartość logiczna | true |
Umożliwia korzystanie z narzędzi związanych z debugowaniem. |
--categoryMemory lub --category-memory |
wartość logiczna | true |
Umożliwia korzystanie z narzędzi związanych z pamięcią. |
--categoryExtensions lub --category-extensions |
wartość logiczna | false |
Umożliwia korzystanie z narzędzi związanych z rozszerzeniami. Obsługiwane tylko w przypadku połączenia potokowego. |
--categoryPwa lub --category-pwa |
wartość logiczna | false |
Włącza narzędzia do automatyzacji progresywnych aplikacji internetowych (instalowanie, uruchamianie, odinstalowywanie i stan systemu operacyjnego). Obsługiwane tylko w przypadku połączenia za pomocą potoku. |
--categoryExperimentalThirdParty lub --category-experimental-third-party |
wartość logiczna | false |
Umożliwia korzystanie z narzędzi dla programistów innych firm udostępnianych przez sprawdzaną stronę. |
--categoryExperimentalWebmcp lub --category-experimental-webmcp |
wartość logiczna | false |
Umożliwia debugowanie narzędzi WebMCP. Wymaga Chrome w wersji 149 lub nowszej z włączonymi funkcjami WebMCP. |
--memoryDebugging lub --memory-debugging |
wartość logiczna | false |
Włącza narzędzia do debugowania pamięci. |
Opcje zrzutu ekranu
Użyj tych opcji, aby dostosować sposób, w jaki agent robi zrzuty ekranu.
| Flaga | Typ | Domyślny | Opis |
|---|---|---|---|
--screenshotFormat lub --screenshot-format |
tekst | false |
Zastępuje domyślny format wyjściowy (png). Opcje: jpeg, png i webp. Formaty jpeg i webp są mniejsze, co pomaga zmniejszyć rozmiar kontekstu w rozmowach z AI. |
--screenshotQuality lub --screenshot-quality |
liczba | false |
Zastępuje jakość kompresji (0–100) w przypadku formatów jpeg i webp. |
--screenshotMaxWidth lub --screenshot-max-width |
liczba | false |
Maksymalna szerokość w pikselach. Większe zrzuty ekranu są pomniejszane. |
--screenshotMaxHeight lub --screenshot-max-height |
liczba | false |
Maksymalna wysokość w pikselach. Większe zrzuty ekranu są pomniejszane. |
Opcje eksperymentalne
Użyj tych opcji, aby włączyć eksperymentalne funkcje, które są w trakcie opracowywania.
| Flaga | Typ | Domyślny | Opis |
|---|---|---|---|
--experimentalDevtools lub --experimental-devtools |
wartość logiczna | false |
Umożliwia automatyzację elementów docelowych Narzędzi deweloperskich. |
--experimentalVision lub --experimental-vision |
wartość logiczna | false |
Umożliwia korzystanie z narzędzi opartych na współrzędnych (np. click_at). Zwykle wymaga modelu korzystania z komputera, który może generować dokładne współrzędne na podstawie zrzutów ekranu. |
--experimentalStructuredContent lub --experimental-structured-content |
wartość logiczna | false |
Generuje uporządkowane, sformatowane treści. |
--experimentalIncludeAllPages lub --experimental-include-all-pages |
wartość logiczna | false |
Obejmuje wszystkie rodzaje stron (np. komponenty WebView i strony działające w tle). |
--experimentalScreencast lub --experimental-screencast |
wartość logiczna | false |
Udostępnia narzędzia do screencastów (wymaga ffmpeg w PATH). |
--experimentalFfmpegPath lub --experimental-ffmpeg-path |
tekst | false |
Ścieżka do pliku wykonywalnego ffmpeg. |
--experimentalScreencastFps lub --experimental-screencast-fps |
liczba | false |
Liczba klatek na sekundę podczas nagrywania screencasta. Niższe wartości mogą zmniejszyć obciążenie pamięci na stronach, które generują klatki szybciej, niż ffmpeg może je zakodować. |
Inne opcje
Użyj tych opcji, aby skonfigurować logowanie, routing stron i mapy źródeł lub włączyć uproszczony zestaw narzędzi.
| Flaga | Typ | Domyślny | Opis |
|---|---|---|---|
--slim |
wartość logiczna | false |
Udostępnia niewielki zestaw 3 narzędzi (nawigacja, wykonywanie skryptów i zrzuty ekranu). Przydatne w przypadku podstawowych zadań w przeglądarce. |
--pageIdRouting lub --page-id-routing |
wartość logiczna | true |
Wymaga pageId w narzędziach o zakresie strony i kieruje żądania według identyfikatora strony, co jest przydatne w przypadku równoczesnych sesji agenta. Użyj --no-page-id-routing, aby wyłączyć. |
--sourceMaps lub --source-maps |
wartość logiczna | true |
Włącza mapy źródeł w Narzędziach deweloperskich. Aby wyłączyć, użyj --no-source-maps. |
--logFile lub --log-file |
tekst | false |
Ścieżka do pliku, w którym mają być zapisywane dzienniki debugowania. Aby włączyć szczegółowe logi, ustaw zmienną środowiskową NODE_DEBUG na *. |
--config |
tekst | false |
Ścieżka do pliku konfiguracji JSON. |
Zmienne środowiskowe
Do skonfigurowania serwera możesz też użyć tych zmiennych środowiskowych:
CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS: jeśli jest ustawiona, wyłącza zbieranie statystyk użytkowania (odpowiednik--no-usage-statistics).CHROME_DEVTOOLS_MCP_NO_UPDATE_CHECKS: jeśli ta zasada jest skonfigurowana, wyłącza okresowe sprawdzanie dostępności aktualizacji.CI: jeśli ta opcja jest ustawiona, wyłącza zbieranie statystyk użytkowania.NODE_DEBUG: ustaw wartość*, aby włączyć szczegółowe logowanie debugowania (działa w połączeniu z--logFile).