Confronto sul campo

Playwright MCP vs Chrome DevTools MCP: la prova sul campo

Abbiamo fatto passare entrambi i server MCP per browser sullo stesso form locale, cinque volte ciascuno: campi di testo, un upload di file, due iframe, un passaggio che solo una persona può completare e un riavvio. Ecco cosa è andato a buon fine, cosa è fallito e cosa abbiamo solo letto nella documentazione.

In breve

  • Quando avviavano un proprio Chrome, entrambi i server hanno compilato tutti i campi, caricato il file e lavorato dentro un iframe same-origin e uno cross-site, in cinque run su cinque ciascuno.
  • Collegato a un Chrome già aperto da una persona, Playwright MCP ha compilato subito il form aperto. Chrome DevTools MCP 1.10.1 poteva cliccare, ma riusciva a compilare i campi solo dopo aver ricaricato la pagina una volta, in ogni run.
  • Il Chrome avviato da Chrome DevTools MCP riportava navigator.webdriver = true; quello di Playwright MCP riportava false. In un Chrome avviato da te, entrambi riportavano false.
  • Scegli Playwright MCP per run puliti e ripetibili e una lista di strumenti più corta. Scegli Chrome DevTools MCP quando fai debug della tua web app (trace, Lighthouse, rete) o vuoi condividere con l’agente il Chrome che usi ogni giorno.

Risultati del test

Ogni cella conta i run riusciti su 5. Data del test 30 settembre 2026, Google Chrome 154.0.8037.92, @playwright/mcp 0.0.83, chrome-devtools-mcp 1.10.1, agent-browser 0.38.1 come terza colonna.

Modalità 1: lo strumento avvia un proprio Chrome

Ogni strumento ha avviato un Chrome headless con una nuova cartella di profilo, ha aperto la pagina di test, ha effettuato l’accesso alla pagina, ha compilato il form e ha premuto invio senza spuntare il passaggio umano.

TemaPlaywright MCPChrome DevTools MCPagent-browser
Entrambi gli iframe raggiungibili dallo snapshot5 su 55 su 55 su 5
Testo, email, select, radio, checkbox e textarea compilati5 su 55 su 55 su 5
Upload da una cartella non consentita rifiutato (predefinito)5 su 55 su 5non misurato
File caricato arrivato intatto (nome, dimensione, SHA-256)5 su 55 su 55 su 5
Digitato e cliccato nell’iframe same-origin5 su 55 su 55 su 5
Digitato e cliccato nell’iframe cross-site5 su 55 su 55 su 5
Il form ha accettato tutto tranne il passaggio umano5 su 55 su 52 su 5
Accesso conservato dopo un riavvio con lo stesso profilo0 su 55 su 55 su 5
Accesso conservato dopo browser_close e un riavvio5 su 5non misuratonon misurato
La modalità isolata è partita senza il vecchio accesso5 su 55 su 55 su 5
navigator.webdriver riportava false5 su 50 su 50 su 5

Modalità 2: lo strumento si collega a un Chrome che una persona sta già usando

Abbiamo avviato Chrome noi stessi con un profilo dedicato e una porta di debug locale. Un sostituto della persona ha aperto la pagina, ha effettuato l’accesso e ha digitato il nome del prodotto. Poi lo strumento si è collegato, ha compilato il resto e si è fermato; il sostituto ha spuntato il passaggio umano e ha inviato; lo strumento ha letto il risultato.

TemaPlaywright MCPChrome DevTools MCPagent-browser
Trovata la scheda della persona con il suo accesso5 su 55 su 55 su 5
Campi compilati sulla pagina così com’era5 su 50 su 55 su 5
Campi compilati dopo un ricaricamentonon misurato5 su 5non misurato
File caricato arrivato intatto (nome, dimensione, SHA-256)5 su 55 su 55 su 5
Digitato e cliccato nell’iframe same-origin5 su 55 su 55 su 5
Digitato e cliccato nell’iframe cross-site5 su 55 su 50 su 5
La persona ha spuntato il passaggio umano e inviato5 su 55 su 50 su 5
L’agente ha letto il risultato inviato5 su 55 su 50 su 5
Il log di rete dell’agente mostrava il POST del form5 su 55 su 50 su 5
Ricollegato alla stessa scheda dopo un riavvio del server5 su 55 su 5non misurato
navigator.webdriver riportava false5 su 55 su 55 su 5

Screenshot dei run

Screenshot a pagina intera del form di test locale dopo la compilazione da parte di Playwright MCP
Playwright MCP, modalità 1: tutti i campi, il file ed entrambi gli iframe sono compilati; l’invio è bloccato solo dal passaggio umano non spuntato. Catturato dallo strumento stesso.
Screenshot a pagina intera del form di test locale dopo la compilazione da parte di Chrome DevTools MCP
Chrome DevTools MCP, modalità 1: tutti i campi, il file ed entrambi gli iframe sono compilati; l’invio è bloccato solo dal passaggio umano non spuntato. Catturato dallo strumento stesso.

