Skip to content

troubleshooting skill's DEBUG=* command does not enable verbose server logs #2910

Description

@coygeek

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.

  1. npm i --prefix /tmp/x chrome-devtools-mcp@1.10.1 @modelcontextprotocol/sdk.
  2. 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.
  3. 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.

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions