Skip to content

Developer.chrome.com configuration page documents a nonexistent --experimentalPageIdRouting flag and DEBUG=*, and omits released flags #3009

Description

@coygeek

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 --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_page required: ["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

  1. 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.
  2. 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.
  3. 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.
  4. 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).

Chrome DevTools MCP version

1.10.1 (npm) and main 5ddb0a3 (local build)

Chrome version

154.0.8037.98 (stable)

Node version

v22.23.2

Operating system

macOS 27.0

Environment details

  • Release build: chrome-devtools-mcp@1.10.1 from npm.
  • main build: local build of main at 5ddb0a3.
  • 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions