En bref
- Lorsqu’ils lançaient leur propre Chrome, les deux serveurs ont rempli tous les champs, envoyé le fichier et travaillé dans une iframe de même origine comme dans une iframe cross-site, cinq fois sur cinq chacun.
- Connecté à un Chrome déjà ouvert par une personne, Playwright MCP a rempli le formulaire ouvert immédiatement. Chrome DevTools MCP 1.10.1 pouvait y cliquer, mais ne remplissait les champs qu’après avoir rechargé la page une fois, à chaque essai.
- Le Chrome lancé par Chrome DevTools MCP indiquait navigator.webdriver = true ; celui de Playwright MCP indiquait false. Dans un Chrome que vous lancez vous-même, les deux indiquaient false.
- Choisissez Playwright MCP pour des exécutions propres et reproductibles et une liste d’outils plus courte. Choisissez Chrome DevTools MCP pour déboguer votre propre application web (traces, Lighthouse, réseau) ou pour partager votre Chrome de tous les jours avec l’agent.
Résultats du test
Chaque case compte les essais réussis sur 5. Test du 30 septembre 2026, Google Chrome 154.0.8037.92, @playwright/mcp 0.0.83, chrome-devtools-mcp 1.10.1, agent-browser 0.38.1 en troisième colonne.
Mode 1 : l’outil lance son propre Chrome
Chaque outil a lancé un Chrome headless avec un nouveau dossier de profil, ouvert la page de test, s’y est connecté, a rempli le formulaire et appuyé sur Envoyer sans cocher l’étape humaine.
| Sujet | Playwright MCP | Chrome DevTools MCP | agent-browser |
|---|---|---|---|
| Les deux iframes accessibles depuis l’instantané | 5 sur 5 | 5 sur 5 | 5 sur 5 |
| Texte, e-mail, liste, bouton radio, case à cocher et zone de texte remplis | 5 sur 5 | 5 sur 5 | 5 sur 5 |
| Upload hors du dossier autorisé refusé (par défaut) | 5 sur 5 | 5 sur 5 | non mesuré |
| Fichier envoyé arrivé intact (nom, taille, SHA-256) | 5 sur 5 | 5 sur 5 | 5 sur 5 |
| Saisie et clic dans l’iframe de même origine | 5 sur 5 | 5 sur 5 | 5 sur 5 |
| Saisie et clic dans l’iframe cross-site | 5 sur 5 | 5 sur 5 | 5 sur 5 |
| Formulaire complet sauf l’étape humaine | 5 sur 5 | 5 sur 5 | 2 sur 5 |
| Session conservée après un redémarrage avec le même profil | 0 sur 5 | 5 sur 5 | 5 sur 5 |
| Session conservée après browser_close et un redémarrage | 5 sur 5 | non mesuré | non mesuré |
| Le mode isolé a démarré sans l’ancienne session | 5 sur 5 | 5 sur 5 | 5 sur 5 |
| navigator.webdriver indiquait false | 5 sur 5 | 0 sur 5 | 0 sur 5 |
Mode 2 : l’outil se connecte au Chrome qu’une personne utilise déjà
Nous avons lancé Chrome nous-mêmes avec son propre profil et un port de débogage local. Un substitut de la personne a ouvert la page, s’est connecté et a saisi le nom du produit. L’outil s’est ensuite connecté, a rempli le reste et s’est arrêté ; le substitut a coché l’étape humaine et envoyé le formulaire ; l’outil a lu le résultat.
| Sujet | Playwright MCP | Chrome DevTools MCP | agent-browser |
|---|---|---|---|
| Onglet de la personne et sa session trouvés | 5 sur 5 | 5 sur 5 | 5 sur 5 |
| Champs remplis sur la page telle quelle | 5 sur 5 | 0 sur 5 | 5 sur 5 |
| Champs remplis après un rechargement | non mesuré | 5 sur 5 | non mesuré |
| Fichier envoyé arrivé intact (nom, taille, SHA-256) | 5 sur 5 | 5 sur 5 | 5 sur 5 |
| Saisie et clic dans l’iframe de même origine | 5 sur 5 | 5 sur 5 | 5 sur 5 |
| Saisie et clic dans l’iframe cross-site | 5 sur 5 | 5 sur 5 | 0 sur 5 |
| La personne a coché l’étape humaine et envoyé | 5 sur 5 | 5 sur 5 | 0 sur 5 |
| L’agent a lu le résultat envoyé | 5 sur 5 | 5 sur 5 | 0 sur 5 |
| Le journal réseau de l’agent montrait le POST du formulaire | 5 sur 5 | 5 sur 5 | 0 sur 5 |
| Reconnecté au même onglet après un redémarrage du serveur | 5 sur 5 | 5 sur 5 | non mesuré |
| navigator.webdriver indiquait false | 5 sur 5 | 5 sur 5 | 5 sur 5 |
Captures d’écran des essais


