Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/extensiondev/mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/extensiondev/mcp/extension-debug)<a href="https://agentmods.dev/commands/extensiondev/mcp/extension-debug"><img src="https://agentmods.dev/badge/commands/extensiondev/mcp/extension-debug/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/extensiondev/mcp/extension-debug"><img src="https://agentmods.dev/badge/commands/extensiondev/mcp/extension-debug.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00013 | $0.01033 |
| Opus 5.5 | $0.00005 | $0.00413 |
| Sonnet 5.5 | $0.00003 | $0.00207 |
| Haiku 4.5 | $0.00001 | $0.00103 |
Grade A, and why
extension-debug scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 54 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Debug the currently running extension dev session. The user said: $ARGUMENTS
Steps
-
Check for a running dev session
- If MCP tool
extension_doctoris available, call it with the project path: it reports whether a session is live, leg by leg (extension_waitwith a short timeout is only for a session that is still starting) - If no session: start one with
extension_dev(it answers when the session is ready) or tell the user to run/extension devornpm run dev
- If MCP tool
-
Inspect the live state If MCP tool
extension_inspectis available:- Pass
include: ["html", "summary", "meta", "console", "extension_roots"] - If the user provided a URL in
$ARGUMENTS, pass it asurl - If the user provided CSS selectors (strings starting with
#,., or[), pass them asprobe - Report the results in a structured way
If MCP is not available:
- If the session has the control channel (
--allow-controlon the CLI; anextension_devsession has it unless started withallowControl: false), suggest the CLI equivalent:npx extension inspect --tab <id> --include summary,html --with-console 20 - Otherwise read
dist/extension-js/<browser>/ready.jsonwith your file tool (not a shell glob; a missing file means no session is running) to get the CDP port and suggest Chrome DevTools inspection
- Pass
-
Exercise event handlers (when the bug is in an action / command / shortcut) If the session has the control channel (
--allow-controlon the CLI; anextension_devsession has it unless started withallowControl: false), fire the events a user would, without clicking:extension_openwithsurface: "action", triggers the toolbar action (opens its popup, or replayschrome.action.onClicked).extension_openwithsurface: "command"andname: "<cmd>", replays achrome.commands.onCommandkeyboard shortcut.- Then re-inspect or read
extension_logsto see what the handler did.
Caveat: replay carries no user gesture, so
activeTabis NOT granted. If the handler depends onactiveTab(e.g.chrome.scripting.executeScripton the active tab,captureVisibleTab), the result includesgesture: falseand awarning, and behavior differs from a real click. For a genuine-gesture click (activeTab granted), use chrome-devtools-mcp'strigger_extension_action(Chromium only) alongside this server.To see what else is loaded in the browser (Chromium):
extension_list_extensions.Safari sessions (Extension.js 4.1.21+) have no CDP, but the bridge works once the extension is enabled in Safari:
extension_logs,extension_storage,extension_reload,extension_openfor surfaces,extension_dom_snapshotby tab id, and the assertions (surface-renderedreads the surface through the relay there).extension_evalincontentorpageneeds a tab the user already opened at the url;extension_openwithurlandextension_evalinbackgroundare blocked by Safari's MV3 background CSP.extension_inspecthas no Safari path. Apple'ssafari-mcpcan read a page in its own window beside the dev session; neither it nor this server can open the popup or background page, which stay Web Inspector, attended. -
Diagnose common issues Based on what you find, check for:
- "It didn't load": Check extension root count. If 0, content scripts may not be injecting. Check manifest
content_scriptsmatches patterns and the target URL. - Console errors: Report top errors. Common ones:
Uncaught TypeError, likely a missing import or wrong module formatContent Security Policy, extension CSP blocking inline scriptschrome.runtime.lastError, API permission missing
- Wrong page: Check if the content script
matchespattern in manifest covers the target URL - Shadow DOM empty: Extension root exists but shadow content is empty, likely a CSS or framework mounting issue
- "It didn't load": Check extension root count. If 0, content scripts may not be injecting. Check manifest
-
Suggest fixes based on the diagnosis
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago Changed · -1 lines 6674cc1d967d
- 9d ago Changed e3f526ee40b2
- 13d ago Changed 1a01b840bc91
- 24d ago Changed · +2 lines f7accb900b1f
- 1mo ago First seen · 53 lines · 13 tokens per session scan A f20e5900c6b7
extension-debug is a command published in the GitHub repository extensiondev/mcp (0 stars, last pushed today), licensed Apache-2.0. It adds 13 tokens to every session and 1,033 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
interactive-dev
Start a persistent interactive development session with natural language browser control, auto-error monitoring, and full dev tool access.
agentganggang
Use MultiAiPanel when you want Claude Code to compare one prompt across multiple supported AI chat tabs through the local MultiAiPanel MCP surface.
expect
Diff-aware AI browser testing — reads the git diff, maps changes to affected pages via the route map, generates a targeted test plan, and executes it via agent-browser (Rust daemon + CDP, ARIA-tree-first) with pass/fail reporting. Use when testing UI changes, verifying PRs before merge, or running regression checks on…
type-coverage
Vérification Couverture des Types Python.
debug
Diagnose Ansible playbook issues from symptoms.
AGENTS
Run the current binary in a temporary test repository with a real PTY. Use tmux-cli when available, capture terminal output, and inspect -vv logs when behavior depends on timing or shell state. Avoid treating a piped command as proof of interactive behavior.