# cdpm-mcp

CDP Manager - an MCP server that runs Chrome slots 1-30 over CDP so multiple Claude agents can share and drive them by number

- **Type:** MCP server
- **Trust:** 60/100 (B), scored on the package rubric
- **Verification:** community-indexed — nobody has claimed this listing
- **Version:** 0.1.9
- **Author:** IGELHARINE
- **License:** MIT
- **npm:** cdpm-mcp
- **Source:** https://github.com/IGELHARINE/CDPM
- **Compatible clients:** claude-code, cursor, copilot, gemini (basis: transport)

## Trust

60/100 (B), scored on the package rubric
- Publisher verified: no
- Install scripts: nothing suspicious found
- Prompt-injection scan: not run
- Obfuscation scan: not run
- Evidence age: 0 days

## Security scan

- **Status:** clean
- **Scanned:** 2026-10-21T01:32:03.419Z
- **Version scanned:** 0.1.9
- **CVEs:** none found by OSV at scan time

## Tools

36 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `browser_status` — Shows running Chrome slots (1-30) with their tabs, opener, last action and one-line summary. Pass slot for just that slot.
- `browser_launch` — Starts slot Chrome. Call only when the user explicitly asks (other tools never start a closed slot).
- `browser_close` — Closes slot Chrome cleanly (session and cookies saved). The profile (logins) is kept. Reports if another agent used it recently.
- `browser_tabs` — Slot tab list: number, ID, title, URL, opener, last action, per-tab summary (updated only by actions with summary). "·front" marks the tab currently in front in
- `browser_tab_new` — Opens a new tab in the slot and returns its ID. When agents share a slot, open your own tab and work only by its ID to avoid mixing.
- `browser_tab_close` — Closes a tab. tab is required.
- `browser_tab_select` — Brings a tab to the front of its Chrome window. Changes what the user sees, so use only when the user wants it. (Background tabs can be read, operated and captu
- `browser_snapshot` — Reads the tab as accessibility-tree text. Clickable/typable elements get refs like [e12].
- `browser_text` — Reads the page body text (main/article if present). With ref, only that element's text. Shorter and easier than a snapshot for articles/documents. Use page for 
- `browser_screenshot` — Captures the visible area of the tab as PNG, even background tabs (without switching). Never changes window size or viewport, so full-page capture is unsupporte
- `browser_navigate` — Navigates the tab to a URL and waits for the body to load.
- `browser_back` — Go back.
- `browser_forward` — Go forward (after going back).
- `browser_reload` — Reloads the page (same as Chrome reload). ignore_cache=true bypasses the cache. Careful: unsaved user input on the page is lost.
- `browser_dialog` — Accepts (accept: true) or dismisses (accept: false) an open dialog (alert/confirm/prompt/beforeunload). The tab is frozen while a dialog is open.
- `browser_permission` — Lists or answers Chrome permission bubbles ("site wants to: access other apps and services on this device / show notifications / know your location…").
- `browser_hover` — Moves the real mouse over a ref element (no click). For hover menus and tooltips. Use read=changes to see the opened menu.
- `browser_drag` — Drags with the real mouse (press → move in steps → release): drag and drop, sliders, reordering, drag CAPTCHAs, etc.
- `browser_download_wait` — Waits for the most recently started download to finish and returns the saved file path (user's Chrome download folder). Call after clicking the download button.
- `browser_pdf` — Saves the page as a PDF (receipts, articles, etc.). Without path, saves to the user's Downloads folder named after the page title. Doesn't change the screen or 
- `browser_click` — Clicks a ref element with real mouse events. If another element covers it, doesn't click and reports it. Waits for loading if the click navigates; reports new t
- `browser_type` — Types text into a ref element, sending real key events (keydown/keypress/input/keyup) per character like a human.
- `browser_fill` — Fills several inputs on the same page in order (each cleared, typed with real key events, value verified).
- `browser_upload` — Puts files into a file input (no OS file picker shown to the user). Give ref of the file input (<input type=file> or its label), or
- `browser_select` — Picks an option in a <select> dropdown (by value or visible text; partial match OK). Focuses the dropdown and moves with keys (arrow keys on Windows/Linux, typi
- `browser_press_key`
- `browser_scroll` — Scrolls a ref element into view, or by dy pixels (positive = down, negative = up, default 600). Reports the actual resulting position.
- `browser_wait` — Waits until text appears; gone: that text disappears; url: the URL changes; enabled: that button/input becomes enabled;
- `browser_eval` — Evaluates a JavaScript expression in the tab and returns the result as JSON. Escape hatch only when other tools can't do it.
- `browser_network` — Tab network request list (newest at bottom). Records the latest 500 since CDPM first attached to the tab. Filter with filter (URL part), type (Document, XHR, Fe
- `browser_network_detail` — Shows one request's headers, sent data and response body (start of it, if text). id is the n-number from browser_network.
- `browser_block` — Blocks tab network requests matching URL patterns (they fail). add adds, remove removes, clear removes all rules you set.
- `slot_pause` — Use only when the user says to pause (e.g. "pause 3"); agents never call it on their own. All action tools on the slot are refused and any browser_wait in progr
- `slot_resume` — Use only when the user says to resume (e.g. "continue 3"); the agent owning a paused slot never calls it on its own. Unpauses and messages every agent on the sl
- `slot_send` — Sends a message to other agents (real-time collaboration). slot = the slot the recipient owns (to reach another slot's agent, use that slot number). Omit to to 
- `slot_inbox` — Shows your unread messages. With wait (seconds), waits up to that long for a new message (for real-time conversation).

## Install

**Verdict: review** — Installable, but 1 thing to check first: No publisher has proved control of this listing; it is indexed, not vouched for.
**Cautions** (coverage gaps and advisories — never blocking)
- No publisher has proved control of this listing; it is indexed, not vouched for.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"cdpm\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"cdpm-mcp\"\n      ]\n    }\n  }\n}"
```

## Blast radius

Extensive to critical — no credential declaration found, from the publisher, the upstream registry, or the README. Known so far: runs commands; runs on your machine.
- Floor 45, ceiling 73 (tier: unknown)
- `unknown` means the floor and ceiling land in different bands — not measured enough to name one. It does not mean low.
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/cdpm-mcp
- Install plan: https://forgeregistry.com/api/v1/packages/cdpm-mcp/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/cdpm-mcp
- HTML page: https://forgeregistry.com/registry/cdpm-mcp
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
