io.github.serkan-ozal/browser-devtools-mcp icon
io.github.serkan-ozal

browser-devtools-mcp

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

Hosted
communityapplication

Deployment

Hosted
streamable-httphttps://{your_mcp_server_host}/mcp

Package Details

Transportstdio

Environment Variables

PLATFORM(str)

Platform: browser (default) or node for Node.js backend debugging.

PORT(num)

Port for HTTP transport.

SESSION_IDLE_SECONDS(num)

Idle session timeout (seconds).

SESSION_IDLE_CHECK_SECONDS(num)

Interval for checking idle sessions (seconds).

SESSION_CLOSE_ON_SOCKET_CLOSE(bool)

Close session when socket closes.

CONSOLE_MESSAGES_BUFFER_SIZE(num)

Maximum console messages to buffer.

HTTP_REQUESTS_BUFFER_SIZE(num)

Maximum HTTP requests to buffer.

BROWSER_SERVER_INSTRUCTIONS_ENABLE(bool)

When true, include server instructions in MCP server info (browser platform). Default: true.

BROWSER_POLICY_UI_DEBUGGING_ENABLE(bool)

When true, include UI_DEBUGGING_POLICY in server policies (browser platform). Default: false.

BROWSER_HEADLESS_ENABLE(bool)

Run browser in headless mode.

BROWSER_PERSISTENT_ENABLE(bool)

Use persistent browser context (preserves cookies, localStorage, extensions).

BROWSER_CDP_ENDPOINT_URL(str)

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(bool)

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(bool)

On loopback CDP failure, if Chrome is running, open chrome://inspect/#remote-debugging. Default true. Set false to disable.

BROWSER_PERSISTENT_USER_DATA_DIR(str)

Directory for persistent browser context user data.

BROWSER_USE_INSTALLED_ON_SYSTEM(bool)

Use system-installed Chrome browser instead of Playwright's bundled browser.

BROWSER_EXECUTABLE_PATH(str)

Custom browser executable path.

BROWSER_LOCALE(str)

Browser locale (e.g., "en-US", "tr-TR").

OTEL_ENABLE(bool)

Enable OpenTelemetry integration.

OTEL_SERVICE_NAME(str)

OpenTelemetry service name.

OTEL_SERVICE_VERSION(str)

OpenTelemetry service version.

OTEL_ASSETS_DIR(str)

Directory containing OpenTelemetry bundle files.

OTEL_INSTRUMENTATION_USER_INTERACTION_EVENTS(str)

User interaction events to instrument (comma-separated, e.g., "click,submit").

OTEL_EXPORTER_TYPE(str)

OpenTelemetry exporter type: "otlp/http", "console", or "none".

OTEL_EXPORTER_HTTP_URL(str)

OpenTelemetry collector base URL (e.g., "http://localhost:4318").

OTEL_EXPORTER_HTTP_HEADERS(str)
Secret

OpenTelemetry exporter HTTP headers (comma-separated key=value pairs).

AWS_REGION(str)

AWS region for Bedrock usage.

AWS_PROFILE(str)

AWS profile name for Bedrock usage.

AMAZON_BEDROCK_ENABLE(bool)

Enable Amazon Bedrock usage.

AMAZON_BEDROCK_IMAGE_EMBED_MODEL_ID(str)

Amazon Bedrock image embedding model ID.

AMAZON_BEDROCK_TEXT_EMBED_MODEL_ID(str)

Amazon Bedrock text embedding model ID.

AMAZON_BEDROCK_VISION_MODEL_ID(str)

Amazon Bedrock vision model ID.

FIGMA_ACCESS_TOKEN(str)
Secret

Figma API access token for design comparison.

FIGMA_API_BASE_URL(str)

Figma API base URL.

DAEMON_PORT(num)

Daemon mode port (CLI).

DAEMON_SESSION_IDLE_SECONDS(num)

Daemon mode idle session timeout (seconds).

DAEMON_SESSION_IDLE_CHECK_SECONDS(num)

Daemon mode idle session check interval (seconds).

NODE_SERVER_INSTRUCTIONS_ENABLE(bool)

When true, include server instructions in MCP server info (node platform). Default: true.

NODE_POLICY_DEBUGGING_ENABLE(bool)

When true, include NODE_DEBUGGING_POLICY in server policies (node platform). Default: false.

NODE_INSPECTOR_HOST(str)

Inspector host for debug_connect when MCP runs in Docker (e.g. host.docker.internal). Default: 127.0.0.1.

TOOL_OUTPUT_SCHEMA_DISABLE(bool)

When true, omit tool output schema from MCP tool registration (can reduce token usage for some clients).

AVAILABLE_TOOL_DOMAINS(str)

Comma-separated tool domains to enable (e.g. navigation,interaction,a11y). Unset = all tools. Browser: a11y, content, debug, figma, interaction, navigation, o11y, react, run, stub, sync. Node: debug, run.