Come abbiamo testato

  • Data 30 settembre 2026 su macOS con Google Chrome 154.0.8037.92. Versioni fissate: @playwright/mcp 0.0.83, chrome-devtools-mcp 1.10.1, agent-browser 0.38.1.
  • Il form è una pagina di test locale su 127.0.0.1; l’iframe cross-site arriva da localhost su una seconda porta. Nessun sito reale, account, profilo personale del browser o pagamento è stato coinvolto.
  • Un piccolo script parlava con ogni server via MCP, esattamente come il client di un agente: snapshot, compilazione del form, upload, clic, lettura di console e rete. Prendeva i riferimenti agli elementi dallo snapshot di ciascuno strumento. Nessun modello linguistico prendeva decisioni, quindi ogni run seguiva gli stessi passaggi.
  • Ogni scenario è stato eseguito 5 volte per strumento. Le tabelle contano i run riusciti.
  • La persona della modalità 2 è uno script che invia semplici comandi DevTools Protocol alla scheda. È un sostituto, non una persona reale. Per escluderlo come causa del mancato riempimento di Chrome DevTools MCP, abbiamo anche avviato Chrome direttamente con l’URL di test e nessuno script: stesso risultato.
  • agent-browser è stato pilotato dalla sua riga di comando, l’interfaccia principale, non dalla sua modalità MCP.

Cosa non copre questo test

  • CAPTCHA reali, controlli anti-bot e accessi reali su siti di terzi.
  • Firefox e WebKit, le estensioni browser di entrambi i progetti e la finestra di connessione automatica di Chrome.
  • Trace di performance, Lighthouse e strumenti di memoria.
  • Un modello linguistico che sceglie i passaggi: quanti token e turni servono a un agente reale dipende dal modello.
  • Windows e Linux.

Cosa è emerso

Entrambi rifiutano upload da cartelle non consentite

Il nostro primo upload proveniva da una cartella di progetto, ed entrambi i server l’hanno rifiutato per impostazione predefinita. Playwright MCP consente le root del workspace, o la sua directory di lavoro se il client non ne indica; Chrome DevTools MCP consente la cartella temporanea di sistema se il client non indica root. Da una cartella consentita il file è arrivato intatto in ogni run: stesso nome, stessa dimensione e stesso SHA-256. Ogni progetto documenta un flag per ampliare il limite.

Chrome DevTools MCP non riusciva a compilare una pagina aperta prima del collegamento

In modalità 2, Chrome DevTools MCP ha trovato la scheda e il relativo accesso, ha cliccato pulsanti e digitato dentro entrambi gli iframe, ma la compilazione dei campi della pagina stessa è fallita con “did not become interactive” in ogni run. Dopo un ricaricamento da parte dell’agente, la compilazione ha funzionato e il resto del test è riuscito. Un ricaricamento perde tutto ciò che una pagina non ha salvato; la nostra pagina di test ripristina la bozza, molti form reali no. Playwright MCP non ha avuto bisogno di ricaricare.

navigator.webdriver dipende da chi avvia Chrome

Quando era Chrome DevTools MCP ad avviare Chrome, la pagina vedeva navigator.webdriver = true, che la sua stessa documentazione indica come motivo per cui alcuni accessi falliscono. Il Chrome avviato da Playwright MCP riportava false. Quando gli strumenti si collegavano a un Chrome avviato da noi, tutti riportavano false. Non abbiamo testato alcun controllo anti-bot reale.

Playwright MCP conserva un profilo solo dopo browser_close

Con una cartella di profilo persistente, l’accesso spariva dopo un riavvio del server se il client si disconnetteva semplicemente. Quando l’agente chiamava prima browser_close, veniva conservato in ogni run. Chrome DevTools MCP ha conservato il suo profilo in ogni run senza chiamate di chiusura.

agent-browser non vedeva l’iframe cross-site da collegato

Come terza colonna, agent-browser ha compilato tutti i campi, il file ed entrambi gli iframe quando avviava un proprio browser; il suo clic di invio risultava eseguito ogni volta, ma la pagina lo ha registrato solo in alcuni run. Collegato a un Chrome già in esecuzione, il suo snapshot mostrava l’iframe same-origin ma non quello cross-site, anche dopo un’attesa e un secondo snapshot, quindi il form non poteva essere completato.

