Description of the bug
Step 5 of skills/troubleshooting/SKILL.md tells agents to run DEBUG=* npx chrome-devtools-mcp@latest --logFile=/tmp/cdm-test.log "to capture verbose logs". Since 1.10.0 the verbose output written to --logFile is gated by NODE_DEBUG, not DEBUG, so the documented command produces the same short log as setting nothing: no Puppeteer protocol traffic or browser-launch details reach the log file. Agents that follow the skill to gather diagnostics collect a log without the detail the step promises. Observed on 1.10.1 and main b2f522c.
Actual behavior
On 1.10.1, the unset and DEBUG=* runs each wrote 7 lines, all mcp:log, 441 bytes; the NODE_DEBUG=* run wrote 124 lines, including 69 puppeteer:protocol:RECV, 42 puppeteer:protocol:SEND and 2 puppeteer:browsers:launcher lines. Server stderr was also the same size for the unset and DEBUG=* runs (370 bytes each, observed once and not saved). On main b2f522c the unset and DEBUG=* runs again wrote 7 mcp:log lines each, and NODE_DEBUG=* wrote 121 lines (67 RECV, 41 SEND). DEBUG=* changed nothing in either build.
Reproduction
Executed on macOS against the published 1.10.1 package and a local build of main b2f522c, with usage statistics and update checks disabled.
npm i --prefix /tmp/x chrome-devtools-mcp@1.10.1 @modelcontextprotocol/sdk.
- Start the server three times through an MCP stdio client (
@modelcontextprotocol/sdk Client + StdioClientTransport) with --headless --isolated --no-usage-statistics --no-performance-crux --logFile=<file>: once with neither DEBUG nor NODE_DEBUG set, once with DEBUG=*, and once with NODE_DEBUG=*, each writing to its own log file.
- In each session call
list_pages once, close the client, and count log lines by the namespace in the second column (awk '{print $2}' <file> | sort | uniq -c).
Expectation
docs/configuration.md (--logFile: "Set the env variable NODE_DEBUG to * to enable verbose logs") and docs/troubleshooting.md (NODE_DEBUG=* npx chrome-devtools-mcp@latest --log-file=/path/to/chrome-devtools-mcp.log) define how to capture verbose server logs. 1.8.0 replaced the debug package with Node's native util.debuglog ("replace debug with NodeJS native", #2562); 1.10.0 stopped writing Puppeteer logs to the log file unless util.debuglog enables them ("don't log Puppeteer logs to file unless requested", #2743, fixing #2731); and in #2731 a maintainer confirmed that DEBUG will not be supported going forward and that NODE_DEBUG should be used. A troubleshooting command that promises verbose logs should therefore produce the verbose output that NODE_DEBUG=* produces.
Chrome DevTools MCP version
1.10.1 (npm) and main b2f522c (local build)
Chrome version
154.0.8037.93 (stable, headless, isolated)
Node version
v24.21.0
Operating system
macOS
Evidence
Fix check
Failing now: running the skill's verbose-logging command and then calling list_pages produces a log with only mcp:log lines, identical to running with no debug variable. Restored: the skill's verbose-logging command, run the same way, produces a log containing the verbose namespaces (for example puppeteer:protocol:SEND/RECV) that NODE_DEBUG=* produces today. Control: with no debug variable set, the log keeps its current short mcp:log-only content.
Description of the bug
Step 5 of
skills/troubleshooting/SKILL.mdtells agents to runDEBUG=* npx chrome-devtools-mcp@latest --logFile=/tmp/cdm-test.log"to capture verbose logs". Since 1.10.0 the verbose output written to--logFileis gated byNODE_DEBUG, notDEBUG, so the documented command produces the same short log as setting nothing: no Puppeteer protocol traffic or browser-launch details reach the log file. Agents that follow the skill to gather diagnostics collect a log without the detail the step promises. Observed on 1.10.1 andmainb2f522c.Actual behavior
On 1.10.1, the unset and
DEBUG=*runs each wrote 7 lines, allmcp:log, 441 bytes; theNODE_DEBUG=*run wrote 124 lines, including 69puppeteer:protocol:RECV, 42puppeteer:protocol:SENDand 2puppeteer:browsers:launcherlines. Server stderr was also the same size for the unset andDEBUG=*runs (370 bytes each, observed once and not saved). Onmainb2f522c the unset andDEBUG=*runs again wrote 7mcp:loglines each, andNODE_DEBUG=*wrote 121 lines (67 RECV, 41 SEND).DEBUG=*changed nothing in either build.Reproduction
Executed on macOS against the published 1.10.1 package and a local build of
mainb2f522c, with usage statistics and update checks disabled.npm i --prefix /tmp/x chrome-devtools-mcp@1.10.1 @modelcontextprotocol/sdk.@modelcontextprotocol/sdkClient+StdioClientTransport) with--headless --isolated --no-usage-statistics --no-performance-crux --logFile=<file>: once with neitherDEBUGnorNODE_DEBUGset, once withDEBUG=*, and once withNODE_DEBUG=*, each writing to its own log file.list_pagesonce, close the client, and count log lines by the namespace in the second column (awk '{print $2}' <file> | sort | uniq -c).Expectation
docs/configuration.md(--logFile: "Set the env variableNODE_DEBUGto*to enable verbose logs") anddocs/troubleshooting.md(NODE_DEBUG=* npx chrome-devtools-mcp@latest --log-file=/path/to/chrome-devtools-mcp.log) define how to capture verbose server logs. 1.8.0 replaced thedebugpackage with Node's nativeutil.debuglog("replace debug with NodeJS native", #2562); 1.10.0 stopped writing Puppeteer logs to the log file unlessutil.debuglogenables them ("don't log Puppeteer logs to file unless requested", #2743, fixing #2731); and in #2731 a maintainer confirmed thatDEBUGwill not be supported going forward and thatNODE_DEBUGshould be used. A troubleshooting command that promises verbose logs should therefore produce the verbose output thatNODE_DEBUG=*produces.Chrome DevTools MCP version
1.10.1 (npm) and
mainb2f522c (local build)Chrome version
154.0.8037.93 (stable, headless, isolated)
Node version
v24.21.0
Operating system
macOS
Evidence
docs/configuration.mdline 151 anddocs/troubleshooting.mdline 17 onmainb2f522c (the same--logFiletext appears in the 1.10.1--help); CHANGELOG 1.8.0 entry for refactor: replace debug with NodeJS native #2562 and 1.10.0 entry for fix: don't log Puppeteer logs to file unless requested #2743; maintainer reply in --log-file unconditionally writes all puppeteer:protocol traffic since v1.8.0 (PR #2562), ignoring DEBUG, causing log files to grow to GB scale #2731;src/utils/logger.ts(util.debuglog).skills/troubleshooting/SKILL.md:92(identical in 1.10.1 andmainb2f522c) and the log-line counts under Actual behavior.Fix check
Failing now: running the skill's verbose-logging command and then calling
list_pagesproduces a log with onlymcp:loglines, identical to running with no debug variable. Restored: the skill's verbose-logging command, run the same way, produces a log containing the verbose namespaces (for examplepuppeteer:protocol:SEND/RECV) thatNODE_DEBUG=*produces today. Control: with no debug variable set, the log keeps its current shortmcp:log-only content.