Browser Devtools MCP Server
by serkan-ozalio.github.serkan-ozal/browser-devtools-mcpv0.9.1
[DEPRECATED] This package has been renamed. Please use @ironbee-ai/devtools instead.
context tax
queued
security
queued
cold start
queued
freshness
Slowing5mo ago
Install Browser Devtools MCP server
Install in Claude Code
claude mcp add browser-devtools -e OTEL_EXPORTER_HTTP_HEADERS='<otel-exporter-http-headers>' -e FIGMA_ACCESS_TOKEN='<figma-access-token>' -- npx -y browser-devtools-mcpInstall in Cursor
{
"mcpServers": {
"browser-devtools": {
"command": "npx",
"args": [
"-y",
"browser-devtools-mcp"
],
"env": {
"OTEL_EXPORTER_HTTP_HEADERS": "<otel-exporter-http-headers>",
"FIGMA_ACCESS_TOKEN": "<figma-access-token>"
}
}
}
}Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project).
Install in Claude Desktop
{
"mcpServers": {
"browser-devtools": {
"command": "npx",
"args": [
"-y",
"browser-devtools-mcp"
],
"env": {
"OTEL_EXPORTER_HTTP_HEADERS": "<otel-exporter-http-headers>",
"FIGMA_ACCESS_TOKEN": "<figma-access-token>"
}
}
}
}Settings → Developer → Edit Config (claude_desktop_config.json), then restart.
Install in VS Code
{
"servers": {
"browser-devtools": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"browser-devtools-mcp"
],
"env": {
"OTEL_EXPORTER_HTTP_HEADERS": "<otel-exporter-http-headers>",
"FIGMA_ACCESS_TOKEN": "<figma-access-token>"
}
}
}
}Add to .vscode/mcp.json in your workspace.
Install in Windsurf
{
"mcpServers": {
"browser-devtools": {
"command": "npx",
"args": [
"-y",
"browser-devtools-mcp"
],
"env": {
"OTEL_EXPORTER_HTTP_HEADERS": "<otel-exporter-http-headers>",
"FIGMA_ACCESS_TOKEN": "<figma-access-token>"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json.
Configuration
| Variable | Required | Secret | Description |
|---|---|---|---|
| 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 | — | yes | 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 | — | yes | 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. |
Remote endpoints
- streamable-http
https://{your_mcp_server_host}/mcp
Freshness
Slowing — last maintenance signal 5mo ago. The newest of the signals below sets the band.
Last commit (default branch)
no data · GitHub
Latest release
no data · GitHub
Package published
no data · npm/PyPI
Registry entry updated
2026-05-12 · 5mo ago · official registry · v0.9.1
FAQ
›How do I install the Browser Devtools MCP server in Claude Code?
Run: claude mcp add browser-devtools -e OTEL_EXPORTER_HTTP_HEADERS='<otel-exporter-http-headers>' -e FIGMA_ACCESS_TOKEN='<figma-access-token>' -- npx -y browser-devtools-mcp. For Cursor, VS Code, Claude Desktop and Windsurf, use the install tabs above.
›Does Browser Devtools require an API key?
Yes. It expects OTEL_EXPORTER_HTTP_HEADERS, FIGMA_ACCESS_TOKEN, of which 2 are secrets.
›Can I use Browser Devtools as a remote (hosted) MCP server?
Yes — it offers both a hosted endpoint and a local stdio package.
›Is Browser Devtools in the official MCP registry?
Yes, as io.github.serkan-ozal/browser-devtools-mcp.
Alternatives to Browser Devtools
Other browser automation MCP servers.