TemaTesto ufficialeCosa significa in pratica
Accesso ai file di Playwright MCPBy default access to file system is restricted to workspace root directories (or cwd if no roots are configured) only, and navigation to file:// URLs is blocked.Carica i file dal workspace del tuo progetto, oppure avvia il server con --allow-unrestricted-file-access.
Accesso ai file di Chrome DevTools MCPBy default, file-writing tools are restricted to the OS temp directory when no roots are configured.Senza root MCP dal tuo client, tieni i file da caricare nella cartella temporanea o aggiungi --filesystem-root.
Accesso ai siti con Chrome DevTools MCPSome accounts may prevent sign-in when the browser is controlled via WebDriver (the default launch mechanism for the Chrome DevTools MCP server).Per i siti in cui accedi con un account, collegati a un Chrome avviato da te invece di lasciarne avviare uno al server.
Profilo di Playwright MCPA persistent profile can only be used by one browser instance at a timeDue agenti nello stesso workspace hanno bisogno di --isolated o di cartelle di profilo separate.
Playwright CLICLI invocations are more token-efficient: they avoid loading large tool schemas and verbose accessibility trees into the model contextÈ Microsoft stessa a indirizzare gli agenti di coding con contesto ridotto verso la sua CLI con skill, invece che verso il server MCP.
Statistiche di Chrome DevTools MCPGoogle collects usage statistics (such as tool invocation success rates, latency, and environment information) to improve the reliability and performance of Chrome DevTools MCP.Attive per impostazione predefinita; aggiungi --no-usage-statistics se non le vuoi.

Documentato, non testato

Queste differenze provengono dal README e dalla documentazione di ciascun progetto alla data di lettura. Non le abbiamo misurate.

TemaPlaywright MCPChrome DevTools MCP
BrowserChrome, Firefox, WebKit ed Edge tramite --browser.Ufficialmente Google Chrome e Chrome for Testing; altri browser Chromium potrebbero funzionare.
Il browser che stai usando--cdp-endpoint verso una porta di debug, oppure la Playwright Extension con selettore di schede e approvazione.--browser-url verso una porta di debug, oppure --autoConnect in Chrome 144+ con una finestra di autorizzazione per ogni sessione.
ProfiloProfilo persistente per impostazione predefinita; --isolated lo tiene in memoria; --storage-state carica cookie e storage.Profilo persistente per impostazione predefinita; --isolated ne usa uno temporaneo che viene poi eliminato.
DebugConsole e richieste di rete; strumenti di tracing, video e storage su richiesta.Trace di performance con insight, audit Lighthouse, snapshot di memoria, console con stack trace mappati sui sorgenti, richieste di rete.
Dati inviati al fornitoreIl README non descrive statistiche di utilizzo.Statistiche di utilizzo attive per impostazione predefinita (--no-usage-statistics); gli strumenti di performance possono cercare gli URL dei trace nella CrUX API (--no-performance-crux).
Senza MCPMicrosoft consiglia Playwright CLI con skill per gli agenti di coding.È inclusa una CLI da usare senza MCP.
LicenzaApache-2.0Apache-2.0

Quanto pesa la lista degli strumenti

Prima di aprire qualsiasi pagina, Playwright MCP annunciava 25 strumenti con 20,3 KB di descrizioni, Chrome DevTools MCP 30 strumenti con 25,7 KB (impostazioni predefinite, misurato tramite tools/list). Un agente porta quel testo nel proprio contesto per l’intera sessione. Chrome DevTools MCP offre --slim con tre strumenti; Playwright MCP aggiunge gruppi di strumenti con --caps.

Quale scegliere

Playwright MCP è adatto se

  • l’agente deve avviare un browser pulito per ogni attività, headless o in CI,
  • ti servono anche Firefox o WebKit,
  • l’agente riprende un form che una persona ha già iniziato, perché ha compilato pagine aperte senza ricaricarle,
  • vuoi una lista di strumenti più corta nel contesto dell’agente.

Chrome DevTools MCP è adatto se

  • fai debug della tua web app e vuoi trace, Lighthouse, rete e console in un unico posto,
  • vuoi condividere con l’agente il Chrome di tutti i giorni tramite la connessione automatica,
  • lavori solo in Chrome e apprezzi strumenti mantenuti dal team Chrome DevTools,
  • puoi lasciare che l’agente ricarichi una pagina che non ha aperto prima di compilarla.

E agent-browser?

agent-browser è uno strumento browser a riga di comando per agenti, con una modalità MCP opzionale. Ha compilato lo stesso form quando avviava un proprio browser, ma non ha visto l’iframe cross-site quando era collegato a un Chrome già in esecuzione. Vale la pena provarlo se il tuo agente lavora meglio con brevi comandi di shell che con strumenti MCP.

Claude in Chrome vs Chrome DevTools MCP: il confronto →

Ripeti il test

