Cdp Toolkit logo

Cdp Toolkit

Drive named Chrome or Firefox tabs over MCP with bounded command timeouts, tab leases, screenshots, and network mocking.

Install Cdp Toolkit

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "cdp-toolkit": {
      "command": "npx",
      "args": [
        "-y",
        "--package",
        "cdp-toolkit",
        "cdp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Install not yet sandbox-tested— we haven't run this command through our automated sandbox yet. Not a red flag; we're working through the catalog.

Overview

cdp-toolkit MCP server drives explicitly selected browser tabs through Chrome DevTools Protocol or Firefox WebDriver BiDi. Each call opens one direct connection to one resolved target, enables only needed domains, applies a command timeout, and closes the connection afterward. It exposes everyday browser actions such as navigation, clicking, typing, page inspection, screenshots, script evaluation, and persistent network mocking, with additional tools available through discovery. Reach for it when agents need reliable control of known tabs, especially when several agents share one browser or a stalled page must not block the MCP server.

Use cases

  • Drive a named Chrome tab from an MCP-compatible coding agent
  • Mock API responses while testing a frontend
  • Coordinate multiple agents sharing one browser
  • Capture screenshots and inspect pages for test evidence
  • Recover from stalled browser commands without restarting MCP

Key features

  • Direct per-target CDP WebSocket connections
  • Firefox WebDriver BiDi backend
  • Bounded per-command timeouts
  • Persistent per-target network mocking
  • Tab leases for shared browser access
  • Progressive tool discovery with 48 tools

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 2d ago

Recent health check succeeded.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 2d ago via OSV.dev · cdp-toolkit (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars1Stargazers on the source repository.
npm downloads2.8kPackage downloads in the last 30 days.
Last commit6d agoMost recent push to the default branch.

How Cdp Toolkit works

What cdp-toolkit does

cdp-toolkit gives MCP-compatible agents and a command-line client direct control of browser tabs that the user identifies. Targets can be selected as the active tab, an index, a URL, or a title. Chrome is the primary backend, while Firefox is supported through WebDriver BiDi behind the same tool interface.

The server is designed for tasks where the agent already knows which page to operate. It does not manage a Puppeteer browser or broadcast every operation to all attached targets. Multiple tabs can still be driven across separate calls, and tab leases help multiple agents share one browser without taking control of each other’s tabs. The lease state also indicates when a human is using a tab.

A built-in fake backend can persist mocked network responses for a target, which is useful for exercising a UI before its real API is available.

How it works

Each operation resolves one named target and creates a direct WebSocket connection for that call. The connection is closed when the call finishes, preventing state from leaking between tabs. CDP domains are enabled only when a tool needs them rather than eagerly at connection time.

Every command has a bounded timeout. The default is 15 seconds, configurable with CDP_TIMEOUT_MS. If a renderer or endpoint stops responding, the operation returns an error instead of leaving the agent or MCP process waiting indefinitely. The affected page may remain unresponsive until it is closed, but other tabs and the server can continue operating.

The MCP listing uses progressive disclosure: seven static entries expose five common tools plus search_tools and call_tool. The latter two locate and invoke the broader tool set. Setting CDP_TOOL_PROFILE=full exposes all 48 tools in the listing instead.

Setup and configuration

The package requires Node.js 22 or newer, or Bun 1.1 or newer. The interactive installer can register the server with Claude Code, Codex, or OpenCode, configure a browser and debugging port, and optionally add a shell alias. It supports Chrome, Arc, Firefox, and Vivaldi as installer browser choices.

For a manual Chrome setup, start the browser with remote debugging enabled, then register the stdio server with an MCP host. For example:

Terminal
claude mcp add cdp-toolkit --scope user -- npx -y cdp-toolkit

The package can also be invoked directly through its CLI:

Terminal
npx -y --package cdp-toolkit cdp list_pages
npx -y --package cdp-toolkit cdp navigate_page --target index:0 --url https://example.com

Chrome is connected lazily when a call is made, so the server can start before the browser is running. Firefox’s generated launcher includes the Marionette option needed for orphaned-session recovery.

Tools and capabilities

  • List available pages and resolve targets by activity, index, URL, or title.
  • Navigate pages, click elements, enter text, inspect page content, and evaluate scripts.
  • Capture screenshots for visual checks and evidence gathering.
  • Mock network responses with a persistent fake backend scoped to a target.
  • Coordinate shared browser access with tab leases.
  • Discover and call the extended tool set through search_tools and call_tool.
  • Run the same tool surface from MCP hosts or the standalone CLI.

Limitations and notes

Operations are single-shot rather than wrapped in Puppeteer-style auto-wait and retry behavior. Callers should re-snapshot between steps when page state changes. The design is intended for explicitly selected tabs, not autonomous fan-out across every open target.

Safari and WebKit are not supported. A page stuck during navigation can remain blocked until that tab is closed and reopened, although the MCP server and other tabs remain available. The server uses stateless backendDOMNodeId element references that are resolved when needed rather than retaining a server-side handle table.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Cdp Toolkit

cdp-toolkit is an MCP server that connects AI agents to named Chrome tabs through the Chrome DevTools Protocol and to Firefox through WebDriver BiDi. Its main tools cover page listing, navigation, clicking, typing, screenshots, script evaluation, network mocking, and discovery of the broader tool set.

Install it with the interactive `cdp install` command or register `npx -y cdp-toolkit` as a stdio MCP server. The installer can configure Claude Code, Codex, or OpenCode and create a browser-launching shell alias. Manual Chrome setup requires starting the browser with remote debugging enabled.

Yes, cdp-toolkit is intended for Cursor and other MCP hosts. Register the package as a standard stdio MCP server, then use the namespaced tools exposed by the host, such as `mcp__cdp-toolkit__list_pages`.

It applies a timeout to every command and returns an error when the operation exceeds the bound. Each call uses one direct connection to one target, so an unresponsive page does not block unrelated tabs or require an MCP server restart. The default timeout is 15 seconds and can be changed with `CDP_TIMEOUT_MS`.

Yes, cdp-toolkit includes a persistent fake network backend scoped to a target. It can supply mocked responses while an agent exercises a UI before the real backend is available.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewCdp Toolkit AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/cdp-toolkit?style=directory)](https://allmcps.com/mcp/cdp-toolkit)
HTML Embed
<a href="https://allmcps.com/mcp/cdp-toolkit"><img src="https://allmcps.com/api/badge/cdp-toolkit?style=directory" alt="Cdp Toolkit on AllMCPs" /></a>