Porównanie w praktyce

Playwright MCP vs Chrome DevTools MCP w praktycznym teście

Przepuściliśmy oba przeglądarkowe serwery MCP przez ten sam lokalny formularz, każdy pięć razy: pola tekstowe, przesyłanie pliku, dwa iframe’y, krok, który może dokończyć tylko człowiek, oraz restart. Oto co przeszło, co zawiodło i co znamy tylko z dokumentacji.

Krótka odpowiedź

  • Gdy uruchamiały własnego Chrome’a, oba serwery wypełniły każde pole, przesłały plik i działały wewnątrz iframe’a z tego samego originu oraz iframe’a z innej witryny, każdy w pięciu z pięciu przebiegów.
  • Po podłączeniu do Chrome’a, którego człowiek już otworzył, Playwright MCP od razu wypełnił otwarty formularz. Chrome DevTools MCP 1.10.1 mógł tam klikać, ale pola wypełniał dopiero po jednorazowym przeładowaniu strony, w każdym przebiegu.
  • Własny Chrome uruchomiony przez Chrome DevTools MCP zgłaszał navigator.webdriver = true; ten uruchomiony przez Playwright MCP zgłaszał false. W Chrome, którego uruchamiasz sam, oba zgłaszały false.
  • Wybierz Playwright MCP do czystych, powtarzalnych przebiegów i krótszej listy narzędzi. Wybierz Chrome DevTools MCP, gdy debugujesz własną aplikację webową (ślady wydajności, Lighthouse, sieć) albo chcesz dzielić z agentem swojego codziennego Chrome’a.

Wyniki testu

Każda komórka podaje liczbę udanych przebiegów na 5. Data testu 30 września 2026, Google Chrome 154.0.8037.92, @playwright/mcp 0.0.83, chrome-devtools-mcp 1.10.1, agent-browser 0.38.1 jako trzecia kolumna.

Tryb 1: narzędzie uruchamia własnego Chrome’a

Każde narzędzie uruchomiło Chrome w trybie headless ze świeżym folderem profilu, otworzyło stronę testową, zalogowało się na niej, wypełniło formularz i kliknęło wyślij bez zaznaczania kroku dla człowieka.

TematPlaywright MCPChrome DevTools MCPagent-browser
Oba iframe’y dostępne ze snapshotu5 z 55 z 55 z 5
Wypełnione pola: tekst, e-mail, lista, radio, checkbox i textarea5 z 55 z 55 z 5
Plik spoza dozwolonego folderu odrzucony (domyślnie)5 z 55 z 5nie mierzono
Przesłany plik dotarł nienaruszony (nazwa, rozmiar, SHA-256)5 z 55 z 55 z 5
Pisanie i klikanie w iframe’ie z tego samego originu5 z 55 z 55 z 5
Pisanie i klikanie w iframe’ie z innej witryny5 z 55 z 55 z 5
Formularz przyjął wszystko oprócz kroku dla człowieka5 z 55 z 52 z 5
Logowanie zachowane po restarcie z tym samym profilem0 z 55 z 55 z 5
Logowanie zachowane po browser_close i restarcie5 z 5nie mierzononie mierzono
Tryb izolowany wystartował bez starego logowania5 z 55 z 55 z 5
navigator.webdriver zgłosił false5 z 50 z 50 z 5

Tryb 2: narzędzie podłącza się do Chrome’a, którego człowiek już używa

Sami uruchomiliśmy Chrome z własnym profilem i lokalnym portem debugowania. Zastępca człowieka otworzył stronę, zalogował się i wpisał nazwę produktu. Potem narzędzie się podłączyło, wypełniło resztę i zatrzymało się; zastępca zaznaczył krok dla człowieka i wysłał formularz; narzędzie odczytało wynik.

