You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Developer.chrome.com configuration page documents a nonexistent --experimentalPageIdRouting flag and DEBUG=*, and omits released flags #3009
The "Configuration" page of the Chrome DevTools for agents documentation on developer.chrome.com, https://developer.chrome.com/docs/devtools/agents/get-started/configuration (retrieved 2026-10-06, Markdown view at the same path with .md.txt), disagrees with the released server in three ways that affect readers who configure from it. It lists --experimentalPageIdRouting with default false, a flag the server rejects as unknown; page ID routing is --pageIdRouting, on by default since 1.8.0. It says DEBUG=* enables verbose debug logging, which changes nothing in the log. And its "Configuration options reference" omits released flags, including the file-access root flag --filesystemRoot/--workspace, the safety switch --javascriptEvaluation, and five tool-category flags. The page documents this project's server and links to this repository's README "For the latest options and updates"; the fix lands on developer.chrome.com, not in this repository's files.
Actual behavior
Flag name and default: the page's "Experimental options" table has "--experimentalPageIdRouting or --experimental-page-id-routing | boolean | false | Exposes pageId on page-scoped tools to route requests in concurrent agent sessions." Both tested builds printed Unknown arguments: --experimentalPageIdRouting on stderr and started normally with 30 tools; pageId was already required on page-scoped tools in the default schema (navigate_pagerequired: ["pageId"]), and only --no-page-id-routing removed it (required absent). --pageIdRouting and --no-page-id-routing appear nowhere on the page. feat: make pageId required for page-scoped tools by default #1777 (released in 1.8.0) replaced the experimental flag, and docs: update page routing option name #2748 made the same correction in this repository's docs.
DEBUG: in Step 3, the unset and DEBUG='*' runs each wrote 7 lines, all mcp:log, on both builds; NODE_DEBUG='*' wrote 128 lines on 1.10.1 (71 puppeteer:protocol:RECV, 42 puppeteer:protocol:SEND, 4 puppeteer:browsers:launcher, 7 mcp:log) and 121 on main.
Omitted rows: flags in the 1.10.1 --help with no row on the page are --categoryInput, --categoryNavigation, --categoryDebugging, --categoryMemory, --categoryPwa, --javascriptEvaluation, --sourceMaps, --pageIdRouting, --filesystemRoot/--workspace, --config, --experimentalScreencastFps, and the deprecated --allowUnrestrictedPaths. The page does link to this repository "For the latest options and updates", but it presents its tables as "the available configuration flags" and none of them mentions workspace roots, so a reader whose client has no MCP roots cannot learn from this page why file-writing and extension tools return Access denied: ... is not within any of the configured workspace roots, or that --javascriptEvaluation=false exists.
Reproduction
Fetch the page's Markdown view (the page URL above with .md.txt appended) and read the "Experimental options" table and the "Environment variables" list.
Start each tested build over stdio with --headless --isolated --no-usage-statistics --no-performance-crux --experimentalPageIdRouting, send initialize and tools/list, and read stderr. Repeat with --no-page-id-routing and compare the navigate_page input schema's required list with a default start.
Start each tested build over stdio with --headless --isolated --no-usage-statistics --no-performance-crux --logFile=<tmp>/<name>.log three times, with neither DEBUG nor NODE_DEBUG set, with DEBUG='*', and with NODE_DEBUG='*'; call list_pages once in each, then count log lines by namespace with awk '{print $2}' <file> | sort | uniq -c.
Compare the flags in chrome-devtools-mcp --help of each build with the flag rows on the page.
Expectation
The page presents itself as the reference for server flags ("The following sections list the available configuration flags") and environment variables. Each documented flag should exist with the documented default, the documented DEBUG variable should produce verbose logs as stated ("Set to * to enable verbose debug logging (works in conjunction with --logFile)"), and the released flags that a user needs to configure file access, JavaScript evaluation and tool categories should be listed. The server's own contract is its --help and docs/configuration.md: --pageIdRouting "[default: true]" with --no-page-id-routing to disable, and --logFile verbose output enabled by NODE_DEBUG=*.
MCP configuration
--headless --isolated --no-usage-statistics --no-performance-crux unless the reproduction states otherwise (update checks disabled with CHROME_DEVTOOLS_MCP_NO_UPDATE_CHECKS=1).
Google Chrome 154.0.8037.98 (stable), Node v22.23.2, macOS 27.
Evidence
Expected source: --help of both tested builds (--pageIdRouting ... [default: true], --logFile, and the omitted flags); docs/configuration.md (--logFile: "Set the env variable NODE_DEBUG to * to enable verbose logs"); src/config/mcp-options.ts; CHANGELOG 1.8.0 entry for feat: make pageId required for page-scoped tools by default #1777.
Failure source: the developer.chrome.com configuration page named in Summary, as retrieved on 2026-10-06 ("Experimental options" table, "Environment variables" list, and the option tables), and the server output quoted under Actual behavior.
Evidence provenance: observed
Local verification: reproduced
Reproduction completeness: complete
The three problems are reported together because they share one fix location (this page) and one check (configure the server from the page); each is independently fixable. The full open and closed issue and PR corpus was screened as of 2026-10-06. Related: #2910 and #2921 report the same DEBUG=* advice in skills/troubleshooting/SKILL.md and docs/cli.md, and open PR #2922 fixes those two files only; neither mentions this page, so it would stay wrong after they close. No issue mentions --experimentalPageIdRouting on this page. The page's --categoryExperimentalWebmcp row ("Requires Chrome 149+") is a separate known version item not covered here. Unreleased main-only flags (for example --fileNavigations) are out of scope.
Fix check
Failing now: the configuration page lists --experimentalPageIdRouting (default false), which the server rejects as unknown while page ID routing is on by default; documents DEBUG=*, which leaves the log at 7 mcp:log lines; and has no rows for the released flags listed above. Restored: on the page, the page ID routing row names a flag the released server accepts with its actual default and opt-out, the verbose-logging instruction produces the verbose namespaces that NODE_DEBUG=* produces today when followed with --logFile, and the page documents at least the released flags that change what tools can do (--filesystemRoot/--workspace, --javascriptEvaluation, --pageIdRouting with --no-page-id-routing, and the category flags). Control: rows that already match --help (for example --headless, --isolated, --usageStatistics) keep their current content.
Description of the bug
The "Configuration" page of the Chrome DevTools for agents documentation on developer.chrome.com, https://developer.chrome.com/docs/devtools/agents/get-started/configuration (retrieved 2026-10-06, Markdown view at the same path with
.md.txt), disagrees with the released server in three ways that affect readers who configure from it. It lists--experimentalPageIdRoutingwith defaultfalse, a flag the server rejects as unknown; page ID routing is--pageIdRouting, on by default since 1.8.0. It saysDEBUG=*enables verbose debug logging, which changes nothing in the log. And its "Configuration options reference" omits released flags, including the file-access root flag--filesystemRoot/--workspace, the safety switch--javascriptEvaluation, and five tool-category flags. The page documents this project's server and links to this repository's README "For the latest options and updates"; the fix lands on developer.chrome.com, not in this repository's files.Actual behavior
--experimentalPageIdRoutingor--experimental-page-id-routing| boolean |false| ExposespageIdon page-scoped tools to route requests in concurrent agent sessions." Both tested builds printedUnknown arguments: --experimentalPageIdRoutingon stderr and started normally with 30 tools;pageIdwas already required on page-scoped tools in the default schema (navigate_pagerequired: ["pageId"]), and only--no-page-id-routingremoved it (requiredabsent).--pageIdRoutingand--no-page-id-routingappear nowhere on the page. feat: make pageId required for page-scoped tools by default #1777 (released in 1.8.0) replaced the experimental flag, and docs: update page routing option name #2748 made the same correction in this repository's docs.DEBUG: in Step 3, the unset andDEBUG='*'runs each wrote 7 lines, allmcp:log, on both builds;NODE_DEBUG='*'wrote 128 lines on 1.10.1 (71puppeteer:protocol:RECV, 42puppeteer:protocol:SEND, 4puppeteer:browsers:launcher, 7mcp:log) and 121 onmain.--helpwith no row on the page are--categoryInput,--categoryNavigation,--categoryDebugging,--categoryMemory,--categoryPwa,--javascriptEvaluation,--sourceMaps,--pageIdRouting,--filesystemRoot/--workspace,--config,--experimentalScreencastFps, and the deprecated--allowUnrestrictedPaths. The page does link to this repository "For the latest options and updates", but it presents its tables as "the available configuration flags" and none of them mentions workspace roots, so a reader whose client has no MCP roots cannot learn from this page why file-writing and extension tools returnAccess denied: ... is not within any of the configured workspace roots, or that--javascriptEvaluation=falseexists.Reproduction
.md.txtappended) and read the "Experimental options" table and the "Environment variables" list.--headless --isolated --no-usage-statistics --no-performance-crux --experimentalPageIdRouting, sendinitializeandtools/list, and read stderr. Repeat with--no-page-id-routingand compare thenavigate_pageinput schema'srequiredlist with a default start.--headless --isolated --no-usage-statistics --no-performance-crux --logFile=<tmp>/<name>.logthree times, with neitherDEBUGnorNODE_DEBUGset, withDEBUG='*', and withNODE_DEBUG='*'; calllist_pagesonce in each, then count log lines by namespace withawk '{print $2}' <file> | sort | uniq -c.chrome-devtools-mcp --helpof each build with the flag rows on the page.Expectation
The page presents itself as the reference for server flags ("The following sections list the available configuration flags") and environment variables. Each documented flag should exist with the documented default, the documented
DEBUGvariable should produce verbose logs as stated ("Set to*to enable verbose debug logging (works in conjunction with--logFile)"), and the released flags that a user needs to configure file access, JavaScript evaluation and tool categories should be listed. The server's own contract is its--helpanddocs/configuration.md:--pageIdRouting"[default: true]" with--no-page-id-routingto disable, and--logFileverbose output enabled byNODE_DEBUG=*.MCP configuration
--headless --isolated --no-usage-statistics --no-performance-cruxunless the reproduction states otherwise (update checks disabled withCHROME_DEVTOOLS_MCP_NO_UPDATE_CHECKS=1).Chrome DevTools MCP version
1.10.1 (npm) and
main5ddb0a3 (local build)Chrome version
154.0.8037.98 (stable)
Node version
v22.23.2
Operating system
macOS 27.0
Environment details
chrome-devtools-mcp@1.10.1from npm.mainbuild: local build ofmainat 5ddb0a3.Evidence
--helpof both tested builds (--pageIdRouting ... [default: true],--logFile, and the omitted flags);docs/configuration.md(--logFile: "Set the env variableNODE_DEBUGto*to enable verbose logs");src/config/mcp-options.ts; CHANGELOG 1.8.0 entry for feat: make pageId required for page-scoped tools by default #1777.The three problems are reported together because they share one fix location (this page) and one check (configure the server from the page); each is independently fixable. The full open and closed issue and PR corpus was screened as of 2026-10-06. Related: #2910 and #2921 report the same
DEBUG=*advice inskills/troubleshooting/SKILL.mdanddocs/cli.md, and open PR #2922 fixes those two files only; neither mentions this page, so it would stay wrong after they close. No issue mentions--experimentalPageIdRoutingon this page. The page's--categoryExperimentalWebmcprow ("Requires Chrome 149+") is a separate known version item not covered here. Unreleasedmain-only flags (for example--fileNavigations) are out of scope.Fix check
Failing now: the configuration page lists
--experimentalPageIdRouting(defaultfalse), which the server rejects as unknown while page ID routing is on by default; documentsDEBUG=*, which leaves the log at 7mcp:loglines; and has no rows for the released flags listed above. Restored: on the page, the page ID routing row names a flag the released server accepts with its actual default and opt-out, the verbose-logging instruction produces the verbose namespaces thatNODE_DEBUG=*produces today when followed with--logFile, and the page documents at least the released flags that change what tools can do (--filesystemRoot/--workspace,--javascriptEvaluation,--pageIdRoutingwith--no-page-id-routing, and the category flags). Control: rows that already match--help(for example--headless,--isolated,--usageStatistics) keep their current content.