La pagina di test è un unico file Node.js senza dipendenze. È in ascolto solo sul tuo computer.

  1. Scarica il file ed eseguilo con Node.js 18 o successivo.
  2. Apri una volta http://127.0.0.1:4461/ per vedere la pagina; l’iframe cross-site viene caricato da http://localhost:4462/.
  3. Aggiungi al tuo agente una delle voci MCP qui sotto e chiedigli di compilare il form, caricare un piccolo PNG qualsiasi, compilare entrambi gli iframe e fermarsi prima del passaggio umano.
  4. Spunta tu il passaggio umano, invia e chiedi all’agente cosa mostra ora la pagina.

Scarica browser-mcp-test.mjs

Il file serve il form, l’iframe e un endpoint echo locale. Nulla viene inviato altrove.

Lo strumento avvia un proprio Chrome

Playwright MCP

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "-y",
        "@playwright/mcp@0.0.83"
      ]
    }
  }
}

Chrome DevTools MCP

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": [
        "-y",
        "chrome-devtools-mcp@1.10.1",
        "--no-usage-statistics"
      ]
    }
  }
}

Lo strumento si collega a un Chrome avviato da te sulla porta 9222

Playwright MCP

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "-y",
        "@playwright/mcp@0.0.83",
        "--cdp-endpoint",
        "http://127.0.0.1:9222"
      ]
    }
  }
}

Chrome DevTools MCP

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": [
        "-y",
        "chrome-devtools-mcp@1.10.1",
        "--browser-url=http://127.0.0.1:9222",
        "--no-usage-statistics"
      ]
    }
  }
}

Cosa usa LaunchRepo

  • I playbook di LaunchRepo sono scritti e testati per Chrome DevTools MCP collegato al tuo Chrome, perché l’invio alle directory richiede i tuoi accessi reali e tu devi vedere ogni passaggio.
  • Con un Chrome avviato da te, navigator.webdriver è rimasto false per tutti gli strumenti di questo test, e il passaggio di mano ha funzionato: completi un passaggio nella stessa scheda, l’agente legge il risultato.
  • Se il form di una directory è già aperto quando l’agente si collega, lascia che ricarichi la pagina prima di digitare qualcosa, così non perdi nulla di ciò che hai inserito.

Fonti

Pagine e repository ufficiali, letti il 30 settembre 2026. Le citazioni sono riportate parola per parola; i risultati dei test sono nostre misurazioni.

FAQ

Per gli agenti di coding è meglio Playwright MCP o Chrome DevTools MCP?
Nessuno dei due vince ovunque. Nel nostro test entrambi hanno superato tutti i controlli sul form quando avviavano un proprio Chrome. Playwright MCP ha anche compilato una pagina che una persona aveva già aperto e annunciava una lista di strumenti più corta; Chrome DevTools MCP offre trace di performance, Lighthouse e strumenti di rete e console più approfonditi per il debug della tua app.
Chrome DevTools MCP può usare il Chrome in cui ho effettuato l’accesso?
Sì. Con --autoConnect si collega al tuo Chrome 144 o successivo già aperto, dopo che hai consentito il debug remoto e confermato una finestra di dialogo. In alternativa avvia Chrome con una porta di debug remoto e una cartella di profilo separata e punta --browser-url su di essa; da Chrome 136 la porta viene ignorata per il profilo predefinito.
Entrambi gestiscono gli iframe?
Sì: nei nostri run entrambi hanno raggiunto un iframe same-origin e uno cross-site in entrambe le modalità, cinque volte su cinque, e sono riusciti a digitare e cliccare al loro interno.
Perché l’upload del file non è riuscito?
Per impostazione predefinita entrambi i server leggono file solo da cartelle consentite: Playwright MCP dalle root del workspace o dalla sua directory di lavoro, Chrome DevTools MCP dalla cartella temporanea di sistema se il tuo client non indica root. Sposta lì il file oppure usa il flag documentato per ampliare il limite.
Questi strumenti possono risolvere i CAPTCHA?
Nessuno dei due documenta una funzione per i CAPTCHA, e non abbiamo testato CAPTCHA reali. Pianifica invece un passaggio di mano: l’agente si ferma, tu risolvi il passaggio nella stessa finestra visibile, l’agente continua. Nel nostro test in modalità collegata quel passaggio di mano ha funzionato con entrambi i server.
navigator.webdriver tradisce l’agente?
Nel nostro test era true solo quando era Chrome DevTools MCP ad avviare Chrome. Il Chrome di Playwright MCP e qualsiasi Chrome avviato da noi riportavano false. Se un sito reagisce o meno dipende da quel sito; non abbiamo testato controlli anti-bot reali.

Lascia al tuo agente il lancio sulle directory

LaunchRepo dà al tuo agente di coding playbook testati per piattaforme di lancio e directory. Lavora nel tuo Chrome tramite Chrome DevTools MCP, e decidi tu se invia da solo o ti chiede prima.

Vedi i prezzi