TematPlaywright MCPChrome DevTools MCPagent-browser
Znalazł kartę człowieka i jej logowanie5 z 55 z 55 z 5
Wypełnił pola na stronie w zastanym stanie5 z 50 z 55 z 5
Wypełnił pola po jednym przeładowaniunie mierzono5 z 5nie mierzono
Przesłany plik dotarł nienaruszony (nazwa, rozmiar, SHA-256)5 z 55 z 55 z 5
Pisanie i klikanie w iframe’ie z tego samego originu5 z 55 z 55 z 5
Pisanie i klikanie w iframe’ie z innej witryny5 z 55 z 50 z 5
Człowiek zaznaczył krok dla człowieka i wysłał formularz5 z 55 z 50 z 5
Agent odczytał wysłany wynik5 z 55 z 50 z 5
Log sieci agenta pokazał POST formularza5 z 55 z 50 z 5
Ponownie podłączył się do tej samej karty po restarcie serwera5 z 55 z 5nie mierzono
navigator.webdriver zgłosił false5 z 55 z 55 z 5

Zrzuty ekranu z przebiegów

Zrzut całej strony lokalnego formularza testowego po wypełnieniu przez Playwright MCP
Playwright MCP, tryb 1: wszystkie pola, plik i oba iframe’y są wypełnione; wysłanie blokuje tylko niezaznaczony krok dla człowieka. Zrzut wykonało samo narzędzie.
Zrzut całej strony lokalnego formularza testowego po wypełnieniu przez Chrome DevTools MCP
Chrome DevTools MCP, tryb 1: wszystkie pola, plik i oba iframe’y są wypełnione; wysłanie blokuje tylko niezaznaczony krok dla człowieka. Zrzut wykonało samo narzędzie.

Jak testowaliśmy

  • Data 30 września 2026, macOS z Google Chrome 154.0.8037.92. Wersje były przypięte: @playwright/mcp 0.0.83, chrome-devtools-mcp 1.10.1, agent-browser 0.38.1.
  • Formularz to lokalna strona testowa na 127.0.0.1; iframe z innej witryny pochodzi z localhost na drugim porcie. Nie użyliśmy żadnej prawdziwej strony, konta, osobistego profilu przeglądarki ani płatności.
  • Mały skrypt rozmawiał z każdym serwerem przez MCP, dokładnie jak klient agenta: snapshot, wypełnienie formularza, przesłanie pliku, kliknięcie, odczyt konsoli i sieci. Referencje elementów brał z własnego snapshotu każdego narzędzia. Żaden model językowy nie podejmował decyzji, więc każdy przebieg szedł tymi samymi krokami.
  • Każdy scenariusz uruchomiliśmy 5 razy na narzędzie. Tabele liczą przebiegi zakończone sukcesem.
  • Człowiek w trybie 2 to skrypt, który wysyła do karty zwykłe polecenia DevTools Protocol. To zastępca, a nie prawdziwa osoba. Aby wykluczyć go jako przyczynę błędu wypełniania w Chrome DevTools MCP, uruchomiliśmy też Chrome bezpośrednio z adresem testowym i bez żadnego skryptu: wynik ten sam.
  • agent-browser sterowaliśmy przez jego wiersz poleceń, główny interfejs, a nie przez tryb MCP.

Czego ten test nie obejmuje

  • Prawdziwych CAPTCHA, kontroli antybotowych i prawdziwych logowań na stronach osób trzecich.
  • Firefoksa i WebKit, rozszerzeń przeglądarki obu projektów ani okna automatycznego łączenia w Chrome.
  • Śladów wydajności, Lighthouse ani narzędzi pamięci.
  • Modelu językowego wybierającego kroki: ile tokenów i tur potrzebuje prawdziwy agent, zależy od modelu.
  • Windowsa i Linuksa.

Co się wyróżniło

Oba odrzucają pliki spoza dozwolonego folderu

Nasz pierwszy plik pochodził z folderu projektu i oba serwery domyślnie go odrzuciły. Playwright MCP dopuszcza katalogi główne workspace’u albo swój katalog roboczy, gdy klient żadnych nie podaje; Chrome DevTools MCP dopuszcza systemowy folder tymczasowy, gdy klient nie podaje katalogów głównych. Z dozwolonego folderu plik docierał nienaruszony w każdym przebiegu: ta sama nazwa, rozmiar i SHA-256. Każdy projekt dokumentuje flagę, która poszerza ten limit.

