Skip to main content
Private BetaContact us to get set up with the Char Extension.
The Char Extension exposes tools from web pages via content scripts. Chrome DevTools MCP provides two tools — list_extension_tools and call_extension_tool — that let you discover and call those tools directly from Claude Code.

Prerequisites

  1. Chrome DevTools MCP installed (setup guide)
  2. Char Extension installed and active
  3. Chrome launched with remote debugging:
# macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
# Linux
google-chrome --remote-debugging-port=9222
# Windows
chrome.exe --remote-debugging-port=9222
Chrome must be started with --remote-debugging-port=9222 before any other Chrome windows are open. If Chrome is already running, quit it fully first.

Install Chrome DevTools MCP

If you’re using the Char plugin, it’s already configured. Otherwise install manually:
claude mcp add chrome-devtools npx -y @mcp-b/chrome-devtools-mcp@latest
Verify with /mcp — you should see chrome-devtools listed.
Chrome DevTools MCP uses our maintained fork: @mcp-b/chrome-devtools-mcp. Source: WebMCP-org/npm-packages.

Discover extension tools

Navigate to a page that has WebMCP tools registered, then list what the extension sees:
Use navigate_page to go to https://your-app.com
Then use list_extension_tools
list_extension_tools queries the extension’s service worker for all tools registered across all tabs. It returns tool names, descriptions, and input schemas. Use summary: true for a compact listing:
Use list_extension_tools with summary: true

Call extension tools

Once you know a tool name, call it:
Use call_extension_tool with name "get_current_context"
Pass arguments as a JSON object:
Use call_extension_tool with name "navigate" and arguments { "to": "/dashboard" }

How it works

Both tools use evaluate_in_extension_worker internally — they run JavaScript in the extension’s background service worker via Chrome DevTools Protocol. No separate MCP server or persistent connection is needed. Each call is stateless. The extension doesn’t need any special configuration — list_extension_tools reads from the McpHub’s in-memory tool registry, and call_extension_tool routes through the same content script bridge that the sidepanel uses.

Extension tools vs WebMCP tools

Chrome DevTools MCP has two parallel tool paths:
Extension toolsWebMCP tools
Listlist_extension_toolslist_webmcp_tools
Callcall_extension_toolcall_webmcp_tool
How it worksGoes through the extension service workerInjects directly into page via CDP
Bot detectionPages stay clean — no navigator.webdriver flagCDP page attachment may trigger bot detection
RequiresChar Extension installedNothing — works on any page
Tool sourceContent scripts + user scripts@mcp-b/global polyfill on the page
Use extension tools when the Char Extension is active and you want clean, non-detectable tool execution. Use WebMCP tools when testing on pages without the extension.

Debugging

Check extension state

Use evaluate_in_extension_worker to inspect the extension directly:
Use evaluate_in_extension_worker with expression "globalThis.charExtension?.lifecycleState"
Use evaluate_in_extension_worker with expression "globalThis.charExtension?.hub?.getSerializableTools()?.length"

No tools found

If list_extension_tools returns empty:
  1. Is the extension active? Check chrome://extensions — the Char Extension should be enabled
  2. Is the page loaded? Navigate to the page first, then wait for it to load
  3. Does the page have tools? Not all pages register WebMCP tools. The page needs @mcp-b/global or a user script that calls registerTool()
  4. Content script connected? Check the extension service worker console at chrome://extensions → Char → “Inspect views: service worker”

Tool call fails

If call_extension_tool returns an error:
  1. Check the tool name — Use the exact name from list_extension_tools, not the prefixed MCP tool name
  2. Check arguments — Use list_extension_tools (without summary) to see the full input schema
  3. Tab still open? If the tab was closed, cached tools may fail. Navigate back to the page

See also

Char Extension

Extension overview

User Scripts

Write scripts that inject tools

MCP Servers

Install Chrome DevTools MCP

WebMCP Tools

Tools in applications you control