Puoi configurare Chrome DevTools per gli agenti in modo da personalizzare il modo in cui interagisce con il browser, quali strumenti sono attivati e come gestisce i dati.
Configura il server passando i flag della riga di comando nell'array args del file di configurazione del client Model Context Protocol (MCP). In genere si tratta
del file config.json.
Ad esempio, per eseguire Chrome in modalità headless e utilizzare il canale Canary, utilizza la seguente configurazione:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": [
"-y",
"chrome-devtools-mcp@latest",
"--headless",
"--channel=canary"
]
}
}
}
Scenari di configurazione comuni
I seguenti scenari descrivono i modi più comuni per configurare Chrome DevTools per gli agenti.
Esegui in modalità headless
Per eseguire attività in background senza una finestra del browser visibile, esegui Chrome in modalità headless (senza UI). Aggiungi il flag --headless agli argomenti del server.
Connettiti a una sessione del browser esistente
Per impostazione predefinita, DevTools per agenti avvia una nuova istanza di Chrome. Tuttavia, puoi connettere l'agente a una sessione del browser esistente. Ciò è utile se l'agente deve esaminare un problema in una sessione che hai già avviato (ad esempio, se hai già eseguito l'accesso).
Puoi connetterti a una sessione esistente in due modi:
Connessione automatica (Chrome 144+)
Se utilizzi il flag --autoConnect, il server MCP si connette automaticamente a un'istanza di Chrome attiva.
- Nel browser Chrome in esecuzione, vai a
chrome://inspect/#remote-debugginge attiva Debug remoto. - Aggiungi
--autoConnectalla configurazione MCP:json "args": ["chrome-devtools-mcp@latest", "--autoConnect"] - Quando l'agente tenta di connettersi, Chrome mostra una finestra di dialogo che richiede l'autorizzazione. Fai clic su Consenti.
Connessione manuale
Se non puoi utilizzare --autoConnect (ad esempio, in un ambiente sandbox),
puoi avviare manualmente Chrome con una porta di debug e connetterti utilizzando
--browser-url.
- Avvia Chrome dal terminale con il debug remoto attivato e una directory dei dati utente personalizzata.
- 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:
- Configura l'agente per la connessione a questa porta:
json "args": ["chrome-devtools-mcp@latest", "--browser-url=http://127.0.0.1:9222"]
Consenti l'accesso ai file al di fuori della directory temporanea
Gli strumenti che leggono o scrivono file (ad esempio il salvataggio di screenshot, tracce o
il caricamento di estensioni) possono accedere solo ai percorsi all'interno delle radici dello spazio di lavoro configurato. Il server utilizza le root fornite dal client MCP tramite la funzionalità delle root MCP, oltre a tutte le directory passate con --filesystemRoot (alias --workspace). Se il client non fornisce root e non imposti --filesystemRoot, l'accesso ai file è limitato alla directory temporanea del sistema operativo.
Le richieste per altri percorsi non vanno a buon fine e restituiscono un errore Access denied: ... is not within any of
the configured workspace roots.
Per consentire l'accesso a una directory di progetto, aggiungi --filesystemRoot agli argomenti del server. Puoi ripetere il flag per consentire più directory:
"args": ["chrome-devtools-mcp@latest", "--filesystemRoot=/path/to/project"]
Riferimento alle opzioni di configurazione
Le sezioni seguenti elencano i flag di configurazione disponibili. Per le opzioni e gli aggiornamenti più recenti, consulta il repository GitHub di Chrome DevTools MCP.
Opzioni di connessione
Utilizza queste opzioni per configurare la modalità di connessione del server a Chrome.
| Flag | Tipo | Predefinito | Descrizione |
|---|---|---|---|
--autoConnect o --auto-connect |
booleano | false |
Si connette automaticamente a un'istanza di Chrome (144+) in esecuzione in locale. Richiede l'attivazione del debug remoto tramite chrome://inspect/#remote-debugging. |
--browserUrl o --browser-url-u |
stringa | false |
Connettiti a un'istanza di Chrome in esecuzione e abilitata al debug (ad esempio http://127.0.0.1:9222). |
--wsEndpoint o --ws-endpoint-w |
stringa | false |
Endpoint WebSocket per connettersi a un'istanza di Chrome in esecuzione (ad esempio, ws://127.0.0.1:9222/devtools/browser/<id>). Alternativa a --browserUrl. |
--wsHeaders o --ws-headers |
stringa | false |
Intestazioni personalizzate per la connessione WebSocket in formato JSON (ad esempio, '{"Authorization":"Bearer token"}'). Funziona solo con --wsEndpoint. |
Opzioni di avvio del browser
Queste opzioni si applicano quando il server MCP avvia Chrome.
| Flag | Tipo | Predefinito | Descrizione |
|---|---|---|---|
--headless |
booleano | false |
Esegue Chrome in modalità headless (senza UI). |
--channel |
stringa | stable |
Specifica il canale Chrome da utilizzare. Scelte: canary, dev, beta e stable. |
--executablePath o --executable-path-e |
stringa | false |
Percorso di un eseguibile Chrome personalizzato. |
--userDataDir o --user-data-dir |
stringa | Vedi descrizione | Percorso della directory dei dati utente. Il valore predefinito è $HOME/.cache/chrome-devtools-mcp/chrome-profile$CHANNEL_SUFFIX_IF_NON_STABLE. |
--isolated |
booleano | false |
Crea una directory di dati utente temporanea che viene liberata automaticamente alla chiusura del browser. |
--viewport |
stringa | false |
Dimensioni iniziali dell'area visibile (ad esempio 1280x720). In modalità headless, le dimensioni massime sono 3840x2160. |
--proxyServer o --proxy-server |
stringa | false |
Configurazione del server proxy passata a Chrome. |
--chromeArg o --chrome-arg |
matrice | false |
Argomenti aggiuntivi da passare a Chrome. |
--ignoreDefaultChromeArg o --ignore-default-chrome-arg |
matrice | false |
Disattiva esplicitamente gli argomenti predefiniti per Chrome. |
Opzioni di sicurezza e privacy
Utilizza queste opzioni per gestire le impostazioni di sicurezza e la privacy dei dati.
| Flag | Tipo | Predefinito | Descrizione |
|---|---|---|---|
--acceptInsecureCerts o --accept-insecure-certs |
booleano | false |
Ignora gli errori relativi ai certificati autofirmati e scaduti. Da usare con cautela. |
--blockedUrlPattern o --blocked-url-pattern |
matrice | false |
Limita l'accesso alla rete bloccando i pattern URL specificati (utilizza URLPattern). Blocca le navigazioni e le risorse secondarie. |
--allowedUrlPattern o --allowed-url-pattern |
matrice | false |
Limita l'accesso alla rete consentendo solo pattern URL specificati. Richiede Chrome 149 o versioni successive. |
--redactNetworkHeaders o --redact-network-headers |
booleano | false |
Oscura le intestazioni di rete sensibili prima di restituirle al client. |
--usageStatistics o --usage-statistics |
booleano | true |
Consente la raccolta di statistiche sull'utilizzo per migliorare lo strumento. Può anche essere disattivato utilizzando le variabili di ambiente CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS o CI. |
--performanceCrux o --performance-crux |
booleano | true |
Invia gli URL dalle tracce delle prestazioni all'API Google CrUX per recuperare i dati sull'esperienza utente reale. |
--javascriptEvaluation o --javascript-evaluation |
booleano | true |
Imposta il valore su false per disattivare l'esecuzione di JavaScript. Se disabilitati, gli strumenti di valutazione degli script vengono disattivati, il parametro initScript di navigate_page viene disattivato e la navigazione agli URL javascript:, data: o vbscript: non è consentita. |
--filesystemRoot o --filesystem-root--workspace |
matrice | Directory temporanea del sistema operativo | Una directory che gli strumenti di accesso ai file possono utilizzare, oltre alle directory principali fornite dal client MCP. Può essere specificato più di una volta. Vedi Consentire l'accesso ai file al di fuori della directory temporanea. |
--allowUnrestrictedPaths o --allow-unrestricted-paths |
booleano | false |
Deprecato: utilizza --workspace=/. Disattiva la limitazione del percorso che si applica quando il client MCP non fornisce radici. |
Categorie di funzionalità
Puoi attivare o disattivare gruppi di strumenti utilizzando questi flag.
| Flag | Tipo | Predefinito | Descrizione |
|---|---|---|---|
--categoryInput o --category-input |
booleano | true |
Attiva gli strumenti relativi all'input. |
--categoryNavigation o --category-navigation |
booleano | true |
Attiva gli strumenti correlati alla navigazione. |
--categoryEmulation o --category-emulation |
booleano | true |
Attiva gli strumenti correlati all'emulazione. |
--categoryNetwork o --category-network |
booleano | true |
Attiva gli strumenti relativi alla rete. |
--categoryPerformance o --category-performance |
booleano | true |
Attiva gli strumenti relativi al rendimento. |
--categoryDebugging o --category-debugging |
booleano | true |
Attiva gli strumenti correlati al debug. |
--categoryMemory o --category-memory |
booleano | true |
Attiva gli strumenti relativi alla memoria. |
--categoryExtensions o --category-extensions |
booleano | false |
Attiva gli strumenti correlati alle estensioni. Supportato solo con connessione Pipe. |
--categoryPwa o --category-pwa |
booleano | false |
Attiva gli strumenti per l'automazione delle app web progressive (installazione, avvio, disinstallazione e stato del sistema operativo). Supportato solo con connessione Pipe. |
--categoryExperimentalThirdParty o --category-experimental-third-party |
booleano | false |
Attiva gli strumenti per sviluppatori di terze parti esposti dalla pagina ispezionata. |
--categoryExperimentalWebmcp o --category-experimental-webmcp |
booleano | false |
Consente il debug degli strumenti WebMCP. Richiede Chrome 149 o versioni successive con le funzionalità WebMCP attivate. |
--memoryDebugging o --memory-debugging |
booleano | false |
Attiva gli strumenti di debug della memoria. |
Opzioni degli screenshot
Utilizza queste opzioni per personalizzare il modo in cui l'agente acquisisce gli screenshot.
| Flag | Tipo | Predefinito | Descrizione |
|---|---|---|---|
--screenshotFormat o --screenshot-format |
stringa | false |
Esegue l'override del formato di output predefinito (png). Scelte: jpeg, png e webp. I formati jpeg e webp sono più piccoli, il che aiuta a ridurre le dimensioni del contesto nelle conversazioni con l'AI. |
--screenshotQuality o --screenshot-quality |
numero | false |
Esegue l'override della qualità di compressione (0-100) per jpeg e webp. |
--screenshotMaxWidth o --screenshot-max-width |
numero | false |
Larghezza massima in pixel. Gli screenshot più grandi vengono ridimensionati. |
--screenshotMaxHeight o --screenshot-max-height |
numero | false |
Altezza massima in pixel. Gli screenshot più grandi vengono ridimensionati. |
Opzioni sperimentali
Utilizza queste opzioni per attivare le funzionalità sperimentali in fase di sviluppo.
| Flag | Tipo | Predefinito | Descrizione |
|---|---|---|---|
--experimentalDevtools o --experimental-devtools |
booleano | false |
Abilita l'automazione sui target di DevTools. |
--experimentalVision o --experimental-vision |
booleano | false |
Attiva gli strumenti basati sulle coordinate (ad esempio click_at). Di solito richiede un modello di utilizzo del computer in grado di produrre coordinate precise osservando gli screenshot. |
--experimentalStructuredContent o --experimental-structured-content |
booleano | false |
Restituisce contenuti formattati in modo strutturato. |
--experimentalIncludeAllPages o --experimental-include-all-pages |
booleano | false |
Include tutti i tipi di pagine (ad esempio, visualizzazioni web e pagine in background). |
--experimentalScreencast o --experimental-screencast |
booleano | false |
Espone gli strumenti di screencast (richiede ffmpeg in PATH). |
--experimentalFfmpegPath o --experimental-ffmpeg-path |
stringa | false |
Percorso dell'eseguibile ffmpeg. |
--experimentalScreencastFps o --experimental-screencast-fps |
numero | false |
Fotogrammi al secondo per la registrazione di Registra schermo. Valori più bassi possono ridurre la pressione sulla memoria nelle pagine che producono frame più velocemente di quanto ffmpeg possa codificarli. |
Altre opzioni
Utilizza queste opzioni per configurare il logging, il routing delle pagine e le mappe di origine o per attivare un insieme semplificato di strumenti.
| Flag | Tipo | Predefinito | Descrizione |
|---|---|---|---|
--slim |
booleano | false |
Espone un insieme ridotto di tre strumenti (navigazione, esecuzione di script e screenshot). Utile per le attività di base del browser. |
--pageIdRouting o --page-id-routing |
booleano | true |
Richiede pageId su strumenti e percorsi con ambito pagina e instrada le richieste in base all'ID pagina, il che è utile per le sessioni simultanee degli agenti. Usa --no-page-id-routing per disattivarlo. |
--sourceMaps o --source-maps |
booleano | true |
Attiva le mappe di origine in DevTools. Usa --no-source-maps per disattivarlo. |
--logFile o --log-file |
stringa | false |
Percorso di un file in cui scrivere i log di debug. Imposta la variabile di ambiente NODE_DEBUG su * per attivare i log dettagliati. |
--config |
stringa | false |
Percorso di un file di configurazione JSON. |
Variabili di ambiente
Puoi anche utilizzare le seguenti variabili di ambiente per configurare il server:
CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS: se impostato, disattiva la raccolta delle statistiche sull'utilizzo (equivalente a--no-usage-statistics).CHROME_DEVTOOLS_MCP_NO_UPDATE_CHECKS: se impostato, disattiva i controlli periodici degli aggiornamenti.CI: se impostato, disattiva la raccolta delle statistiche sull'utilizzo.NODE_DEBUG: imposta su*per attivare il logging di debug dettagliato (funziona in combinazione con--logFile).