Chrome DevTools MCP nie wypełnił strony otwartej przed podłączeniem

W trybie 2 Chrome DevTools MCP znalazł kartę i jej logowanie, klikał przyciski i pisał w obu iframe’ach, ale wypełnianie pól na samej stronie kończyło się błędem „did not become interactive” w każdym przebiegu. Po jednym przeładowaniu przez agenta wypełnianie działało i reszta testu przeszła. Przeładowanie usuwa wszystko, czego strona nie zapisała; nasza strona testowa przywraca szkic, wiele prawdziwych formularzy tego nie robi. Playwright MCP nie potrzebował przeładowania.

navigator.webdriver zależy od tego, kto uruchamia Chrome

Gdy to Chrome DevTools MCP uruchamiał Chrome, strona widziała navigator.webdriver = true, co jego własna dokumentacja podaje jako powód, dla którego niektóre logowania się nie udają. Chrome uruchomiony przez Playwright MCP zgłaszał false. Gdy narzędzia podłączały się do Chrome’a uruchomionego przez nas, każde zgłaszało false. Nie testowaliśmy żadnej prawdziwej kontroli antybotowej.

Playwright MCP zachowuje profil tylko po browser_close

Przy trwałym folderze profilu logowanie znikało po restarcie serwera, gdy klient po prostu się rozłączał. Gdy agent najpierw wywołał browser_close, logowanie zostawało w każdym przebiegu. Chrome DevTools MCP zachowywał profil w każdym przebiegu bez wywołania zamykającego.

agent-browser po podłączeniu nie widział iframe’a z innej witryny

Jako trzecia kolumna agent-browser wypełnił każde pole, plik i oba iframe’y, gdy uruchamiał własną przeglądarkę; kliknięcie wyślij za każdym razem zgłaszał jako wykonane, ale strona zarejestrowała je tylko w części przebiegów. Po podłączeniu do działającego Chrome’a jego snapshot pokazywał iframe z tego samego originu, ale nie ten z innej witryny, także po odczekaniu i drugim snapshocie, więc formularza nie dało się dokończyć.

TematOficjalne brzmienieCo to oznacza w praktyce
Dostęp do plików w 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.Przesyłaj pliki z workspace’u projektu albo uruchom serwer z --allow-unrestricted-file-access.
Dostęp do plików w Chrome DevTools MCPBy default, file-writing tools are restricted to the OS temp directory when no roots are configured.Bez katalogów głównych MCP od klienta trzymaj pliki do przesłania w folderze tymczasowym albo dodaj --filesystem-root.
Logowanie w 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).Na stronach, na których się logujesz, podłącz się do Chrome’a uruchomionego przez ciebie, zamiast pozwalać serwerowi uruchamiać własnego.
Profil w Playwright MCPA persistent profile can only be used by one browser instance at a timeDwa agenty w jednym workspace’ie potrzebują --isolated albo osobnych folderów profilu.
Playwright CLICLI invocations are more token-efficient: they avoid loading large tool schemas and verbose accessibility trees into the model contextSam Microsoft kieruje agentów programistycznych z ciasnym kontekstem do swojego CLI ze skillami zamiast serwera MCP.
Statystyki w 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.Domyślnie włączone; dodaj --no-usage-statistics, jeśli ich nie chcesz.

Udokumentowane, nietestowane

Te różnice pochodzą z README i dokumentacji każdego projektu w dniu lektury. Nie mierzyliśmy ich.

