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.
| Tema | Playwright MCP | Chrome DevTools MCP | agent-browser |
|---|---|---|---|
| Entrambi gli iframe raggiungibili dallo snapshot | 5 su 5 | 5 su 5 | 5 su 5 |
| Testo, email, select, radio, checkbox e textarea compilati | 5 su 5 | 5 su 5 | 5 su 5 |
| Upload da una cartella non consentita rifiutato (predefinito) | 5 su 5 | 5 su 5 | non misurato |
| File caricato arrivato intatto (nome, dimensione, SHA-256) | 5 su 5 | 5 su 5 | 5 su 5 |
| Digitato e cliccato nell’iframe same-origin | 5 su 5 | 5 su 5 | 5 su 5 |
| Digitato e cliccato nell’iframe cross-site | 5 su 5 | 5 su 5 | 5 su 5 |
| Il form ha accettato tutto tranne il passaggio umano | 5 su 5 | 5 su 5 | 2 su 5 |
| Accesso conservato dopo un riavvio con lo stesso profilo | 0 su 5 | 5 su 5 | 5 su 5 |
| Accesso conservato dopo browser_close e un riavvio | 5 su 5 | non misurato | non misurato |
| La modalità isolata è partita senza il vecchio accesso | 5 su 5 | 5 su 5 | 5 su 5 |
| navigator.webdriver riportava false | 5 su 5 | 0 su 5 | 0 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.
| Tema | Playwright MCP | Chrome DevTools MCP | agent-browser |
|---|---|---|---|
| Trovata la scheda della persona con il suo accesso | 5 su 5 | 5 su 5 | 5 su 5 |
| Campi compilati sulla pagina così com’era | 5 su 5 | 0 su 5 | 5 su 5 |
| Campi compilati dopo un ricaricamento | non misurato | 5 su 5 | non misurato |
| File caricato arrivato intatto (nome, dimensione, SHA-256) | 5 su 5 | 5 su 5 | 5 su 5 |
| Digitato e cliccato nell’iframe same-origin | 5 su 5 | 5 su 5 | 5 su 5 |
| Digitato e cliccato nell’iframe cross-site | 5 su 5 | 5 su 5 | 0 su 5 |
| La persona ha spuntato il passaggio umano e inviato | 5 su 5 | 5 su 5 | 0 su 5 |
| L’agente ha letto il risultato inviato | 5 su 5 | 5 su 5 | 0 su 5 |
| Il log di rete dell’agente mostrava il POST del form | 5 su 5 | 5 su 5 | 0 su 5 |
| Ricollegato alla stessa scheda dopo un riavvio del server | 5 su 5 | 5 su 5 | non misurato |
| navigator.webdriver riportava false | 5 su 5 | 5 su 5 | 5 su 5 |
Screenshot dei run


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.
| Tema | Testo ufficiale | Cosa significa in pratica |
|---|---|---|
| Accesso ai file di Playwright MCP | By 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 MCP | By 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 MCP | Some 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 MCP | A persistent profile can only be used by one browser instance at a time | Due agenti nello stesso workspace hanno bisogno di --isolated o di cartelle di profilo separate. |
| Playwright CLI | CLI 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 MCP | Google 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.
| Tema | Playwright MCP | Chrome DevTools MCP |
|---|---|---|
| Browser | Chrome, 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. |
| Profilo | Profilo 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. |
| Debug | Console 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 fornitore | Il 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 MCP | Microsoft consiglia Playwright CLI con skill per gli agenti di coding. | È inclusa una CLI da usare senza MCP. |
| Licenza | Apache-2.0 | Apache-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.
Ripeti il test
La pagina di test è un unico file Node.js senza dipendenze. È in ascolto solo sul tuo computer.
- Scarica il file ed eseguilo con Node.js 18 o successivo.
- Apri una volta http://127.0.0.1:4461/ per vedere la pagina; l’iframe cross-site viene caricato da http://localhost:4462/.
- 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.
- Spunta tu il passaggio umano, invia e chiedi all’agente cosa mostra ora la pagina.
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