Notre méthode
- Test du 30 septembre 2026, sous macOS avec Google Chrome 154.0.8037.92. Versions figées : @playwright/mcp 0.0.83, chrome-devtools-mcp 1.10.1, agent-browser 0.38.1.
- Le formulaire est une page de test locale sur 127.0.0.1 ; l’iframe cross-site provient de localhost sur un second port. Aucun vrai site web, compte, profil de navigateur personnel ni paiement n’a été utilisé.
- Un petit script dialoguait avec chaque serveur via MCP, exactement comme le client d’un agent : instantané, remplissage du formulaire, upload, clic, lecture de la console et du réseau. Il prenait les références d’éléments dans l’instantané de chaque outil. Aucun modèle de langage ne prenait de décision, donc chaque essai suivait les mêmes étapes.
- Chaque scénario a tourné 5 fois par outil. Les tableaux comptent les essais réussis.
- La personne du mode 2 est un script qui envoie de simples commandes DevTools Protocol à l’onglet. C’est un substitut, pas une vraie personne. Pour l’écarter comme cause de l’échec de remplissage de Chrome DevTools MCP, nous avons aussi lancé Chrome directement avec l’URL de test, sans aucun script : même résultat.
- agent-browser a été piloté par sa ligne de commande, son interface principale, et non par son mode MCP.
Ce que ce test ne couvre pas
- Les vrais CAPTCHA, contrôles anti-bot et vraies connexions sur des sites tiers.
- Firefox et WebKit, les extensions de navigateur des deux projets et la boîte de dialogue de connexion automatique de Chrome.
- Les traces de performance, Lighthouse et les outils mémoire.
- Un modèle de langage qui choisit les étapes : le nombre de tokens et de tours dont un vrai agent a besoin dépend du modèle.
- Windows et Linux.
Ce qui ressort
Les deux refusent les uploads hors d’un dossier autorisé
Notre premier upload venait d’un dossier de projet, et les deux serveurs l’ont refusé par défaut. Playwright MCP autorise les racines de l’espace de travail, ou son répertoire de travail si le client n’en indique aucune ; Chrome DevTools MCP autorise le dossier temporaire du système si le client n’indique aucune racine. Depuis un dossier autorisé, le fichier est arrivé intact à chaque essai : même nom, même taille et même SHA-256. Chaque projet documente un flag pour élargir cette limite.
Chrome DevTools MCP n’a pas pu remplir une page ouverte avant sa connexion
En mode 2, Chrome DevTools MCP a trouvé l’onglet et sa session, cliqué sur des boutons et saisi du texte dans les deux iframes, mais le remplissage des champs de la page elle-même a échoué avec « did not become interactive » à chaque essai. Après un rechargement par l’agent, le remplissage a fonctionné et le reste du test a réussi. Un rechargement efface tout ce qu’une page n’a pas enregistré ; notre page de test restaure son brouillon, beaucoup de vrais formulaires non. Playwright MCP n’a eu besoin d’aucun rechargement.
navigator.webdriver dépend de qui lance Chrome
Quand Chrome DevTools MCP lançait Chrome, la page voyait navigator.webdriver = true, ce que sa propre documentation cite comme une raison d’échec de certaines connexions. Le Chrome lancé par Playwright MCP indiquait false. Quand les outils se connectaient à un Chrome que nous avions lancé, tous indiquaient false. Nous n’avons testé aucun vrai contrôle anti-bot.
Playwright MCP ne conserve un profil qu’après browser_close
Avec un dossier de profil persistant, la session avait disparu après un redémarrage du serveur lorsque le client se déconnectait simplement. Quand l’agent appelait d’abord browser_close, elle était conservée à chaque essai. Chrome DevTools MCP a conservé son profil à chaque essai sans appel de fermeture.
agent-browser a manqué l’iframe cross-site en mode connecté
En troisième colonne, agent-browser a rempli tous les champs, le fichier et les deux iframes lorsqu’il lançait son propre navigateur ; son clic sur Envoyer était signalé comme effectué à chaque fois, mais la page ne l’a enregistré que dans une partie des essais. Connecté à un Chrome déjà ouvert, son instantané montrait l’iframe de même origine mais pas l’iframe cross-site, même après une attente et un second instantané, si bien que le formulaire ne pouvait pas être terminé.
| Sujet | Formulation officielle | Ce que cela signifie en pratique |
|---|---|---|
| Accès aux fichiers de 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. | Envoyez des fichiers depuis l’espace de travail de votre projet, ou lancez le serveur avec --allow-unrestricted-file-access. |
| Accès aux fichiers de Chrome DevTools MCP | By default, file-writing tools are restricted to the OS temp directory when no roots are configured. | Sans racines MCP fournies par votre client, placez les fichiers à envoyer dans le dossier temporaire ou ajoutez --filesystem-root. |
| Connexion avec 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). | Pour les sites où vous vous connectez, reliez-le à un Chrome que vous avez lancé au lieu de laisser le serveur en lancer un. |
| Profil de Playwright MCP | A persistent profile can only be used by one browser instance at a time | Deux agents dans un même espace de travail ont besoin de --isolated ou de dossiers de profil distincts. |
| Playwright CLI | CLI invocations are more token-efficient: they avoid loading large tool schemas and verbose accessibility trees into the model context | Microsoft oriente lui-même les agents de code au contexte limité vers sa CLI avec des skills plutôt que vers le serveur MCP. |
| Statistiques de 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. | Activées par défaut ; ajoutez --no-usage-statistics si vous n’en voulez pas. |
Documenté, non testé
Ces différences proviennent du README et de la documentation de chaque projet à la date de lecture. Nous ne les avons pas mesurées.
| Sujet | Playwright MCP | Chrome DevTools MCP |
|---|---|---|
| Navigateurs | Chrome, Firefox, WebKit et Edge via --browser. | Officiellement Google Chrome et Chrome for Testing ; d’autres navigateurs Chromium peuvent fonctionner. |
| Votre navigateur ouvert | --cdp-endpoint vers un port de débogage, ou la Playwright Extension avec sélecteur d’onglet et validation. | --browser-url vers un port de débogage, ou --autoConnect dans Chrome 144+ avec une boîte de dialogue d’autorisation à chaque session. |
| Profil | Profil persistant par défaut ; --isolated le garde en mémoire ; --storage-state charge cookies et stockage. | Profil persistant par défaut ; --isolated utilise un profil temporaire supprimé ensuite. |
| Débogage | Console et requêtes réseau ; outils de tracing, vidéo et stockage sur demande. | Traces de performance avec analyses, audits Lighthouse, instantanés mémoire, console avec stack traces via source maps, requêtes réseau. |
| Données envoyées à l’éditeur | Le README ne décrit aucune statistique d’utilisation. | Statistiques d’utilisation activées par défaut (--no-usage-statistics) ; les outils de performance peuvent interroger la CrUX API sur les URL des traces (--no-performance-crux). |
| Sans MCP | Microsoft recommande Playwright CLI avec des skills pour les agents de code. | Une CLI est incluse pour un usage sans MCP. |
| Licence | Apache-2.0 | Apache-2.0 |
Le poids de la liste d’outils
Avant l’ouverture de toute page, Playwright MCP annonçait 25 outils avec 20,3 Ko de descriptions, Chrome DevTools MCP 30 outils avec 25,7 Ko (réglages par défaut, mesuré via tools/list). Un agent garde ce texte dans son contexte pendant toute la session. Chrome DevTools MCP propose --slim avec trois outils ; Playwright MCP ajoute des groupes d’outils avec --caps.
Lequel choisir
Playwright MCP convient quand
- l’agent doit lancer un navigateur vierge pour chaque tâche, en headless ou en CI,
- vous avez aussi besoin de Firefox ou de WebKit,
- l’agent reprend un formulaire qu’une personne a déjà commencé, car il a rempli des pages ouvertes sans rechargement,
- vous voulez une liste d’outils plus courte dans le contexte de l’agent.
Chrome DevTools MCP convient quand
- vous déboguez votre propre application web et voulez traces, Lighthouse, réseau et console au même endroit,
- vous voulez partager votre Chrome de tous les jours avec l’agent via la connexion automatique,
- vous travaillez uniquement dans Chrome et appréciez des outils maintenus par l’équipe Chrome DevTools,
- vous pouvez laisser l’agent recharger une page qu’il n’a pas ouverte avant de la remplir.
Et agent-browser ?
agent-browser est un outil de navigateur en ligne de commande pour agents, avec un mode MCP optionnel. Il a rempli le même formulaire en lançant son propre navigateur, mais a manqué l’iframe cross-site une fois connecté à un Chrome déjà ouvert. À considérer si votre agent travaille mieux avec de courtes commandes shell qu’avec des outils MCP.
Refaire le test
La page de test est un seul fichier Node.js sans dépendances. Elle n’écoute que sur votre propre machine.
- Téléchargez le fichier et exécutez-le avec Node.js 18 ou plus récent.
- Ouvrez une fois http://127.0.0.1:4461/ pour voir la page ; l’iframe cross-site se charge depuis http://localhost:4462/.
- Ajoutez l’une des entrées MCP ci-dessous à votre agent et demandez-lui de remplir le formulaire, d’envoyer un petit PNG quelconque, de remplir les deux iframes et de s’arrêter avant l’étape humaine.
- Cochez vous-même l’étape humaine, envoyez le formulaire et demandez à l’agent ce que la page affiche maintenant.
Télécharger browser-mcp-test.mjs
Le fichier sert le formulaire, l’iframe et un point de terminaison d’écho local. Rien n’est envoyé ailleurs.
L’outil lance son propre 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"
]
}
}
}L’outil se connecte à un Chrome que vous avez lancé sur le port 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"
]
}
}
}Ce qu’utilise LaunchRepo
- Les playbooks de LaunchRepo sont écrits et testés pour Chrome DevTools MCP connecté à votre propre Chrome, car les soumissions en annuaires exigent vos vraies connexions et vous devez voir chaque étape.
- Avec un Chrome que vous lancez vous-même, navigator.webdriver est resté à false pour tous les outils de ce test, et le relais a fonctionné : vous terminez une étape dans le même onglet, l’agent lit le résultat.
- Si un formulaire d’annuaire est déjà ouvert quand l’agent se connecte, laissez-le recharger la page avant de saisir quoi que ce soit, afin de ne rien perdre de ce que vous avez entré.
Sources
Pages et dépôts officiels, lus le 30 septembre 2026. Les citations sont reprises mot pour mot ; nos résultats de test sont nos propres mesures.
FAQ
- Playwright MCP ou Chrome DevTools MCP : lequel est le meilleur pour les agents de code ?
- Aucun ne l’emporte partout. Dans notre test, les deux ont réussi toutes les vérifications du formulaire en lançant leur propre Chrome. Playwright MCP a aussi rempli une page qu’une personne avait déjà ouverte et annonçait une liste d’outils plus courte ; Chrome DevTools MCP apporte les traces de performance, Lighthouse et des outils réseau et console plus poussés pour déboguer votre propre application.
- Chrome DevTools MCP peut-il utiliser le Chrome où je suis connecté ?
- Oui. Avec --autoConnect, il se connecte à votre Chrome 144 ou plus récent déjà ouvert, après que vous avez autorisé le débogage à distance et confirmé une boîte de dialogue. Sinon, lancez Chrome avec un port de débogage à distance et un dossier de profil séparé, puis pointez --browser-url dessus ; depuis Chrome 136, le port est ignoré pour le profil par défaut.
- Les deux gèrent-ils les iframes ?
- Oui : dans nos essais, les deux ont atteint une iframe de même origine et une iframe cross-site dans les deux modes, cinq fois sur cinq, et ont pu y saisir du texte et cliquer.
- Pourquoi l’upload du fichier a-t-il échoué ?
- Par défaut, les deux serveurs ne lisent que des fichiers situés dans des dossiers autorisés : Playwright MCP dans les racines de l’espace de travail ou son répertoire de travail, Chrome DevTools MCP dans le dossier temporaire du système si votre client n’indique aucune racine. Déplacez le fichier là, ou utilisez le flag documenté pour élargir la limite.
- Ces outils peuvent-ils résoudre des CAPTCHA ?
- Aucun ne documente de fonction CAPTCHA, et nous n’avons pas testé de vrais CAPTCHA. Prévoyez plutôt un relais : l’agent s’arrête, vous résolvez l’étape dans la même fenêtre visible, l’agent reprend. Dans notre test en mode connecté, ce relais a fonctionné avec les deux serveurs.
- navigator.webdriver trahit-il l’agent ?
- Dans notre test, il valait true uniquement quand Chrome DevTools MCP lançait Chrome lui-même. Le Chrome de Playwright MCP et tout Chrome lancé par nous-mêmes indiquaient false. La réaction d’un site dépend de ce site ; nous n’avons pas testé de vrais contrôles anti-bot.
Laissez votre agent lancer votre produit dans les annuaires
LaunchRepo donne à votre agent de code des playbooks testés pour les plateformes de lancement et les annuaires. Il travaille dans votre propre Chrome via Chrome DevTools MCP, et vous décidez s’il envoie les soumissions seul ou vous demande d’abord.
Voir les tarifs