Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.dynamicupgrade/chromedebug

NPM · @DYNAMICU/CHROMEDEBUG-MCP

Record browser bugs - frames, clicks and console logs - and hand them to your AI over MCP.

+3 this week 65 Trust /100

Last scanned (3 hours ago)

Scores higher than 33% of npm servers

Category Browser Automation

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security74
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects adm-zip 0.5.18, a direct dependency. A fixed version is available. View diagnostics → Fail
  • Declares code that runs automatically (postinstall) and that we could not recognise. It may be perfectly ordinary, but we have not established what it does. View diagnostics → Partial
  • 97 of 303 dependencies flagged as unhealthy (2 deprecated). View diagnostics → Partial
Provenance & Transparency19
Schema Quality & AI Usability69
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 2948 tokens (~70/item across 42 items; 42 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management73
  • Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "execute_js_on_selected" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 42 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Oct 26 +1
    • CVE-2026-118773 affects this package: high ▼ security
    • CVE-2026-118764 affects this package: high ▼ security
  • 28 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 26 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 24 Oct 26 +1
    • CVE-2023-54404 affects this package: high ▼ security
  • 22 Oct 26 +4
    • CVE-2026-114104 affects this package: high ▼ security
    • CVE-2026-114102 affects this package: high ▼ security
    • CVE-2026-114103 affects this package: high ▼ security
    • GHSA-8238-w5pm-2374 no longer affects this package ▲ security
    • GHSA-c6fg-446q-cg94 no longer affects this package ▲ security
    • GHSA-p634-w6r4-rjp2 no longer affects this package ▲ security
    • Stability: unverified → 0.27 ▲ functional
  • 14 Oct 26 +29
    • Injection markers: unverified → pass ▲ security
    • First check of Judged manipulation: pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Tool coverage: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • First check of Schema quality: fail functional
    • First check of Destructive annotations: 0 functional
    • First check of Schema quality: pass functional
    • First check of Schema quality: good functional
    • First check of Tool coverage: 100 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/@dynamicu/chromedebug-mcp@2.9.6

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
postinstall unreviewed npm run update-extension-config && node scripts/postinstall.js

Background: Why install scripts are a supply-chain risk →

Vulnerabilities 14 findings
ID CVE Severity Vector Fix available
GHSA-7q85-xj36-vmfc CVE-2026-77301 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-8238-w5pm-2374 CVE-2026-114102 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-c6fg-446q-cg94 CVE-2026-114103 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
GHSA-j5f4-cc29-5x44 CVE-2026-102282 high CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N yes
GHSA-p634-w6r4-rjp2 CVE-2026-114104 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N yes
GHSA-rcw4-f5rp-g42v CVE-2026-92000 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-vwc7-r8mq-g2x9 CVE-2026-76845 medium CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:N no
GHSA-xcpc-8h2w-3j85 CVE-2026-39244 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-c475-qrg2-pj4r CVE-2026-102990 high yes
GHSA-7pqw-9j4j-h8q3 CVE-2026-19693 high CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H no
GHSA-jmr9-qjv8-65gv CVE-2026-56876 high CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N no
GHSA-3g3m-2fjr-6pw4 CVE-2026-118773 medium yes
GHSA-g3hv-75wg-m249 CVE-2026-118764 medium yes
GHSA-mrhx-c7xc-m3w5 CVE-2023-54404 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 303 packages
Packages resolved 303
Deprecated 2
Stale 95
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 42 exposed · ~2,948 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
apply_css_to_selected ~30

Apply CSS styles to the currently selected element

NameTypeReqDescription
cssstringyesCSS rules to apply

No output schema declared.

No examples provided.

capture_screenshot ~130

Capture a screenshot of the current page via Puppeteer. Supports current viewport, full page, or a specific CSS selector section. Higher quality than the AI-optimized take_screenshot tool. mode:'section' REQUIRES a selector and errors without one.

NameTypeReqDescription
modestring–Capture mode: current_view (viewport only), full_page (entire scrollable page), section (specific element)
qualitynumber–JPEG quality 1-100 (default: 90)
selectorstring–CSS selector for section mode (e.g., "#main-content", ".hero-section")

No output schema declared.

No examples provided.

check_connection ~14

Check if Chrome is connected

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

chromedebug_show_frames ~208

Display frame recording information in a compact format optimized for MCP tools. Shows frame metadata, console logs, and timestamps without including large image data. If the session is absent AND this server holds a stale database file, it fails with that reason instead of reporting a plain not-found, which would describe this process rather than your data.

NameTypeReqDescription
logLevelstring–Filter logs by level: error, warn, info, debug, log, or all (default: all)
maxFramesnumber–Maximum number of frames to display (default: 10)
maxLogsPerFramenumber–Maximum number of logs to show per frame (default: 10). Use 0 for no limit.
sessionIdstringyesThe frame session ID to display
showInteractionsboolean–Whether to show user interactions for each frame (default: true)
showLogsboolean–Whether to show console logs for each frame (default: true)

No output schema declared.

No examples provided.

clear_selected_element ~15

Clear the currently selected element

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

connect_to_existing_chrome ~41

Connect to an existing Chrome instance with debugging enabled

NameTypeReqDescription
portnumber–Debugging port Chrome is running on (default: 9222)

No output schema declared.

No examples provided.

evaluate_expression ~28

Evaluate a JavaScript expression in Chrome

NameTypeReqDescription
expressionstringyesJavaScript expression to evaluate

No output schema declared.

No examples provided.

execute_js_on_selected ~43

Execute JavaScript code on the currently selected element

NameTypeReqDescription
codestringyesJavaScript code to execute. The element is available as the "element" variable.

No output schema declared.

No examples provided.

force_reset ~19

Force reset Chrome by killing all processes and clearing state

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_frame ~119

Get a specific frame from a frame capture session

NameTypeReqDescription
frameIndexnumberyesThe frame index to retrieve (0-based)
logLevelstring–Filter logs by level: error, warn, info, debug, log, or all (default: all)
maxLogsnumber–Maximum number of logs to show (default: 20). Use 0 for no limit.
searchLogsstring–Search for specific text in log messages (case insensitive)
sessionIdstringyesThe frame session ID

No output schema declared.

No examples provided.

get_frame_logs_paginated ~140

Get logs for a specific frame with pagination to handle large log volumes

NameTypeReqDescription
frameIndexnumberyesThe frame index to retrieve logs from (0-based)
limitnumber–Maximum number of logs to return (default: 100)
logLevelstring–Filter by log level: error, warn, info, debug, log, or all (default: all)
offsetnumber–Number of logs to skip (for pagination, default: 0)
searchTextstring–Search for specific text in log messages (case insensitive)
sessionIdstringyesThe frame session ID

No output schema declared.

No examples provided.

get_frame_screenshot ~166

Get the screenshot image data for a specific frame as base64 encoded string. If the user drew on the frame, this returns the MARKED-UP image, with each shape numbered, and returns their notes as text in `notes` ([{shape, type, note}]) keyed to those numbers - the drawing says where, the note says what. Pass original: true for the clean frame underneath.

NameTypeReqDescription
frameIndexnumberyesThe frame index to retrieve screenshot from (0-based)
includeMetadataboolean–Include image metadata like size and format (default: false)
originalboolean–Return the CLEAN frame instead of the marked-up one, for looking under a drawing (default: false)
sessionIdstringyesThe frame session ID

No output schema declared.

No examples provided.

get_frame_session_info ~134

Get information about a frame capture session including total frames and timestamps, and `annotatedFrames` - the frames a user drew on or left a note about, which is where to look first. Reports dbPath and dbFile (ok|missing|replaced|unknown) and warns when the session was read out of a stale handle: replaced means frames recorded since the swap are elsewhere, missing means these rows are freed when this process exits. If the session is absent AND the handle is stale it fails rather than saying not found.

NameTypeReqDescription
sessionIdstringyesThe frame session ID returned when recording was saved

No output schema declared.

No examples provided.

get_logs ~13

Get recent console logs

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_page_content ~93

Get the content of the current page including text, HTML, and DOM structure. Useful for checking if specific content exists without taking a screenshot.

NameTypeReqDescription
includeHtmlboolean–Include full HTML source (default: false, can be large)
includeStructureboolean–Include DOM structure with important elements and attributes (default: true)
includeTextboolean–Include extracted text content (default: true)

No output schema declared.

No examples provided.

get_scopes ~18

Get scope variables from the top call frame

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_screen_interactions ~47

Get all user interactions (clicks, inputs, keypresses, scrolls) recorded during a screen recording session

NameTypeReqDescription
sessionIdstringyesThe screen recording session ID

No output schema declared.

No examples provided.

get_screenshot_capture ~43

Retrieve a previously saved screenshot capture by its ID. Returns the base64 image data.

NameTypeReqDescription
captureIdstringyesThe ID of the screenshot capture to retrieve

No output schema declared.

No examples provided.

get_selected_element ~20

Get information about the currently selected element from Chrome extension

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_workflow_actions_filtered ~126

Get filtered workflow actions by action type, with pagination. Screenshot bytes are replaced by hasScreenshot/actionIndex; pass that actionIndex to get_workflow_screenshot to view one image.

NameTypeReqDescription
actionTypesarray–Filter by action types (e.g., ["click", "input", "function-trace"])
includeDetailsboolean–Include full action details (default: false)
limitnumber–Maximum number of actions to return
sessionIdstringyesThe workflow session ID
startIndexnumber–Start index for pagination

No output schema declared.

No examples provided.

get_workflow_errors ~74

Get only error logs and error-related actions from a workflow. Screenshot bytes are replaced by hasScreenshot/actionIndex; pass that actionIndex to get_workflow_screenshot to view one image.

NameTypeReqDescription
includeWarningsboolean–Include warning logs (default: false)
sessionIdstringyesThe workflow session ID

No output schema declared.

No examples provided.

get_workflow_function_traces ~136

NOT AVAILABLE: function tracing does not ship, so this always returns an empty list - it is not a finding about the page. Kept only so an older recording that contains traces can still be read. Use get_workflow_summary, get_workflow_errors or chromedebug_show_frames instead. Screenshot bytes are replaced by hasScreenshot/actionIndex; pass that actionIndex to get_workflow_screenshot to view one image.

NameTypeReqDescription
includeStackboolean–Include stack traces (default: false)
limitnumber–Maximum number of traces to return
sessionIdstringyesThe workflow session ID

No output schema declared.

No examples provided.

get_workflow_recording ~66

Get a complete workflow recording including actions and optional logs. WARNING: can be very large. Screenshot bytes are replaced by hasScreenshot/actionIndex; pass that actionIndex to get_workflow_screenshot to view one image.

NameTypeReqDescription
sessionIdstringyesThe workflow session ID

No output schema declared.

No examples provided.

get_workflow_screenshot ~99

Get the screenshot image data for a single workflow action as base64. The workflow tools return hasScreenshot/actionIndex instead of the bytes; call this with that actionIndex to view one image.

NameTypeReqDescription
actionIndexnumberyesThe action index to retrieve the screenshot from (0-based)
includeMetadataboolean–Include image metadata like size and format (default: false)
sessionIdstringyesThe workflow session ID

No output schema declared.

No examples provided.

get_workflow_summary ~31

Get a concise summary of a workflow recording

NameTypeReqDescription
sessionIdstringyesThe workflow session ID

No output schema declared.

No examples provided.

launch_chrome ~19

Launch a Chrome browser instance for this MCP server

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_frame_sessions ~205

List saved screen/video recordings (frame capture sessions), newest first, with their session IDs. Use this FIRST when you do not already have a session ID - the IDs it returns are what chromedebug_show_frames, get_frame_session_info, get_frame, get_frame_screenshot and search_frame_logs all take. Workflow and click-to-capture screenshot recordings are stored separately; list those with list_workflow_recordings. The response carries dbPath and dbFile, which describe THIS server's own database handle (ok | missing | replaced | unknown) and say nothing about other servers - an empty list with dbFile 'ok' can still mean another server holds your recordings. This tool fails rather than returning an empty list when its handle is stale.

NameTypeReqDescription
limitnumber–Maximum sessions to return (default: 50). Use 0 for no limit.
offsetnumber–Number of sessions to skip, for paging through a long list (default: 0).

No output schema declared.

No examples provided.

list_restore_points ~33

List all restore points for a workflow

NameTypeReqDescription
workflowIdstringyesThe workflow ID to get restore points for

No output schema declared.

No examples provided.

list_screenshot_captures ~53

List all saved screenshot captures. Returns metadata (ID, mode, URL, timestamp) without image data for efficiency.

NameTypeReqDescription
limitnumber–Maximum number of captures to return (default: 20)

No output schema declared.

No examples provided.

list_workflow_recordings ~97

List all workflow recordings stored in the database. Reports dbPath and dbFile (ok|missing|replaced|unknown), the file this server actually holds. A query on a deleted handle succeeds and returns nothing, so when dbFile is missing/replaced this THROWS rather than returning an empty list, and returns rows with a warning when it has some. Screen and video recordings are a separate table - see list_frame_sessions.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

navigate_to ~24

Navigate to a URL

NameTypeReqDescription
urlstringyesURL to navigate to

No output schema declared.

No examples provided.

pause_execution ~12

Pause Chrome execution

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

play_workflow_by_name ~64

Play a workflow recording by its name

NameTypeReqDescription
namestringyesThe name of the workflow recording to play
speednumber–Playback speed multiplier (1 = normal, 2 = 2x faster, 0.5 = half speed)

No output schema declared.

No examples provided.

play_workflow_recording ~65

Play a workflow recording by executing all recorded actions

NameTypeReqDescription
sessionIdstringyesThe workflow session ID to play
speednumber–Playback speed multiplier (1 = normal, 2 = 2x faster, 0.5 = half speed)

No output schema declared.

No examples provided.

restore_from_point ~37

Restore the browser to a previously saved restore point

NameTypeReqDescription
restorePointIdstringyesThe ID of the restore point to restore from

No output schema declared.

No examples provided.

resume_execution ~12

Resume Chrome execution

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

save_restore_point ~78

Save a restore point for the current browser state including DOM, form values, storage, and cookies

NameTypeReqDescription
actionIndexnumber–The action index in the workflow where this restore point was created
descriptionstring–Optional description of this restore point
workflowIdstringyesThe workflow ID this restore point belongs to

No output schema declared.

No examples provided.

search_frame_logs ~102

Search for specific logs across all frames in a recording session

NameTypeReqDescription
logLevelstring–Filter by log level: error, warn, info, debug, log, or all (default: all)
maxResultsnumber–Maximum number of matching logs to return (default: 50)
searchTextstringyesText to search for in log messages (case insensitive)
sessionIdstringyesThe frame session ID to search

No output schema declared.

No examples provided.

select_element ~135

Select a DOM element by CSS selector so the apply_css_to_selected, execute_js_on_selected and get_selected_element tools have a target. Requires Chrome: call launch_chrome or connect_to_existing_chrome first. Note the two mutating tools differ in reach - apply_css_to_selected injects a stylesheet rule, so it affects EVERY element matching the selector, while execute_js_on_selected runs against the FIRST match only. A selector that does not match clears the selection rather than leaving the previous one in place.

NameTypeReqDescription
selectorstringyesCSS selector for the element to select, e.g. "#submit" or ".row .qty".

No output schema declared.

No examples provided.

set_breakpoint ~43

Set a breakpoint at a specific URL and line

NameTypeReqDescription
lineNumbernumberyesLine number for the breakpoint
urlstringyesURL of the script

No output schema declared.

No examples provided.

step_over ~14

Step over in Chrome debugger

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

take_screenshot ~102

Take a screenshot optimized for AI processing

NameTypeReqDescription
fullPageboolean–Capture full page (default: true, but limited to 600px height for AI)
lowResboolean–Low-resolution mode for AI (default: true)
pathstring–Save screenshot to file path
qualitynumber–JPEG quality (1-100, default: 30)
typestring–Image type (default: jpeg)

No output schema declared.

No examples provided.

Install

How do I install the io.github.dynamicupgrade/chromedebug MCP server?

io.github.dynamicupgrade/chromedebug runs locally as an npm package, launched with npx -y @dynamicu/chromedebug-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @dynamicu/chromedebug-mcp

# add to Claude Code
claude mcp add dynamicupgrade-chromedebug -- npx -y @dynamicu/chromedebug-mcp
Common questions

What is the io.github.dynamicupgrade/chromedebug MCP server?

io.github.dynamicupgrade/chromedebug is an MCP server listed in the public MCP registry as io.github.dynamicupgrade/chromedebug. Record browser bugs - frames, clicks and console logs - and hand them to your AI over MCP. This page covers its npm package (@dynamicu/chromedebug-mcp).

Is the io.github.dynamicupgrade/chromedebug MCP server safe to use?

io.github.dynamicupgrade/chromedebug scores 65 out of 100 on VerifyMCP. We recorded 14 known advisories against it as of 5 November 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.dynamicupgrade/chromedebug MCP server expose?

io.github.dynamicupgrade/chromedebug exposes 42 tools: launch_chrome, connect_to_existing_chrome, navigate_to, pause_execution, resume_execution, and 37 more. Their descriptions and schemas cost roughly 2,948 tokens of context every time the server is loaded.

Is the io.github.dynamicupgrade/chromedebug MCP server still maintained?

io.github.dynamicupgrade/chromedebug is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.dynamicupgrade/chromedebug MCP server under?

io.github.dynamicupgrade/chromedebug declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.