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.Dayananda-D/devcdp

NPM · DEVCDP

Chrome DevTools for AI assistants: console, network, DOM, source maps, breakpoints, live variables.

Available components

+2 this week 84 Trust /100

Last scanned (23 hours ago)

Scores higher than 83% 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 Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability76
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 9569 tokens (~129/item across 74 items; 74 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management97
  • Stability observed for 29 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 Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 74 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.

  • 16 Oct 26 +1

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

  • 14 Oct 26 +1

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

  • 13 Oct 26 0
    • Security disclosure: unverified → fail ▼ functional
  • 12 Oct 26 +16
    • Malware scan: unverified → pass ▲ security
  • 11 Oct 26 −16
    • Malware scan: pass → unverified ▼ security
    • Security disclosure: fail → unverified ▼ functional
  • 4 Oct 26 +1

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

  • 2 Oct 26 +1

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

  • 30 Sept 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.

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 16 Oct 2026 · Analysed npm/devcdp@5.0.1

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 →

Dependencies 95 packages
Packages resolved 95
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 74 exposed · ~9,569 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
api_discover ~115

Build a map of the backend the page actually talks to: endpoints grouped with ids collapsed, call counts, status codes, timings and failures — plus an OpenAPI/Swagger specification if the server publishes one at a standard path. Use it to understand the API surface, and to see at a glance which calls are failing.

NameTypeReqDescription
include_staticboolean–Include scripts, styles, images and fonts, not just data calls.
probe_openapiboolean–Also try standard OpenAPI discovery paths on the page's origin.

No output schema declared.

No examples provided.

app_discover ~65

Ask the running page what it is: which UI libraries it uses, how it routes, how many frames it has, and its actual interactive surface — visible buttons, fields, grids and tabs with working selectors. Call this once before driving an unfamiliar app, instead of guessing selectors.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

console_clear ~39

Empty the console buffer so that what you read next belongs only to the action you are about to take. Does not touch the browser's own console display.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

console_evaluate ~117

Run a JavaScript expression in the page and return its value. On failure returns the full exception detail (message, 1-based line and column, URL, stack). Use it to read app state; use debugger_evaluate_at_frame instead when you are paused and need a local variable.

NameTypeReqDescription
await_promiseboolean–Await the result if the expression returns a promise.
expressionstringyesJavaScript to evaluate in the page's main frame.
timeout_msnumber–Abandon the evaluation after this long.

No output schema declared.

No examples provided.

console_get_logs ~170

Read console output captured since attach: logs, warnings, uncaught exceptions with file, line and stack. Pass cursor=nextCursor from a previous call to get only what is new. Note that Chrome does not replay messages logged before DevCDP attached — reproduce the action or call page_reload to see those.

NameTypeReqDescription
clearboolean–Empty the buffer after reading.
cursornumber–Return only entries with seq greater than this. 0 for everything held.
include_agentboolean–Include DevCDP's own diagnostics, normally hidden so they cannot be mistaken for app errors.
levelstring–Only this level.
limitnumber–Maximum entries to return (most recent first in the buffer order).
sincestring–ISO timestamp lower bound.

No output schema declared.

No examples provided.

debugger_evaluate_at_frame ~95

Evaluate an expression in the scope of a paused call frame, so local variables and closures are in scope. This is how you confirm a hypothesis with a real value rather than inferring one.

NameTypeReqDescription
depthnumber–How deep to expand an object result.
expressionstringyesJavaScript evaluated in the frame's scope.
frame_indexnumber–Which frame; 0 is innermost.

No output schema declared.

No examples provided.

debugger_get_capture ~64

Everything captured automatically at the last breakpoint hit — scope for the top frames, recent console output and recent network requests — in one call instead of four. Tells you whether the pause is still current or has already resumed, so a stale snapshot is never mistaken for live state.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

debugger_get_scope ~134

Read the variables in scope at a paused call frame, with objects and arrays expanded rather than printed as 'Object'. Includes `this`. Anything omitted for size is explicitly marked, so you never have to guess whether you saw the whole value.

NameTypeReqDescription
depthnumber–How many levels of nested objects to expand. 3 covers object → array → record.
frame_indexnumber–0 is the innermost frame; see debugger_get_state for the stack.
include_globalboolean–Include the global scope (thousands of properties).
max_propertiesnumber–Maximum properties per object.

No output schema declared.

No examples provided.

debugger_get_state ~43

Where execution is paused right now: the reason, and the full call stack with function names and 1-based file positions. Returns paused:false when the page is running.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

debugger_list_breakpoints ~49

List the breakpoints DevCDP has set, including whether each is actually bound to executable code. An unbound breakpoint will never fire — check here first when a breakpoint 'is not hitting'.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

debugger_pause ~64

Pause JavaScript execution at the next statement the page runs, and hold it so you can inspect and step. The page is frozen while held, so DevCDP releases it automatically after maxPauseMs if you have not resumed — no human ever has to press resume in Chrome.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

debugger_remove_all_breakpoints ~49

Remove every breakpoint DevCDP set, and resume the page if it is currently paused. Call this before handing the browser back to a human, so they do not find a frozen app.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

debugger_remove_breakpoint ~46

Remove one breakpoint by its breakpointId. Use debugger_remove_all_breakpoints to clear them in one call.

NameTypeReqDescription
breakpoint_idstringyesbreakpointId from debugger_set_breakpoint.

No output schema declared.

No examples provided.

debugger_resume ~45

Resume execution and drop any hold. Breakpoints resume themselves by default, so this is only needed after an explicit pause, after stepping, or after a breakpoint set with auto_resume:false.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

debugger_set_breakpoint ~223

Set a breakpoint and report honestly whether Chrome could bind it. Accepts either a loaded script URL (a substring is resolved to the exact script) or an original pre-bundling file path, which is translated through the source map. Set auto_resume:true when the action is being driven by an automation tool, so the page does not stay frozen and time that action out.

NameTypeReqDescription
auto_resumeboolean–Default true: capture scope/console/network on hit, then resume, so the page is never left frozen and the action that tripped it completes. Pass false to hold the pause for stepping; released after m…
columnnumber–1-based column, when several statements share a line.
conditionstring–JavaScript condition — pause only when it is truthy, e.g. 'id === 42'.
linenumberyes1-based line number, as shown by source_get_script / source_get_file.
urlstringyesScript URL, URL substring, or original source path.

No output schema declared.

No examples provided.

debugger_set_breakpoint_at_function ~209

Set a breakpoint on a function you can name, without knowing which file it lives in. Give any expression that evaluates to a function — 'app.saveOrder', 'MyClass.prototype.load', a framework helper — and DevCDP finds its definition and breaks at its first statement. Use this when you know what runs but not where it is defined; use debugger_set_breakpoint when you already have a file and line.

NameTypeReqDescription
auto_resumeboolean–Default true: capture scope/console/network on hit, then resume, so the page is never left frozen and the action that tripped it completes. Pass false to hold the pause for stepping; released after m…
conditionstring–JavaScript condition — pause only when it is truthy, e.g. 'id === 42'.
function_expressionstringyesJavaScript evaluating to the function itself — no call parentheses. For example 'app.store.save', not 'app.store.save()'.

No output schema declared.

No examples provided.

debugger_step_into ~74

Step into from the current pause and stop at the next statement. Stepping implies you want the pause held, so it will not auto-resume between steps — but it is still released automatically after maxPauseMs if you stop. The new location and scope are available from debugger_get_state and debugger_get_scope once it settles.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

debugger_step_out ~74

Step out from the current pause and stop at the next statement. Stepping implies you want the pause held, so it will not auto-resume between steps — but it is still released automatically after maxPauseMs if you stop. The new location and scope are available from debugger_get_state and debugger_get_scope once it settles.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

debugger_step_over ~74

Step over from the current pause and stop at the next statement. Stepping implies you want the pause held, so it will not auto-resume between steps — but it is still released automatically after maxPauseMs if you stop. The new location and scope are available from debugger_get_state and debugger_get_scope once it settles.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

devcdp_settings ~99

Show every DevCDP setting: its effective value, where that value came from (default, which settings file, or which environment variable), which files were searched and loaded, and any that failed to parse or were not recognised. Use it before changing configuration, and to check a change actually took effect.

NameTypeReqDescription
changed_onlyboolean–Only settings that are not at their default.
groupstring–Only one group of settings.

No output schema declared.

No examples provided.

devcdp_settings_init ~83

Write a settings file containing every option with its current value and an explanation, so it can be edited by hand. Refuses to overwrite an existing file unless you say so.

NameTypeReqDescription
overwriteboolean–Replace the file if it already exists.
pathstring–Where to write it. Defaults to devcdp.settings.json in the install directory.

No output schema declared.

No examples provided.

devtools_connect ~214

Attach to a Chrome tab over the DevTools Protocol and start observing it (console, network, DOM, debugger). Claims the tab so no other DevCDP session can drive it, marks it visibly in the browser, and reports what was loaded before we attached. Call this once at the start of a debugging session.

NameTypeReqDescription
allow_new_tabboolean–If every tab is already claimed by another session, open a new one instead of failing.
browserstring–'new' launches a separate isolated Chrome on the next free port — a browser no other session has touched.
hoststring–Chrome host.
portnumber–Chrome remote-debugging port.
targetstring–'visible' (the tab on screen) | 'url-match:<substring>' | 'index:<n>' from list_tabs | 'new' | a URL substring.
windowstring–'new' gives this session its own browser window — the fallback when Chrome tab groups are unavailable.

No output schema declared.

No examples provided.

devtools_disconnect ~57

Detach cleanly: resume the page if it is paused at a breakpoint, remove every breakpoint we set, remove the in-page badge, and release the tab claim so another session can use it. Always call this when you are done.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

devtools_status ~46

Connection health and buffer accounting: which tab is attached, how many console/network/script entries are held, whether the debugger is paused, and whether anything has been evicted from the buffers.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

dialog_detect ~92

Detect modal dialogs, alerts and confirmation overlays that are visible right now, with their title, message and button labels. Detection is structural — ARIA roles, the dialog element, and stacked-overlay geometry — so it works regardless of which UI framework drew it. Call it after any action that might raise a prompt.

NameTypeReqDescription
framestring–'main' (default) or 'all' to include iframes.

No output schema declared.

No examples provided.

docs_outline ~75

List the documentation available under the docs root, with each file's headings, so you can see what the project documents before searching. A good first call when you do not yet know the app's vocabulary.

NameTypeReqDescription
max_filesnumber–Maximum files to describe.
rootstring–Override the docs root for this call.

No output schema declared.

No examples provided.

docs_search ~129

Search the project's own documentation — README and any markdown/text/pdf docs under the configured docs root — and return matching passages with file and line. Use it to learn what a screen, field or business term means in this app, instead of inferring it from the UI. Set docsRoot in your settings file if the docs live elsewhere.

NameTypeReqDescription
context_linesnumber–Lines of surrounding context per hit.
max_resultsnumber–Maximum passages to return.
querystringyesWords or a phrase to look for.
rootstring–Override the docs root for this call.

No output schema declared.

No examples provided.

dom_get_html ~99

Get the inner or outer HTML of the first element matching a selector, truncated to a byte budget. Useful for understanding structure you cannot infer from dom_query alone.

NameTypeReqDescription
framestring–'main' (default), or a substring of a frame's origin/name.
innerboolean–innerHTML instead of outerHTML.
max_bytesnumber–Truncate beyond this many characters.
selectorstringyesCSS selector.

No output schema declared.

No examples provided.

dom_get_mutations ~87

DOM changes recorded since the last call — what was added, removed or re-attributed, and where. Use it after an action to see whether the app re-rendered at all, which distinguishes 'handler never ran' from 'handler ran and produced nothing'.

NameTypeReqDescription
clearboolean–Drain the buffer as you read it.
limitnumber–Maximum records to return.

No output schema declared.

No examples provided.

dom_list_frames ~48

List the frames and JavaScript execution contexts in the attached tab. Use it when a selector finds nothing — the content may live in an iframe, which needs frame:'all' on dom_query.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

dom_query ~222

Query elements by CSS selector and return tag, id, classes, text, attributes, geometry and real visibility. Ask for computed styles by naming the properties you want. Set frame:'all' to search inside iframes too — single-page apps often render the screen you care about in a child frame.

NameTypeReqDescription
fieldsarray–Restrict the returned keys, e.g. ['tag','id','text','visible'].
framestring–'main' (default), 'all', or a substring of a frame's origin/name.
include_attrsboolean–Include every HTML attribute of each match. Off by default: attributes dominate the response on real apps.
include_htmlboolean–Include a truncated outerHTML for each match.
limitnumber–Maximum elements to return.
selectorstringyesCSS selector.
stylesarray–Computed style properties to read, e.g. ['display','zIndex','color'].
visible_onlyboolean–Drop elements that are not actually rendered.

No output schema declared.

No examples provided.

list_tabs ~99

List the debuggable tabs in Chrome with their index, title, URL, whether each is the visible one, and which DevCDP session (if any) currently owns it. Use the index with target:'index:<n>' in devtools_connect.

NameTypeReqDescription
hoststring–Chrome host.
portnumber–Chrome remote-debugging port.
probeboolean–Check which tab is really visible (one extra round trip).

No output schema declared.

No examples provided.

memory_get ~143

Look up what previous sessions learned about this app — failures and the recovery that worked. Returns short summaries so it is cheap to call at the start of a session; pass full:true or an id to read one in detail. Search it whenever a step fails, before asking the user for help.

NameTypeReqDescription
categorystring–Restrict to one category.
fullboolean–Return complete entries instead of summaries.
idstring–Return this single entry in full.
limitnumber–Maximum entries to return.
querystring–Words to match against category, failure, recovery, pattern or URL. Omit for the most recent.

No output schema declared.

No examples provided.

memory_import_legacy ~62

One-off import of a v4 Markdown memory file into the current store, skipping the malformed entries v4's missing validation produced. Run once after upgrading, then delete the old file.

NameTypeReqDescription
pathstringyesFull path to the old memorymanagement.md.

No output schema declared.

No examples provided.

memory_record ~196

Record a failure and the recovery that worked, so a later session can skip the dead end. Call it after any user-assisted recovery or non-obvious workaround. All four fields are required and validated — a vague entry is worse than none, because it costs context on every future lookup.

NameTypeReqDescription
categorystringyesWhat kind of problem this was.
failurestringyesWhat went wrong, concretely. e.g. 'Clicking Save did nothing because the form was still validating.'
patternstringyesThe reusable rule for next time. e.g. 'Wait for the validation spinner to clear before clicking Save.'
recoverystringyesWhat actually resolved it, as steps someone could repeat.
sharedboolean–Write to the shared team store instead of local, if one is configured.
url_patternstring–URL substring this applies to, so it can be matched to a page later.

No output schema declared.

No examples provided.

network_clear ~39

Empty the network buffer so the next thing you read belongs only to the action you are about to take. Does not affect the browser's own Network panel.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

network_get_requests ~254

List HTTP requests captured since attach, with method, status, duration, size and initiator. Filter by URL substring, method, status or failures only. Response bodies are opt-in via include_bodies because they are large. Capture starts when DevCDP attaches, so requests from before that are not here — reload to see them.

NameTypeReqDescription
failed_onlyboolean–Only network failures and 4xx/5xx responses.
include_bodiesboolean–Include response bodies, subject to max_body_bytes.
include_headersboolean–Include request and response headers.
include_post_databoolean–Include request payloads.
limitnumber–Maximum requests to return.
max_body_bytesnumber–Per-body byte cap when include_bodies is set.
methodstring–Only this HTTP method, e.g. POST.
min_statusnumber–Only responses with status >= this, e.g. 400 for problems.
offsetnumber–Skip this many of the newest matches, for paging back in time.
statusnumber–Only this exact response status.
url_filterstring–Only requests whose URL contains this substring.

No output schema declared.

No examples provided.

network_get_response_body ~98

Fetch the full response body for one requestId from network_get_requests. Chrome discards bodies when the page navigates, so read them while the page is still on the same document.

NameTypeReqDescription
max_body_bytesnumber–Byte cap; 0 means no limit.
requestIdstring–Deprecated spelling of request_id; both work.
request_idstring–The requestId field from a network_get_requests row.

No output schema declared.

No examples provided.

network_wait_for_request ~131

Block until a request whose URL contains url_filter completes, then return it. Event driven, so there is no polling. Call this immediately AFTER triggering the action, or pass a filter that has not fired yet — a request that already completed is returned straight away. Gives up after timeout_ms and tells you so.

NameTypeReqDescription
allow_existingboolean–Satisfy immediately from an already-completed matching request.
methodstring–Also require this HTTP method.
timeout_msnumber–Give up after this long.
url_filterstringyesSubstring the request URL must contain.

No output schema declared.

No examples provided.

notify_user ~91

Show a short status line to the human, in the badge on the page you are debugging. This is the only channel the user actually sees — call it before a slow or surprising step so a frozen-looking app is explained. Keep it to a few words.

NameTypeReqDescription
actionstringyesWhat you are doing.
detailstringyesShort human-readable detail, e.g. 'checking the save handler'.

No output schema declared.

No examples provided.

page_interrupt ~84

Abort the JavaScript the page is currently running. Use it when a tool reports PAGE_UNRESPONSIVE — an infinite loop or a long synchronous task has blocked the main thread. This is the only thing that frees it: reloading and navigating do not, because the blocked thread never processes them. The page keeps its DOM and state; only the in-flight script is killed.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

page_navigate ~63

Navigate the attached tab to a URL. Returns as soon as the navigation is committed, not when loading finishes — wait for a specific request with network_wait_for_request, or for text with Playwright, before asserting.

NameTypeReqDescription
urlstringyesAbsolute URL to open.

No output schema declared.

No examples provided.

page_reload ~58

Reload the attached tab. Useful right after attaching, because console history and network traffic from before the attach cannot be recovered — a reload replays everything with DevCDP watching.

NameTypeReqDescription
bypass_cacheboolean–Ignore the HTTP cache (hard reload).

No output schema declared.

No examples provided.

page_screenshot ~405

Capture what is on screen: the viewport, the whole scrollable page, one element, or an explicit rectangle. Name the element the same way as the ui_* tools — by CSS selector, by the text a person reads, or by test id — so snipping a region does not require working out coordinates. DevCDP's own badge and messages are hidden first, so the image shows the application and nothing else. Written to a file and returned as a path; pass inline:true when you need to look at it yourself, which costs a great deal of context.

NameTypeReqDescription
formatstring–Image format. jpeg is far smaller for photographic content; png is exact.
full_pageboolean–Capture the whole scrollable page, not just the viewport. Ignored when a target or rect is given.
hide_overlayboolean–Hide DevCDP's badge and messages for the capture. Turn off only when the overlay itself is what you are looking at.
inlineboolean–Also return the image itself so you can see it. Expensive — a large capture can cost more context than every tool description combined.
max_widthnumber–Scale the capture down to at most this many pixels wide. Keeps a full-page shot to a sane size.
nthnumber–Which match to use when several qualify, 0-based.
qualitynumber–1-100, for jpeg and webp only.
rectobject–Explicit page-coordinate region { x, y, width, height }. Overrides any element target.
save_tostring–Absolute path to write to. Defaults to a timestamped file in the screenshotDir setting.
selectorstring–CSS selector of the element to capture. Descends into open shadow roots.
testidstring–Test attribute value of the element to capture.
textstring–Visible text of the element to capture.

No output schema declared.

No examples provided.

runtime_evaluate_many ~87

Evaluate several named expressions in one round trip and get a map of name to result. Use it to sample a lot of app state at once instead of paying a round trip per question. Individual failures are reported per entry rather than aborting the batch.

NameTypeReqDescription
await_promiseboolean–Await promise results.
expressionsarrayyesArray of { name, expression } objects.

No output schema declared.

No examples provided.

session_ask_user ~115

Ask the human to do something in the browser, and show the request in the on-page badge with a confirmation button. Returns immediately — poll session_poll_user_action for the outcome. Also relay the instruction in your reply, so it is visible whether or not they are looking at the browser window.

NameTypeReqDescription
instructionstringyesExactly what the person should do, in one sentence.
wait_forstring–What counts as done. 'confirmation' — the on-page button — is the only unambiguous one.

No output schema declared.

No examples provided.

session_end ~41

Close the session and return a summary. Does not detach — call devtools_disconnect to release the tab and clear breakpoints when you are finished with the browser entirely.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

session_get_activity ~83

Unified timeline of everything observed in this session — console output, requests, navigations, dialogs, clicks, pauses and handovers, in order. Use it to reconstruct what happened when a step behaved unexpectedly.

NameTypeReqDescription
limitnumber–Maximum entries.
sincestring–ISO timestamp lower bound.
typesarray–Restrict to these activity types.

No output schema declared.

No examples provided.

session_get_state ~140

One snapshot of console output, network requests and DOM mutations together, instead of three separate calls. Pass the cursors back on the next call to get only what is new. This is the cheapest way to see the effect of an action.

NameTypeReqDescription
errors_onlyboolean–Restrict console to warnings and errors, and network to failures.
log_cursornumber–Only console entries newer than this seq.
log_limitnumber–Maximum console entries.
mut_limitnumber–Maximum DOM mutation records.
net_filterstring–Only requests whose URL contains this.
net_limitnumber–Maximum network requests.

No output schema declared.

No examples provided.

session_get_status ~37

Where the session plan stands: the goal, each step's status, which step is current, and whether a human handover is outstanding.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

Install

How do I install the io.github.Dayananda-D/devcdp MCP server?

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

npm · devcdp

# add to Claude Code
claude mcp add dayananda-d-devcdp -- npx -y devcdp
Common questions

What is the io.github.Dayananda-D/devcdp MCP server?

io.github.Dayananda-D/devcdp is an MCP server listed in the public MCP registry as io.github.Dayananda-D/devcdp. Chrome DevTools for AI assistants: console, network, DOM, source maps, breakpoints, live variables. This page covers its npm package (devcdp).

Is the io.github.Dayananda-D/devcdp MCP server safe to use?

io.github.Dayananda-D/devcdp scores 84 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 16 October 2026. It declares no install or post-install scripts. 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.Dayananda-D/devcdp MCP server expose?

io.github.Dayananda-D/devcdp exposes 74 tools: workflow_guide, devtools_connect, devtools_status, devtools_disconnect, list_tabs, and 69 more. Their descriptions and schemas cost roughly 9,569 tokens of context every time the server is loaded.

Is the io.github.Dayananda-D/devcdp MCP server still maintained?

io.github.Dayananda-D/devcdp is still listed as active in the MCP registry. We last reached this channel on 16 October 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.Dayananda-D/devcdp MCP server under?

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