Skip to main content
Glama

Debug Web MCP

Debug Web is a standalone MCP server for inspecting localhost web applications through Chrome DevTools Protocol (CDP). It runs independently of REA and does not install, import, or execute REA.

It exposes eight tools for listing local Chrome targets, attaching to one selected page, capturing network/console/navigation/WebSocket events, querying captured requests/events, stopping capture, and discarding a session. It intentionally has no screenshot tool.

Requirements

  • Node.js 22 or newer

  • Chrome or Chromium with remote debugging enabled

  • An MCP client that supports a local stdio server

Related MCP server: chrome-devtools-mcp

Install and build

From a clone of this project:

npm ci
npm run build

For local development:

npm run dev

The built executable is node dist/main.js; when installed from npm the command will be debug-web.

Start Chrome for a local application

Use a dedicated browser profile and bind the CDP port to loopback. Example on Windows PowerShell:

& "C:\Program Files\Google\Chrome\Application\chrome.exe" `
  --remote-debugging-port=9222 `
  --user-data-dir="$env:TEMP\debug-web-profile" `
  http://localhost:3000

On macOS/Linux, use the path to your Chrome/Chromium executable with the same two flags. Do not expose the debugging port to an untrusted network; CDP grants control over the browser page.

Configure OpenCode

Add a debug-web server to OpenCode’s opencode.json or opencode.jsonc configuration. Replace the example path with the absolute path to this clone.

{
  "mcp": {
    "debug-web": {
      "type": "local",
      "command": ["node", "D:/code/os/debug-web/dist/main.js"],
      "enabled": true
    }
  }
}

Restart OpenCode and confirm that the debug-web MCP server is connected.

Configure Claude Code

Add this entry to Claude Code’s MCP configuration (often ~/.claude.json), preserving any existing mcpServers entries:

{
  "mcpServers": {
    "debug-web": {
      "command": "node",
      "args": ["D:/code/os/debug-web/dist/main.js"]
    }
  }
}

Restart Claude Code or reconnect its MCP servers. Other stdio-capable MCP clients use the same command/argument pair.

Typical workflow

  1. Call browser_list_targets with cdp_endpoint: "http://127.0.0.1:9222".

  2. Call browser_open_session with the selected target_id.

  3. If your local API uses another port, include its exact localhost origin in allowed_origins, e.g. ["http://127.0.0.1:4100"].

  4. Call browser_start_capture, then use the app normally in Chrome.

  5. Call browser_stop_capture; query details with browser_list_network_requests, browser_get_network_request, and browser_get_events.

  6. Call browser_close_session to discard session data and detach.

Scope and data handling

  • Localhost only: inspected pages and explicitly authorized API origins must use localhost, 127.0.0.1, or [::1]. Remote sites such as Netflix or Reddit are rejected.

  • Explicit origin authorization: the page origin is allowed automatically; additional origins must be supplied at session open and are restricted to local hosts.

  • Bodies off by default: request and response bodies are captured only when explicitly enabled. Body size is bounded per request and per session; non-text/non-JSON response bodies are not retrieved.

  • Header redaction: authorization, cookie, API-key, and CSRF headers are redacted. Query strings and explicitly enabled body contents are not heuristically scrubbed and may contain secrets.

  • Ephemeral: records stay in process memory and are discarded when the session closes or the server exits. Tool results may still remain in the connected agent’s conversation history.

  • Browser ownership: Debug Web never closes Chrome or a tab. It disables the CDP domains it enabled and closes only its own WebSocket connection.

Development checks

npm run typecheck
npm run lint
npm test
npm run build

License and attribution

MIT. Adapted portions of the initial implementation derive from REA’s Debug Web prototype/CDP boundary; the applicable copyright and MIT notice are retained in LICENSE and THIRD_PARTY_NOTICES.md.

Available Tools

8 tools
browser_close_sessionA

Detach, close only Debug Web's socket, and discard temporary data; leaves Chrome and the tab open.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does disclose the key behavioral traits: what is destroyed (temporary data discarded) and what survives (Chrome and the tab remain open). It omits error behavior and whether the session_id can be reused, so a 4 rather than a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no waste, and the destructive scope is front-loaded ahead of the survival guarantee.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-param teardown tool with no output schema this is nearly sufficient behaviorally, but the lone parameter is left unexplained in both schema and description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is one required parameter (session_id) with 0% schema description coverage, and the description never mentions it, so the agent gets no meaning for the argument beyond its name. With a parameter present and undocumented, the baseline can't be the 0-parameter 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('detach, close') and resource ('Debug Web's socket'), and explicitly scopes what is NOT touched ('leaves Chrome and the tab open'), which distinguishes it from browser_open_session and from any imputed browser-shutdown behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternative names, but the clause 'leaves Chrome and the tab open' implies the scenario (detaching while preserving the browser), which is enough for implied usage but not for a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_get_eventsB

Query captured console, navigation, network, and WebSocket events in memory; does not call Chrome.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
session_idYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose one meaningful trait: events are read from memory and Chrome is not contacted, so there are no live side effects. It omits pagination behavior, what happens when no capture is active, and whether results are ordered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, and the resource list is placed before the qualifying clause. It is arguably too terse given the undocumented parameters, but there is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with no annotations, no output schema, and 0% schema coverage, the description covers only purpose and the no-Chrome-call trait. An agent still cannot tell how to page through results, what a returned event looks like, or what preconditions (an active capture) are required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description adds no parameter meaning at all — limit, offset, and the required session_id are never explained or referenced. The parameter names are conventional, which softens the gap, but the description does not compensate for the missing schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (query) and enumerates the resource precisely: captured console, navigation, network, and WebSocket events. It partially differentiates from siblings by implying a buffered event stream rather than the live browser, though it overlaps conceptually with browser_list_network_requests without naming it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The clause 'does not call Chrome' implicitly tells the agent when this tool is preferable — when reading already-captured data rather than probing the live browser. However, no sibling is named and no explicit when/when-not conditions (e.g., capture must be running) are given, so usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_get_network_requestA

Read one captured request with redacted headers and opted-in bodies from memory; does not call Chrome.

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYes
session_idYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does add real behavioral context: headers are redacted, bodies are only present if opted-in, and the read is memory-only rather than a live Chrome call. It omits what happens on an unknown session_id/request_id, but the disclosure of data-loss and no-live-fetch semantics is genuinely informative.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; every clause (redacted headers, opted-in bodies, memory-only) earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No annotations and no output schema mean the description must cover more ground. It handles the read semantics and data caveats well but leaves parameter meaning and the not-found/missing-body behavior unaddressed, so it is only minimally sufficient for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for two required parameters, so the description must compensate and does not. 'one captured request' weakly implies request_id scoping but nothing explains the relationship between session_id and request_id or the expected formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Read one captured request'. The singular 'one' implicitly distinguishes it from the sibling browser_list_network_requests, though it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Saying the request comes 'from memory' and 'does not call Chrome' implies this only works on already-captured data, which is useful usage context. However, it gives no explicit guidance on when to prefer this over browser_list_network_requests or browser_get_events, and states no prerequisites (e.g. that a capture session must exist).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_list_network_requestsC

Query captured network metadata in memory; does not call Chrome.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
session_idYes
resource_typeNo

TDQS

C2.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, but it does disclose one genuinely useful trait: it reads in-memory captured data and does not call Chrome, implying results depend on a prior capture and carry no live-browser cost. It omits prerequisites (active session/capture), pagination defaults and limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with no filler, and the important constraint (in-memory, no Chrome call) is front-loaded. The terseness is efficient, though it borders on under-specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter, no-annotation, no-output-schema tool with zero schema coverage, this is not enough. The description never says what fields come back, that a session/capture must exist, or how limit/offset behave, so an agent lacks what it needs to call it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Four parameters with 0% schema description coverage, and the description mentions none of them. session_id, limit, offset and resource_type are completely undocumented in both places, leaving the agent to guess valid values and semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name supplies the verb+resource (list network requests), but the description itself only says it queries 'network metadata', which is vaguer than the tool name. The scoping clause ('captured ... in memory') is the only real distinguishing content, and it does not explicitly contrast with sibling browser_get_network_request.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Nothing states when to use this rather than browser_get_network_request (single request) or when a capture must already be running via browser_start_capture. Usage is only inferable from the name and sibling set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_list_targetsB

List localhost development tabs exposed by a loopback Chrome CDP endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
cdp_endpointYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It implies a read-only listing and scopes the endpoint to loopback, but says nothing about permissions, error behavior, pagination, or return format. This is a significant gap for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that is front-loaded and free of filler. Every clause contributes to identifying the action, target, and endpoint constraint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity and single parameter, the description is adequate for identifying purpose, but with no output schema it does not describe what a target contains. The missing return information leaves an agent guessing about the result shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It names the parameter's semantic domain ('loopback Chrome CDP endpoint'), which adds meaning beyond a bare URI string, but it does not explain expected format, ports, or examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (List) and resource (localhost development tabs) and clarifies the endpoint type (loopback Chrome CDP). It is immediately distinguishable from siblings like browser_list_network_requests or browser_open_session, but it does not explicitly contrast itself with those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool instead of a sibling, nor any mention of prerequisites or conditions. The purpose is implied by the description, but an agent receives no explicit routing information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_open_sessionB

Attach to one selected localhost development tab. Optionally authorize exact additional localhost origins, such as a separate API port. Chrome and tabs remain user-owned.

ParametersJSON Schema
NameRequiredDescriptionDefault
target_idYes
cdp_endpointYes
allowed_originsNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It usefully discloses that Chrome and tabs 'remain user-owned' (non-destructive, no takeover) and that it 'attaches' rather than launches, but omits lifecycle (must be paired with browser_close_session), auth/permission needs, and failure conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core action and followed by the optional behavior and ownership guarantee. No filler; only mild room to be more explicit about the target source.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, no annotations, and 0% schema coverage for a 3-parameter tool. The description does not explain how to obtain target_id, what cdp_endpoint expects, or the session lifecycle, so an agent lacks enough to call it reliably.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It conveys the intent of target_id ('one selected tab') and allowed_origins ('exact additional localhost origins'), but never mentions cdp_endpoint and omits the 8-origin cap, leaving the URI-format requirements undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

'Attach to one selected localhost development tab' gives a specific verb (attach) and resource (tab), and the session framing distinguishes it from sibling capture/network tools. It stops short of explicitly naming browser_list_targets as the source of the selected tab, but the scope is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: you must already have selected a localhost tab, and the optional origin authorization is described as opt-in. There is no explicit when-to-use versus siblings (e.g., 'call browser_list_targets first') and no stated exclusions or preconditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_start_captureB

Capture network, console, navigation, and WebSocket events. Request and response bodies default off; when requested, text/JSON bodies are size-bounded and held only in memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
duration_msNo
max_body_bytesNo
capture_request_bodiesNo
capture_response_bodiesNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does add real behavioral context: bodies default off, text/JSON bodies are size-bounded, and data is held only in memory (a meaningful non-persistence signal). It omits whether the call blocks, what happens when duration_ms is 0, and any auth/permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero padding; the capture scope is front-loaded and the body-handling caveat follows. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with no annotations and no output schema, the description covers body behavior well but leaves key operational details (duration_ms semantics, session prerequisite, what the capture returns/where to read it) unstated. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate; it clarifies capture_request_bodies/capture_response_bodies defaulting off and that max_body_bytes bounds text/JSON body size. However, session_id and duration_ms (including the 0 default) are left entirely unexplained, so coverage is partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (capture) and enumerates the captured resources (network, console, navigation, WebSocket events), so the agent knows exactly what this tool produces. It is distinguishable from retrieval siblings like browser_get_events or browser_list_network_requests, though it does not explicitly name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description never says when to call this versus alternatives, nor does it note the obvious pairing with browser_stop_capture or the prerequisite of an open session. Usage is only implied by the verb 'capture'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browser_stop_captureB

Stop capture and return a summary of temporary event data.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations the description carries the full burden. It does disclose that a summary of temporary event data is returned, but is silent on whether stopping clears/destroys that data, whether the session survives, or whether the events remain retrievable via browser_get_events.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted words, well sized for a simple one-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple stop tool with no output schema, the description is largely adequate, but it leaves the post-stop data lifecycle and session state ambiguous, which an agent needs in order to sequence calls against browser_get_events and browser_close_session.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description never mentions session_id, leaving the single required parameter undocumented. Though session_id is fairly self-evident, the description fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Stop) and resource (capture) plus a hint at its output (summary of temporary event data). It is clearly the counterpart to the sibling browser_start_capture, though it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the name pairing with browser_start_capture; there is no explicit statement of when to call it, what prerequisites (an active capture/session) are required, or how it relates to browser_close_session.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv0.1.0
    • First observedbrowser_close_session
    • First observedbrowser_get_events
    • First observedbrowser_get_network_request
    • First observedbrowser_list_network_requests
    • First observedbrowser_list_targets
    • First observedbrowser_open_session
    • First observedbrowser_start_capture
    • First observedbrowser_stop_capture

TDQS

B3.4/5.0

Scored across 8 tools

Disambiguation4/5

Each tool has a distinct purpose, but browser_list_network_requests and browser_get_events both query captured network data, causing minor overlap. Descriptions help clarify that one is network-focused metadata and the other is all event types.

Naming Consistency5/5

All tools follow a consistent browser_verb_noun pattern using snake_case. Names are predictable and readable throughout.

Tool Count5/5

Eight tools are well-scoped for a browser debugging server, covering session and capture lifecycles without excess. Each tool earns its place.

Completeness4/5

Session lifecycle (list, open, close) and capture lifecycle (start, stop, query) are fully covered. Missing operations like page evaluation or DOM inspection are minor gaps for a capture-focused debugging tool.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers