HomeBrowser Automation & Scraping › browser-devtools-mcp

browser-devtools-mcp

Playwright browser & Node.js MCP. ARIA refs, screenshots, ref-based interactions.

TypeScript Remote

Topics: Browser Automation

Connect

Review any command before running it. Package names and URLs come from the server's own registry entry.

Remote (streamable-http)

https://{your_mcp_server_host}/mcp

Claude Code:

claude mcp add --transport http browser-devtools-mcp https://{your_mcp_server_host}/mcp

Or add to your MCP client config:

{
  "mcpServers": {
    "browser-devtools-mcp": {
      "url": "https://{your_mcp_server_host}/mcp"
    }
  }
}

Package (npm 0.9.1)

npx -y [email protected]

Or add to your MCP client config:

{
  "mcpServers": {
    "browser-devtools-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "PLATFORM": "<YOUR_VALUE>",
        "PORT": "<YOUR_VALUE>",
        "SESSION_IDLE_SECONDS": "<YOUR_VALUE>",
        "SESSION_IDLE_CHECK_SECONDS": "<YOUR_VALUE>",
        "SESSION_CLOSE_ON_SOCKET_CLOSE": "<YOUR_VALUE>",
        "CONSOLE_MESSAGES_BUFFER_SIZE": "<YOUR_VALUE>",
        "HTTP_REQUESTS_BUFFER_SIZE": "<YOUR_VALUE>",
        "BROWSER_SERVER_INSTRUCTIONS_ENABLE": "<YOUR_VALUE>",
        "BROWSER_POLICY_UI_DEBUGGING_ENABLE": "<YOUR_VALUE>",
        "BROWSER_HEADLESS_ENABLE": "<YOUR_VALUE>",
        "BROWSER_PERSISTENT_ENABLE": "<YOUR_VALUE>",
        "BROWSER_CDP_ENDPOINT_URL": "<YOUR_VALUE>",
        "BROWSER_CDP_ENABLE": "<YOUR_VALUE>",
        "BROWSER_CDP_OPEN_INSPECT": "<YOUR_VALUE>",
        "BROWSER_PERSISTENT_USER_DATA_DIR": "<YOUR_VALUE>",
        "BROWSER_USE_INSTALLED_ON_SYSTEM": "<YOUR_VALUE>",
        "BROWSER_EXECUTABLE_PATH": "<YOUR_VALUE>",
        "BROWSER_CHROMIUM_SANDBOX": "<YOUR_VALUE>",
        "BROWSER_LAUNCH_ARGS": "<YOUR_VALUE>",
        "BROWSER_ALLOWED_DOMAINS": "<YOUR_VALUE>",
        "BROWSER_LOCALE": "<YOUR_VALUE>",
        "OTEL_ENABLE": "<YOUR_VALUE>",
        "OTEL_SERVICE_NAME": "<YOUR_VALUE>",
        "OTEL_SERVICE_VERSION": "<YOUR_VALUE>",
        "OTEL_ASSETS_DIR": "<YOUR_VALUE>",
        "OTEL_INSTRUMENTATION_USER_INTERACTION_EVENTS": "<YOUR_VALUE>",
        "OTEL_EXPORTER_TYPE": "<YOUR_VALUE>",
        "OTEL_EXPORTER_HTTP_URL": "<YOUR_VALUE>",
        "OTEL_EXPORTER_HTTP_HEADERS": "<YOUR_VALUE>",
        "AWS_REGION": "<YOUR_VALUE>",
        "AWS_PROFILE": "<YOUR_VALUE>",
        "AMAZON_BEDROCK_ENABLE": "<YOUR_VALUE>",
        "AMAZON_BEDROCK_IMAGE_EMBED_MODEL_ID": "<YOUR_VALUE>",
        "AMAZON_BEDROCK_TEXT_EMBED_MODEL_ID": "<YOUR_VALUE>",
        "AMAZON_BEDROCK_VISION_MODEL_ID": "<YOUR_VALUE>",
        "FIGMA_ACCESS_TOKEN": "<YOUR_VALUE>",
        "FIGMA_API_BASE_URL": "<YOUR_VALUE>",
        "DAEMON_PORT": "<YOUR_VALUE>",
        "DAEMON_SESSION_IDLE_SECONDS": "<YOUR_VALUE>",
        "DAEMON_SESSION_IDLE_CHECK_SECONDS": "<YOUR_VALUE>",
        "NODE_SERVER_INSTRUCTIONS_ENABLE": "<YOUR_VALUE>",
        "NODE_POLICY_DEBUGGING_ENABLE": "<YOUR_VALUE>",
        "NODE_INSPECTOR_HOST": "<YOUR_VALUE>",
        "TOOL_OUTPUT_SCHEMA_DISABLE": "<YOUR_VALUE>",
        "AVAILABLE_TOOL_DOMAINS": "<YOUR_VALUE>",
        "WORKING_DIR": "<YOUR_VALUE>",
        "SEARCH_STRATEGY": "<YOUR_VALUE>",
        "SCENARIO_SEARCH_STRATEGY": "<YOUR_VALUE>"
      }
    }
  }
}
  • PLATFORM — Platform: browser (default) or node for Node.js backend debugging.
  • PORT — Port for HTTP transport.
  • SESSION_IDLE_SECONDS — Idle session timeout (seconds).
  • SESSION_IDLE_CHECK_SECONDS — Interval for checking idle sessions (seconds).
  • SESSION_CLOSE_ON_SOCKET_CLOSE — Close session when socket closes.
  • CONSOLE_MESSAGES_BUFFER_SIZE — Maximum console messages to buffer.
  • HTTP_REQUESTS_BUFFER_SIZE — Maximum HTTP requests to buffer.
  • BROWSER_SERVER_INSTRUCTIONS_ENABLE — When true, include server instructions in MCP server info (browser platform). Default: true.
  • BROWSER_POLICY_UI_DEBUGGING_ENABLE — When true, include UI_DEBUGGING_POLICY in server policies (browser platform). Default: false.
  • BROWSER_HEADLESS_ENABLE — Run browser in headless mode.
  • BROWSER_PERSISTENT_ENABLE — Use persistent browser context (preserves cookies, localStorage, extensions).
  • BROWSER_CDP_ENDPOINT_URL — CDP attach: http(s) root or ws(s) URL. Resolves via /json/version, /json/list, or ws /devtools/browser (Chrome 136+). Mutually exclusive with BROWSER_PERSISTENT_ENABLE.
  • BROWSER_CDP_ENABLE — When true and no BROWSER_CDP_ENDPOINT_URL: probe 127.0.0.1:9222 then :9229 for CDP. Else use BROWSER_CDP_ENDPOINT_URL or default http://127.0.0.1:9222.
  • BROWSER_CDP_OPEN_INSPECT — On loopback CDP failure, if Chrome is running, open chrome://inspect/#remote-debugging. Default true. Set false to disable.
  • BROWSER_PERSISTENT_USER_DATA_DIR — Directory for persistent browser context user data.
  • BROWSER_USE_INSTALLED_ON_SYSTEM — Use system-installed Chrome browser instead of Playwright's bundled browser.
  • BROWSER_EXECUTABLE_PATH — Custom browser executable path.
  • BROWSER_CHROMIUM_SANDBOX — When false, launches Chromium with --no-sandbox. Required for Docker/Lambda/CI.
  • BROWSER_LAUNCH_ARGS — Extra Chromium launch args (comma-separated).
  • BROWSER_ALLOWED_DOMAINS — Comma-separated list of allowed hostnames. When set, all requests to non-matching hosts are aborted. Subdomains match automatically.
  • BROWSER_LOCALE — Browser locale (e.g., "en-US", "tr-TR").
  • OTEL_ENABLE — Enable OpenTelemetry integration.
  • OTEL_SERVICE_NAME — OpenTelemetry service name.
  • OTEL_SERVICE_VERSION — OpenTelemetry service version.
  • OTEL_ASSETS_DIR — Directory containing OpenTelemetry bundle files.
  • OTEL_INSTRUMENTATION_USER_INTERACTION_EVENTS — User interaction events to instrument (comma-separated, e.g., "click,submit").
  • OTEL_EXPORTER_TYPE — OpenTelemetry exporter type: "otlp/http", "console", or "none".
  • OTEL_EXPORTER_HTTP_URL — OpenTelemetry collector base URL (e.g., "http://localhost:4318").
  • OTEL_EXPORTER_HTTP_HEADERS secret — OpenTelemetry exporter HTTP headers (comma-separated key=value pairs).
  • AWS_REGION — AWS region for Bedrock usage.
  • AWS_PROFILE — AWS profile name for Bedrock usage.
  • AMAZON_BEDROCK_ENABLE — Enable Amazon Bedrock usage.
  • AMAZON_BEDROCK_IMAGE_EMBED_MODEL_ID — Amazon Bedrock image embedding model ID.
  • AMAZON_BEDROCK_TEXT_EMBED_MODEL_ID — Amazon Bedrock text embedding model ID.
  • AMAZON_BEDROCK_VISION_MODEL_ID — Amazon Bedrock vision model ID.
  • FIGMA_ACCESS_TOKEN secret — Figma API access token for design comparison.
  • FIGMA_API_BASE_URL — Figma API base URL.
  • DAEMON_PORT — Daemon mode port (CLI).
  • DAEMON_SESSION_IDLE_SECONDS — Daemon mode idle session timeout (seconds).
  • DAEMON_SESSION_IDLE_CHECK_SECONDS — Daemon mode idle session check interval (seconds).
  • NODE_SERVER_INSTRUCTIONS_ENABLE — When true, include server instructions in MCP server info (node platform). Default: true.
  • NODE_POLICY_DEBUGGING_ENABLE — When true, include NODE_DEBUGGING_POLICY in server policies (node platform). Default: false.
  • NODE_INSPECTOR_HOST — Inspector host for debug_connect when MCP runs in Docker (e.g. host.docker.internal). Default: 127.0.0.1.
  • TOOL_OUTPUT_SCHEMA_DISABLE — When true, omit tool output schema from MCP tool registration (can reduce token usage for some clients).
  • AVAILABLE_TOOL_DOMAINS — Comma-separated tool domains to enable (e.g. navigation,interaction,a11y,scenario). Unset = all tools. Browser: a11y, content, debug, figma, interaction, navigation, o11y, react, scenario, run, stub, sync. Node: debug, run.
  • WORKING_DIR — Working directory for project-level config (.browser-devtools-mcp/). Default: process.cwd().
  • SEARCH_STRATEGY — Search strategy: SIMPLE (default, minisearch + stemmer) or FTS5 (better-sqlite3, optional dep).
  • SCENARIO_SEARCH_STRATEGY — Override SEARCH_STRATEGY for scenario search only.

Related servers

Listed in punkpeye/awesome-mcp-servers (MIT)

Data from the Official MCP Registry