ai:mcp:servery:chrome-devtools-mcp

Chrome DevTools MCP

Vytvořeno: 5.5.2026 | Aktualizováno: 10.05.2026 17:18

Chrome DevTools MCP (chrome-devtools-mcp) je MCP server vyvíjený přímo týmem Chrome DevTools v Googlu. Umožňuje AI agentům ovládat Chrome prohlížeč a přistupovat k nástrojům vývojářské konzole — výkonnostní analýza, ladění paměti, Lighthouse audity nebo inspekce síťových požadavků.

Ve srovnání s Playwright MCP jde o komplementární nástroj zaměřený na debugging a DevTools, ne na web automation a testování.

Oba nástroje ovládají Chrome prohlížeč přes CDP (Chrome DevTools Protocol), ale na jiných vrstvách a s jiným zaměřením:

Playwright MCP Chrome DevTools MCP
Automation layer Playwright Puppeteer
Prohlížeče Chromium, Firefox, WebKit Chrome only
Zaměření Web automation, testování Developer tooling, debugging
Vyvíjí Microsoft Google (Chrome DevTools tým)

Playwright MCP je vhodný pro navigaci, vyplňování formulářů, scraping a screenshoty. Chrome DevTools MCP to vše také umí, ale hlavní přínos je jinde — v nástrojích, které Playwright přímo neposkytuje.

Chrome DevTools MCP má desítky nástrojů rozdělených do kategorií.

Nahraje DevTools performance trace a vrátí konkrétní actionable insights — ekvivalent záložky Performance v DevTools. Playwright toto neumí.

  • performance_start_trace — spustí nahrávání
  • performance_stop_trace — zastaví a vrátí analýzu

Spustí Lighthouse audit přímo z MCP bez potřeby CLI nebo pluginu. Výsledek obsahuje skóre výkonu, přístupnosti, SEO a best practices.

Heap snapshot a analýza memory leaks — odpovídá záložce Memory v DevTools.

Konzolové chyby vrátí s původními soubory a řádky, ne bundlovaným dist/. Klíčový rozdíl pro debugging produkčního kódu — Playwright konzolové chyby vrátí bez tohoto kontextu.

Detailní přehled síťových požadavků včetně hlaviček, těla a timingů.

Instalace a odinstalace Chrome extensions za běhu — pro testování extension nebo specifických prostředí.

Standardní automation nástroje (klikání, vyplňování, navigace, screenshoty) jsou k dispozici stejně jako u Playwright MCP.

Vyžaduje Node.js v20.19+ a Chrome stable nebo novější.

Základní konfigurace pro Claude Code (~/.claude.json):

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

Slim mode — jen 3 základní nástroje, vhodné pro jednoduché úkoly:

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

Chrome DevTools MCP interně používá Puppeteer, který si stejně jako Playwright stáhne bundlovaný Chrome kompilovaný pro glibc. Na Alpine Linux (musl libc) a ARM64 to selže ze stejného důvodu jako u Playwright.

Chrome DevTools MCP podporuje připojení k externě spuštěnému Chromiu přes CDP port. „Externě„ neznamená jiný stroj — oba procesy běží na stejném ARM64 stroji, Chromium jen poběží jako samostatný proces a chrome-devtools-mcp se k němu připojí přes localhost.

Krok 1: Spusť systémový Chromium z apk s CDP portem:

chromium --headless --no-sandbox --disable-setuid-sandbox \
         --disable-dev-shm-usage \
         --remote-debugging-port=9222

Krok 2: Nakonfiguruj chrome-devtools-mcp s –browser-url:

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": ["-y", "chrome-devtools-mcp@latest", "--browser-url", "http://127.0.0.1:9222"]
    }
  }
}

V tomto módu se Puppeteer nepokusí spustit vlastní browser — jen se připojí přes CDP na port, kde Chromium už běží. Systémový Chromium z Alpine apk je kompilovaný pro musl a ARM64, takže žádné glibc problémy.

Při praktickém použití přes mcpc se ukázalo, že samotné spuštění Chromia bez explicitního –user-data-dir vytváří náhodné profily v /tmp/org.chromium.Chromium.scoped_dir.*. V testu měl aktuální profil zhruba 81 MB a obsahoval mimo jiné Cache, Cookies, History, Login Data, Local Storage a Sessions. Staré adresáře po předchozích spuštěních zůstávaly v /tmp.

Proto je vhodnější použít wrapper, který:

  • zkontroluje, zda Chromium už běží na CDP portu 9222;
  • pokud neběží, spustí ho s fixním profilem /tmp/chromium-cdp-profile;
  • při čerstvém startu smaže uživatelská data z Default/ profilu — cache, cookies, historii, sessions, local storage atd.;
  • uklidí staré orphan adresáře /tmp/org.chromium.Chromium.*;
  • nakonec spustí chrome-devtools-mcp s –browser-url na http://127.0.0.1:9222.

Soubor například /home/aiwork/tools/chrome-devtools-wrapper/start-chrome-devtools.sh:

#!/bin/sh
# Zajistí běžící Chromium s CDP portem 9222 a spustí chrome-devtools-mcp.
# Použije fixní user-data-dir; při každém čerstvém startu smaže uživatelská data
# (Cache, Cookies, History, Sessions atp.) ale zachová component updates.
 
CDP_PORT=9222
CDP_URL="http://127.0.0.1:${CDP_PORT}"
USER_DATA_DIR="/tmp/chromium-cdp-profile"
 
# Zkontroluj, zda Chromium na CDP portu již naslouchá
if ! wget -q --spider "${CDP_URL}/json/version" 2>/dev/null; then
    # Čerstvý start — vyčisti user-specific data z profilu Default/,
    # aby se mezi restarty Chromia nehromadily cookies, cache, history atp.
    # Component data (CertificateRevocation, FileTypePolicies…) necháme — šetří bandwidth.
    for subdir in Cache Code\ Cache Cookies Cookies-journal History History-journal \
                  "Login Data" "Login Data-journal" Sessions "Session Storage" \
                  "Local Storage" "Web Data" "Web Data-journal" Favicons "Top Sites" \
                  "Shared Dictionary" SharedStorage DIPS "Network Action Predictor" \
                  BrowsingTopicsSiteData; do
        rm -rf "${USER_DATA_DIR}/Default/${subdir}" 2>/dev/null
    done
 
    # Ukliď staré orphan scoped_dir adresáře z předchozích spuštění
    find /tmp -maxdepth 1 -name 'org.chromium.Chromium.*' -type d \
        -not -name 'chromium-cdp-profile' 2>/dev/null | xargs rm -rf 2>/dev/null
 
    mkdir -p "${USER_DATA_DIR}"
 
    chromium \
        --headless \
        --no-sandbox \
        --disable-setuid-sandbox \
        --disable-dev-shm-usage \
        --remote-debugging-port=${CDP_PORT} \
        --remote-debugging-address=127.0.0.1 \
        --user-data-dir="${USER_DATA_DIR}" \
        --disable-extensions \
        --no-first-run \
        --no-default-browser-check \
        >/tmp/chromium-cdp.log 2>&1 &
 
    # Čekej max 15 s na start
    i=0
    while [ $i -lt 30 ]; do
        if wget -q --spider "${CDP_URL}/json/version" 2>/dev/null; then
            break
        fi
        sleep 0.5
        i=$((i + 1))
    done
 
    if ! wget -q --spider "${CDP_URL}/json/version" 2>/dev/null; then
        echo "ERROR: Chromium se nepodařilo spustit na portu ${CDP_PORT}" >&2
        exit 1
    fi
fi
 
exec npx -y chrome-devtools-mcp@latest --browser-url "${CDP_URL}"

Nastavení spustitelnosti:

chmod +x /home/aiwork/tools/chrome-devtools-wrapper/start-chrome-devtools.sh

Příklad entry v mcpc hub configu:

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "/home/aiwork/tools/chrome-devtools-wrapper/start-chrome-devtools.sh"
    }
  }
}

Použití přes mcpc:

HUB=/home/aiwork/.config/mcpc/mcp.json
mcpc connect $HUB:chrome-devtools @cdp
mcpc @cdp tools-list

V testovaném prostředí server přes mcpc naběhl jako chrome_devtools v0.25.0 a nabídl 29 nástrojů včetně lighthouse_audit, performance_start_trace, performance_stop_trace, take_memory_snapshot, take_screenshot a take_snapshot.

Základní test načtení stránky a DOM snapshotu:

mcpc @cdp tools-call new_page url:="https://example.com"
mcpc @cdp tools-call take_snapshot

Ověření, že Chromium běží s fixním profilem:

ps aux | grep chromium | grep "user-data-dir" | grep -v grep | grep -o "user-data-dir=[^ ]*"

Očekávaný výsledek:

user-data-dir=/tmp/chromium-cdp-profile

Po opravě wrapperem se stránky načítaly správně, screenshot a DOM snapshot fungovaly. Profil byl fixní v /tmp/chromium-cdp-profile a měl po startu přibližně 4,4 MB. Adresář typu /tmp/org.chromium.Chromium.* může vzniknout i potom, ale jde jen o lock adresář aktuálně běžící instance se soubory SingletonCookie a SingletonSocket. Wrapper ho při příštím startu uklidí.

  • Playwright MCP → navigace, klikání, vyplňování formulářů, screenshoty, scraping. Funkční na Alpine/ARM64 (viz postup pro Alpine/ARM64). Při použití –isolated vytváří izolovaný browser context, takže cookies, local storage a cache se po zavření session zahodí.
  • Chrome DevTools MCP → debugging výkonu, Lighthouse audity, analýza paměti a sítě, source-mapped chyby. Na Alpine/ARM64 je praktické spouštět ho přes wrapper s externím Chromiem a –browser-url.

Nástroje se překrývají jen v základní automatizaci. Ve zbytku jsou komplementární — dává smysl mít oba nastavené současně.

  • ai/mcp/servery/chrome-devtools-mcp.txt
  • Poslední úprava: 10.05.2026 17:18
  • autor: Petr Nosek