TematPlaywright MCPChrome DevTools MCP
PrzeglądarkiChrome, Firefox, WebKit i Edge przez --browser.Oficjalnie Google Chrome i Chrome for Testing; inne przeglądarki Chromium mogą działać.
Twoja działająca przeglądarka--cdp-endpoint do portu debugowania albo Playwright Extension z wyborem karty i zatwierdzeniem.--browser-url do portu debugowania albo --autoConnect w Chrome 144+ z oknem zgody przy każdej sesji.
ProfilDomyślnie trwały profil; --isolated trzyma go w pamięci; --storage-state wczytuje ciasteczka i storage.Domyślnie trwały profil; --isolated używa tymczasowego, który potem jest usuwany.
DebugowanieKonsola i żądania sieciowe; tracing, wideo i narzędzia storage na życzenie.Ślady wydajności z analizą, audyty Lighthouse, snapshoty pamięci, konsola ze stack trace’ami z source mapami, żądania sieciowe.
Dane wysyłane do dostawcyREADME nie opisuje statystyk użycia.Statystyki użycia domyślnie włączone (--no-usage-statistics); narzędzia wydajności mogą sprawdzać adresy URL śladów w CrUX API (--no-performance-crux).
Bez MCPMicrosoft poleca agentom programistycznym Playwright CLI ze skillami.W zestawie jest CLI do użycia bez MCP.
LicencjaApache-2.0Apache-2.0

Ile waży lista narzędzi

Zanim otwarto jakąkolwiek stronę, Playwright MCP zgłosił 25 narzędzi z 20,3 KB opisów, Chrome DevTools MCP 30 narzędzi z 25,7 KB (ustawienia domyślne, zmierzone przez tools/list). Agent nosi ten tekst w kontekście przez całą sesję. Chrome DevTools MCP oferuje --slim z trzema narzędziami; Playwright MCP dodaje grupy narzędzi przez --caps.

Który wybrać

Playwright MCP pasuje, gdy

  • agent ma uruchamiać czystą przeglądarkę do każdego zadania, w trybie headless lub w CI,
  • potrzebujesz też Firefoksa albo WebKit,
  • agent przejmuje formularz, który człowiek już zaczął, bo wypełniał otwarte strony bez przeładowania,
  • chcesz krótszej listy narzędzi w kontekście agenta.

Chrome DevTools MCP pasuje, gdy

  • debugujesz własną aplikację webową i chcesz mieć ślady wydajności, Lighthouse, sieć i konsolę w jednym miejscu,
  • chcesz dzielić z agentem swojego codziennego Chrome’a przez automatyczne łączenie,
  • pracujesz tylko w Chrome i lubisz narzędzia utrzymywane przez zespół Chrome DevTools,
  • możesz pozwolić agentowi przeładować stronę, której nie otworzył, zanim ją wypełni.

A agent-browser?

agent-browser to przeglądarkowe narzędzie wiersza poleceń dla agentów z opcjonalnym trybem MCP. Wypełnił ten sam formularz, gdy uruchamiał własną przeglądarkę, ale po podłączeniu do działającego Chrome’a nie widział iframe’a z innej witryny. Warto rzucić okiem, jeśli twój agent lepiej radzi sobie z krótkimi poleceniami powłoki niż z narzędziami MCP.

Claude in Chrome vs Chrome DevTools MCP: czym się różnią →

Uruchom test samodzielnie

Strona testowa to jeden plik Node.js bez zależności. Nasłuchuje tylko na twoim komputerze.

  1. Pobierz plik i uruchom go w Node.js 18 lub nowszym.
  2. Otwórz raz http://127.0.0.1:4461/, żeby zobaczyć stronę; iframe z innej witryny ładuje się z http://localhost:4462/.
  3. Dodaj do agenta jeden z poniższych wpisów MCP i poproś go o wypełnienie formularza, przesłanie dowolnego małego pliku PNG, wypełnienie obu iframe’ów i zatrzymanie się przed krokiem dla człowieka.
  4. Sam zaznacz krok dla człowieka, wyślij formularz i zapytaj agenta, co teraz pokazuje strona.

Pobierz browser-mcp-test.mjs

Plik serwuje formularz, iframe i lokalny endpoint echo. Nic nie jest wysyłane nigdzie indziej.

