Przejdź do głównej zawartości

Browser MCP: Playwright, Puppeteer i Chrome DevTools

Spędziłeś godzinę wdrażając nowy przepływ zakupowy. Kod wygląda dobrze, typy się zgadzają, testy jednostkowe przechodzą. Ale kiedy otwierasz przeglądarkę, przycisk “Wyślij” jest ukryty za sticky footerem. Twoje AI mogłoby wyłapać to w sekundach — gdyby mogło zobaczyć przeglądarkę.

  • Konfigurację Playwright MCP i Puppeteer MCP dla wszystkich trzech narzędzi
  • Kiedy sięgnąć po Chrome DevTools MCP — audyty Lighthouse, ślady wydajności i debugowanie na żywo
  • Zrozumienie trybu drzewa dostępności vs trybu zrzutu ekranu
  • Prompty kopiuj-wklej dla testów E2E, regresji wizualnej i web scrapingu
  • Strategie uruchamiania browser MCP w CI/CD

Konfiguracja jest identyczna we wszystkich trzech narzędziach: zarejestruj serwer MCP, a następnie steruj przeglądarką promptami w języku naturalnym. Przepływ zawsze sprowadza się do tych samych trzech kroków.

  1. Wybierz serwer. Playwright MCP do pracy cross-browser i interakcji z drzewem dostępności (domyślny), Puppeteer MCP do scrapingu wyłącznie w Chrome. Oba skonfigurowano poniżej.

  2. Zarejestruj go raz w konfiguracji MCP swojego narzędzia (bloki poniżej), a następnie zrestartuj narzędzie, aby podchwyciło nowy serwer.

  3. Steruj przeglądarką zwykłym językiem. Poproś AI, aby nawigowało, wypełniało formularze, klikało i robiło zrzuty ekranu. Odczytuje ono stronę przez drzewo dostępności i działa na elementach po ich etykietach, bez żadnych selektorów.

Oficjalny Playwright MCP Microsoftu domyślnie używa strukturalnych drzew dostępności. AI rozumie elementy strony semantycznie — przyciski po ich etykiecie, pola input po ich nazwie — zamiast przez kosztowne wywołania wizyjne.

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

Kluczowe narzędzia: browser_navigate, browser_click, browser_type, browser_take_screenshot, browser_snapshot (odczyt drzewa dostępności), browser_select_option i browser_evaluate.

Serwer MCP Puppeteer to lżejsza opcja do automatyzacji tylko Chrome i szybkich zadań scrapingowych.

{
"mcpServers": {
"puppeteer": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
}
}
}

Wybierz Playwright dla wsparcia cross-browser i interakcji z drzewem dostępności. Wybierz Puppeteer dla funkcji specyficznych dla Chrome lub prostszych zadań scrapingowych.

Playwright i Puppeteer służą do sterowania przeglądarką. Oficjalny Chrome DevTools MCP (chrome-devtools-mcp, utrzymywany przez zespół Chrome DevTools) służy do jej inspekcji — oddaje agentowi panele, które otworzyłbyś ręcznie: ślady wydajności z analizami w stylu Lighthouse, konsolę ze stosami wywołań mapowanymi na źródła, inspekcję żądań sieciowych, DOM/CSS oraz zrzuty sterty. Sięgnij po niego, gdy “czy przycisk działa?” zmienia się w “czy ta zmiana pogorszyła LCP?” albo “dlaczego to żądanie się nie udaje?”.

{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest"]
}
}
}

Udostępnia śledzenie wydajności, inspekcję konsoli, monitorowanie sieci, zrzuty ekranu, wprowadzanie do DOM i analizę pamięci — napędzany pod spodem przez Puppeteer, więc nawigacja pozostaje niezawodna. Ponieważ kontroluje żywą stronę, agent debuguje w czasie rzeczywistym, zamiast zgadywać na podstawie kodu źródłowego.

Tryb drzewa dostępności (domyślny) — szybki, efektywny tokenowo, niezawodny. Przyciski identyfikowane po etykiecie, pola input po nazwie. Używaj do wszystkich standardowych interakcji.

Tryb wizyjny — robi zrzuty ekranu do wizualnego zrozumienia. Niezbędny dla aplikacji canvas, złożonych wizualizacji lub gdy drzewo dostępności błędnie reprezentuje UI.

Przeglądarka nie uruchamia się. Uruchom npx playwright install chromium aby pobrać plik binarny przeglądarki. Na serwerach CI zainstaluj zależności systemowe z npx playwright install-deps.

AI klika zły element. Wiele elementów ma tę samą dostępną nazwę. Dodaj atrybuty aria-label lub poinstruuj AI, aby użyło indeksu elementu w drzewie dostępności.

Zrzuty ekranu są puste. Sesja przeglądarki zaczyna się świeża bez uwierzytelnienia. Najpierw przejdź do strony logowania lub skonfiguruj przechowywane cookies.

Przekroczenia czasu na wolnych stronach. Domyślny timeout nawigacji to 30 sekund. Dla stron SSR zwiększ go: “Navigate to the page and wait up to 60 seconds for full load.”