Skip to content

extension_doctor ​

Diagnose a dev session end to end: ready contract, dev-server process, control-port agreement, control channel, eval token, executor, browser liveness.

Quick start ​

The session looks stuck. Diagnose it

Asked whether the session is healthy, the agent runs the doctor and reports every leg.

Asked whether the session is healthy, the agent runs the doctor and reports every leg.

How the agent uses it ​

This returns one {check, status, detail, remediation?} per leg, in dependency order. Read a 'skip' as blocked, not as a pass: it names the check that blocked it. A session started with allowControl: false comes back ok:true with status 'read-only', not as an error: its control channel is off by choice. Run this first when any act tool (storage, reload, eval, open) errors unexpectedly. Call it with no projectPath for a pre-flight environment check (node, the Extension.js CLI, the template cache) before any project exists.

Page text in the answer ​

Part of this tool's answer is text a web page or the extension wrote. The server fences it between <untrusted-data-ID> and </untrusted-data-ID> with a fresh random ID per call, named in untrusted.boundary. A fence is a signal to the model, not a gate: pair it with --no-ship when the agent reads pages you do not trust. See Server flags and telemetry.

Reference ​

Grouplocal, on by default
TierSee
Needsa live dev or start session
Read onlyyes
Destructiveno
Idempotentyes
Reaches the open webno

Inputs ​

InputTypeRequiredDefaultWhat it does
projectPathstringnoPath to the extension project root. Omit for a pre-flight environment check with no project.
browserstringnoBrowser session to diagnose. Defaults to the active dev session's browser for this project.

When it fails ​

Next ​

  • MCP server: install, the two groups and the session gates
  • Install in your client
  • extension_analyze: Analyze a BUILT extension on disk: file sizes, declared entry points, permissions, bundle composition, and store-readiness checks.
  • extension_dom_snapshot: Take a shallow structured DOM snapshot of one chosen surface through the agent bridge (localhost only; the snapshot itself needs no CDP, but listTargets and tabUrl resolution...
  • extension_inspect: Inspect a running extension deeply over the browser's debugger protocol: full HTML (open shadow roots of #extension-root and [data-extension-root] hosts inlined; other shadow ro...
  • extension_list_extensions: List the extensions in the running dev browser: id, name, version, and, on Chromium, live contexts.
  • extension_logs: Read or stream logs from every context of a running dev session (service worker, content scripts, popup, options, sidebar, devtools, pages) in one ordered timeline.
  • extension_manifest_validate: Validate a manifest.json across browsers.
  • extension_theme_verify: Verify a Chrome theme manifest before it ships.