Narzędzie uruchamia własnego Chrome’a

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"
      ]
    }
  }
}

Narzędzie podłącza się do Chrome’a uruchomionego przez ciebie na porcie 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"
      ]
    }
  }
}

Czego używa LaunchRepo

  • Playbooki LaunchRepo są pisane i testowane pod Chrome DevTools MCP podłączony do twojego własnego Chrome’a, bo zgłoszenia do katalogów wymagają twoich prawdziwych logowań, a ty powinieneś widzieć każdy krok.
  • W Chrome uruchomionym przez ciebie navigator.webdriver pozostawał false dla każdego narzędzia w tym teście, a przekazanie działało: kończysz krok w tej samej karcie, agent odczytuje wynik.
  • Jeśli formularz katalogu jest już otwarty, gdy agent się podłącza, pozwól mu przeładować stronę, zanim cokolwiek wpiszesz, żeby nic z tego, co wprowadziłeś, nie przepadło.

Źródła

Oficjalne strony i repozytoria, przeczytane 30 września 2026. Cytaty są przepisane słowo w słowo; wyniki testów to nasze własne pomiary.

FAQ

Co jest lepsze dla agentów programistycznych: Playwright MCP czy Chrome DevTools MCP?
Żaden nie wygrywa wszędzie. W naszym teście oba przeszły każdą kontrolę formularza, gdy uruchamiały własnego Chrome’a. Playwright MCP wypełnił też stronę, którą człowiek już otworzył, i zgłosił krótszą listę narzędzi; Chrome DevTools MCP daje ślady wydajności, Lighthouse oraz głębsze narzędzia sieci i konsoli do debugowania własnej aplikacji.
Czy Chrome DevTools MCP może używać Chrome’a, w którym jestem zalogowany?
Tak. Z --autoConnect łączy się z działającym Chrome 144 lub nowszym, gdy zezwolisz na zdalne debugowanie i potwierdzisz okno dialogowe. Możesz też uruchomić Chrome z portem zdalnego debugowania i osobnym folderem profilu i wskazać go przez --browser-url; od Chrome 136 port jest ignorowany dla profilu domyślnego.
Czy oba radzą sobie z iframe’ami?
Tak, w naszych przebiegach oba dotarły do iframe’a z tego samego originu i do iframe’a z innej witryny w obu trybach, pięć razy na pięć, i mogły w nich pisać oraz klikać.
Dlaczego przesyłanie pliku się nie udało?
Oba serwery domyślnie czytają pliki tylko z dozwolonych folderów: Playwright MCP z katalogów głównych workspace’u lub swojego katalogu roboczego, Chrome DevTools MCP z systemowego folderu tymczasowego, gdy twój klient nie podaje katalogów głównych. Przenieś tam plik albo użyj udokumentowanej flagi, która poszerza limit.
Czy te narzędzia potrafią rozwiązywać CAPTCHA?
Żadne nie dokumentuje funkcji CAPTCHA, a prawdziwych CAPTCHA nie testowaliśmy. Zaplanuj zamiast tego przekazanie: agent się zatrzymuje, ty rozwiązujesz krok w tym samym widocznym oknie, agent kontynuuje. W naszym teście z podłączaniem takie przekazanie działało w obu serwerach.
Czy navigator.webdriver zdradza agenta?
W naszym teście miał wartość true tylko wtedy, gdy Chrome DevTools MCP sam uruchamiał Chrome. Własny Chrome Playwright MCP i każdy Chrome uruchomiony przez nas zgłaszały false. Czy strona na to reaguje, zależy od tej strony; prawdziwych kontroli antybotowych nie testowaliśmy.

Niech twój agent zajmie się premierą w katalogach

LaunchRepo daje twojemu agentowi programistycznemu przetestowane playbooki dla platform premierowych i katalogów. Działa w twoim własnym Chrome przez Chrome DevTools MCP, a ty decydujesz, czy wysyła zgłoszenia sam, czy najpierw pyta ciebie.

Zobacz cennik