Skip to main content
Glama

npm version

Stop copying and pasting console logs, server errors and screenshots into your CLI. Relay Inspect gives your AI coding agent direct access to your browser—so it can see what you see, verify its own changes, and debug without asking you to copy and paste.

Relay Inspect is a lightweight tool for designers and engineers who want to spend more time building and less time debugging.

                                                    ┌─ Chrome (CDP over WebSocket)
AI Coding Agent  ←→  Relay Inspect (MCP over stdio) ─┤
                                                    └─ Dev Servers (child processes)

Relay Inspect is a bridge between the Chrome DevTools Protocol, your dev server and your agent. It exposes browser state as MCP tools—console output, network requests, DOM queries and screenshots. Your agent edits code, the dev server hot reloads, and the agent verifies the result itself.

Looking for annotations? The browser annotation overlay has moved to its own package: Annoku.

Why Relay Inspect over Chrome DevTools MCP?

Google's Chrome DevTools MCP is a full browser automation tool—it clicks buttons, fills forms, runs Lighthouse audits, and scripts interactions. Relay Inspect gives agents continuous visibility while they work, so mistakes get caught in the moment, not at the end.

  • Gives agents eyes. Real-time access to console output, network requests, and DOM state — so your agent sees what's happening as it happens, not after it's already moved on.

  • Tight feedback loop. The edit → reload → verify cycle happens in a single turn. Your agent makes a change, waits for the dev server to reload, and immediately confirms it worked—without additional back-and-forth.

  • Focused tools, fewer wrong turns. A handful of purpose-built tools means your agent reaches for the right one rather than thrashing through a broad API surface. Less noise, more signal.

  • Zero overhead, zero telemetry. Connects lazily on the first tool call—no Puppeteer, no phoning home. Nothing runs until your agent needs it.

Related MCP server: @nimbus21.ai/chrome-devtools-mcp

Tools

Your agent gets access to the following tools automatically via MCP:

Browser Inspection

Tool

Description

Key Parameters

evaluate_js

Execute a JavaScript expression in the browser and return the result

expression (string)

get_console_logs

Return buffered console output (logs, warnings, errors)

clear (bool, default: true)

get_network_requests

Return captured network requests and responses

filter (URL substring), clear (bool, default: true)

get_network_request_detail

Get full request/response body for a specific network request

requestId (string, from get_network_requests)

get_elements

Query the DOM with a CSS selector and return matching elements' outer HTML

selector (string), limit (number, default: 10)

take_screenshot

Capture a screenshot of the current page

format (png/jpeg, default: png), quality (0-100, jpeg only)

Page Control

Tool

Description

Key Parameters

reload_page

Reload the current page (optionally bypass cache)

ignoreCache (bool, default: false)

wait_and_check

Wait N seconds then return new console output captured during the wait

seconds (number, default: 2)

connect_to_page

Switch to a specific Chrome page target by ID or URL match

id (string) OR urlPattern (string), waitForMs (number)

navigate_to

Navigate the current page to a new URL

url (string)

Server Management

Tool

Description

Key Parameters

start_server

Start a dev server or background process and capture its output

id (string), command (string), args (string[]), cwd (string), env (object), optional urlPattern + connectWaitForMs

get_server_logs

Read stdout/stderr output from a managed server process

id (string), clear (bool, default: true)

stop_server

Stop a running managed server process

id (string)

list_servers

List all managed server processes and their status

Diagnostics

Tool

Description

Key Parameters

check_connection

Check Chrome connection status and diagnose issues (does not auto-launch)

Setup

Prerequisites

  • Node.js 20+

  • Chrome (or any Chromium-based browser)

Add to your MCP client

No install required — npx downloads and runs the package on first use.

Claude Code — add to .mcp.json or .claude/settings.json:

{
  "mcpServers": {
    "relay-inspect": {
      "command": "npx",
      "args": ["-y", "relay-inspect"]
    }
  }
}

Codex CLI:

codex mcp add relay-inspect -- npx -y relay-inspect

opencode — add to opencode.json:

{
  "mcp": {
    "relay-inspect": {
      "type": "local",
      "command": "npx",
      "args": ["-y", "relay-inspect"]
    }
  }
}

Chrome is auto-launched on first tool call if it isn't already running. To disable this or customize behavior, see Configuration below.

Configuration

Environment Variable

Default

Description

CHROME_DEBUG_PORT

9222

Chrome debugging port

CHROME_DEBUG_HOST

localhost

Chrome debugging host

CHROME_AUTO_LAUNCH

true

Auto-launch Chrome if not already running

CHROME_PATH

(auto-detect)

Override Chrome/Chromium executable path

CHROME_LAUNCH_URL

(none)

URL to open when Chrome is auto-launched (e.g. http://localhost:1420)

CDP_WS_URL

(none)

Connect directly to a CDP WebSocket URL, skipping Chrome discovery

CONSOLE_BUFFER_SIZE

500

Max console entries to buffer

NETWORK_BUFFER_SIZE

200

Max network requests to buffer

SERVER_LOG_BUFFER_SIZE

1000

Max log entries per managed server

If Chrome is already running with --remote-debugging-port, Relay Inspect will connect to it directly without launching a new instance.

Development

git clone https://github.com/samsolomon/relay-inspect.git
cd relay-inspect
npm install
npm run dev    # Run with tsx (auto-recompile)
npm run build  # Build with tsup
npm start      # Run the built bundle
npm test       # Run tests with vitest

For detailed architecture, conventions, and CDP implementation notes, see CLAUDE.md.

Available Tools

15 tools
check_connectionA

Check Chrome DevTools connection status and diagnose issues (does not auto-launch Chrome)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It adds one behavioral trait (does not auto-launch Chrome), but fails to mention whether the tool is read-only, what side effects exist (if any), or what the output format looks like.

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?

The description is a single, efficient sentence that communicates the key purpose and a distinguishing behavioral trait. No wasted words.

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

Completeness4/5

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

Given zero parameters and no output schema, the description is largely sufficient. However, it lacks information about what the tool returns or how to interpret diagnosis results, which could be important for an agent.

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

Parameters4/5

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

There are no parameters, so the baseline is 4. The description adds no parameter information, but none is needed. The schema coverage is irrelevant as there are no parameters.

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?

The description clearly states the tool's purpose: checking Chrome DevTools connection status and diagnosing issues. It also explicitly notes that it does not auto-launch Chrome, distinguishing it from tools like connect_to_page.

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 description implies usage for checking connection status but does not provide explicit guidance on when to use this tool versus alternatives like connect_to_page or when not to use it. The note about not auto-launching offers some context but is insufficient for clear decision-making.

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

connect_to_pageB

Connect to a specific Chrome page target by ID or URL pattern.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoExact page target ID from check_connection
waitForMsNoOptional timeout to wait for a matching page target to appear
urlPatternNoURL substring to match (case-insensitive), e.g. localhost:5173
url_patternNoAlias for urlPattern

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only states 'Connect', which implies a state change, but does not detail what happens after connection, whether it is safe/idempotent, or what the tool depends on. This is insufficient for an agent to assess side effects.

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?

The description is a single sentence with no extraneous words, effectively front-loading the core action. It is appropriately sized for a tool with a clear purpose, though could include more context without becoming verbose.

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?

Given the tool has 4 parameters, no output schema, and no annotations, the description is under-informative. It does not explain the return value (e.g., connection status), side effects, or prerequisites (e.g., need a prior `check_connection`). For a tool with moderate complexity, more context is needed for safe invocation.

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?

The input schema has 100% description coverage for all 4 parameters, so the baseline is 3. The description adds minimal value by mentioning 'by ID or URL pattern', which aligns with the `id` and `urlPattern` parameters, but does not elaborate on `waitForMs` or `url_pattern`. Thus, the description adequately complements the schema without exceeding it.

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?

The description clearly states the action 'Connect' and the resource 'a specific Chrome page target', with criteria 'by ID or URL pattern'. This distinguishes it from sibling tools like `check_connection` (which lists targets) or `navigate_to` (which navigates to a URL), making its purpose unambiguous.

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 provides no explicit guidance on when to use this tool versus alternatives, such as using `check_connection` first to obtain target IDs, nor does it mention prerequisites like an active Chrome connection. It implies usage context (connecting to a target) but lacks differentiation or conditional advice.

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

evaluate_jsB

Execute a JavaScript expression in the browser and return the result

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesJavaScript expression to evaluate

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only says 'execute and return the result' but does not mention side effects, destructive potential, security restrictions, or error handling. This is insufficient for a JavaScript execution tool.

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, clear sentence with no wasted words. It is front-loaded and efficient.

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?

Despite having only one parameter and no output schema, the description lacks context about the execution environment (e.g., page context, scope), return format, error propagation, and prerequisites like a loaded page. This is incomplete for a potentially powerful tool.

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 coverage is 100% and the schema already describes the parameter 'expression' as a JavaScript string. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

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?

The description clearly states the verb 'Execute', the resource 'JavaScript expression', and the context 'in the browser', distinguishing it from sibling tools that handle navigation, screenshots, logs, etc.

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?

No explicit guidance on when to use this tool versus alternatives (e.g., get_elements for DOM queries) or when not to use it. There is no mention of prerequisites or safe usage.

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

get_console_logsB

Return buffered console output (logs, warnings, errors) from the browser

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNoClear the buffer after reading (default: true)

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 full burden. It fails to disclose that the buffer is cleared by default ('clear' parameter defaults to true), which is a critical side effect. The behavioral trait of consuming the buffer is omitted.

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?

The description is a single sentence that front-loads the core purpose. It is efficient but could be more informative by noting the clear behavior.

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?

Given the simple tool (1 param, no output schema), the description is incomplete. It does not explain the side effect of clearing, the return format, or what happens when clear is false. More detail is needed for full understanding.

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 coverage is 100% (1 parameter documented). The description adds no additional meaning beyond the schema, which already describes the 'clear' parameter. Baseline of 3 is appropriate.

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?

The description clearly states the action ('Return') and the resource ('buffered console output'), specifying it includes logs, warnings, and errors. This distinguishes it from sibling tools like get_network_requests or get_server_logs.

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?

No guidance is provided on when to use this tool versus alternatives (e.g., evaluate_js, get_server_logs). The description does not mention when it is appropriate or not.

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

get_elementsA

Query the DOM with a CSS selector and return matching elements' outer HTML

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of elements to return (default: 10, max: 500)
selectorYesCSS selector to query

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided. The description implies a read-only query but does not explicitly state safety, side effects, or error conditions like invalid selectors or empty results.

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?

Single sentence front-loads the core action ('Query the DOM with a CSS selector') and succinctly specifies the return format, with no extraneous content.

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

Completeness4/5

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

Despite no output schema, the description specifies return as 'outer HTML'. Lacks edge-case handling but sufficient for typical use; complexity is low.

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 coverage is 100% with both parameters described. The description reiterates 'CSS selector' and 'outer HTML' but adds no new meaning beyond the schema.

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?

The description clearly states the verb 'query', the resource 'DOM', the method 'CSS selector', and the output 'outer HTML', distinguishing it from siblings like evaluate_js.

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?

No guidance on when to use this tool versus siblings (e.g., evaluate_js for JS evaluation; get_console_logs for logs) or when not to use it.

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

get_network_request_detailA

Get full request and response body for a specific network request by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
requestIdYesRequest ID from get_network_requests output

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description must fully convey behavioral traits. It does not disclose whether the operation is read-only, performance implications, or any limitations on the returned data, leaving the agent uninformed.

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?

The description is a single, efficient sentence that conveys the essential purpose without extraneous words. It is front-loaded and perfectly sized.

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 simplicity (one input, no output schema), the description provides adequate purpose but lacks details on the return format or structure of the body, which could be useful for an agent deciding how to use the output.

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

Parameters4/5

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

The schema description coverage is 100% (single parameter well-described). The description adds valuable context by specifying the parameter's origin ('from get_network_requests output'), enhancing understanding beyond the schema.

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?

The description clearly states the action ('Get'), the resource ('full request and response body'), and the identifier ('by ID'), effectively distinguishing it from sibling tools like get_network_requests.

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 description implies usage context by referencing the request ID source, but does not explicitly state when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions.

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

get_network_requestsC

Return captured network requests and responses from the browser

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNoClear the buffer after reading (default: true)
filterNoURL substring filter — only return requests matching this string

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It fails to mention that the default clear=true empties the buffer after reading, nor does it explain that only captured (not future) requests are returned.

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?

The description is concise at one sentence, but it could be slightly more informative (e.g., mentioning default clear behavior) without adding much length.

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?

Given the lack of an output schema, the description should explain the return format (e.g., array of objects). It also omits context such as the need for network capture to be active.

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?

The input schema already fully describes both parameters (clear, filter) with their purposes and defaults. The tool description adds no additional semantic value beyond the schema.

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 clearly states the tool returns network requests and responses, but it does not distinguish from the sibling tool get_network_request_detail, which could lead to confusion about the scope (all vs. single 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?

No guidance is provided on when to use this tool versus alternatives (e.g., get_network_request_detail) or any prerequisites like enabling network capture.

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

get_server_logsB

Read stdout/stderr output from a managed server process

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesServer identifier passed to start_server
clearNoClear the log buffer after reading (default: true)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. However, it lacks mention of important side effects such as the default clearing of the log buffer (seen in the 'clear' parameter defaulting to true). The description only says 'Read', which is misleading because the tool also modifies state by clearing logs. No permissions, rate limits, or other behavioral traits are disclosed.

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?

The description is a single sentence of 9 words, containing zero wasted words. It is front-loaded and concise, directly stating the core function.

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?

There is no output schema, and the description does not explain what the tool returns (e.g., a string, array of lines, or structured object). For a log-reading tool, the return format is crucial for the agent to process the result. Additionally, no error behavior or edge cases are mentioned. The description is insufficient for full autonomous use.

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 100%, so the schema already documents both parameters adequately. The description adds no additional meaning beyond the schema, which is acceptable but does not improve understanding. The baseline of 3 is appropriate.

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?

The description clearly states the verb 'Read' and the resource 'stdout/stderr output from a managed server process'. It distinctly identifies the purpose and differentiates from sibling tools like 'get_console_logs' (browser console) and 'list_servers' (listing servers).

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 description implies usage after starting a server via the reference to 'server identifier passed to start_server', but it does not explicitly state when to use this tool over alternatives, nor does it mention any prerequisites or when not to use it. The context is implied but not explicit.

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

list_serversA

List all managed server processes and their status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided. The description indicates a read-only operation but does not explicitly state safety (e.g., no side effects) or permissions. However, the behavior is straightforward given zero parameters.

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?

The description is a single, efficient sentence with no wasted words.

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

Completeness5/5

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

For a simple, parameterless listing tool without an output schema, the description completely covers the necessary context.

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

Parameters4/5

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

Zero parameters and 100% schema coverage. The description adds no parameter info, which is acceptable since there are none. Baseline for 0 params is 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?

The description clearly states the tool lists all managed server processes and their status, which distinguishes it from sibling tools like start_server and stop_server.

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?

No guidance on when to use this tool versus alternatives. While the action is clear, there is no explicit context for when it should be used or avoided.

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

reload_pageA

Reload the current page (optionally bypass cache)

ParametersJSON Schema
NameRequiredDescriptionDefault
ignoreCacheNoBypass cache (hard refresh) when true (default: false)

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, and the description only states the basic action. It does not disclose potential side effects (e.g., losing unsaved data, requiring an active page connection) or behavioral nuances beyond reloading.

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?

The description is a single, efficient sentence that front-loads the core purpose. No extraneous words or redundancy.

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

Completeness4/5

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

Given the simplicity (1 parameter, no output schema, no annotations), the description adequately covers the tool's purpose. Minor gaps exist (e.g., what happens if no page is loaded), but overall it is sufficiently complete.

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 coverage is 100% with a single boolean parameter that is well-described. The description adds minimal value beyond 'optionally bypass cache', which aligns with the parameter. Baseline 3 is appropriate.

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?

The description 'Reload the current page (optionally bypass cache)' uses a specific verb ('reload') and clearly identifies the target resource ('current page'). It distinguishes from sibling tools like 'navigate_to' which changes the page URL.

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 description implies usage for refreshing the current page, but does not provide explicit guidance on when to use this tool vs alternatives like 'navigate_to' or 'check_connection'. No exclusions or prerequisites are mentioned.

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

start_serverB

Start a dev server or background process and capture its output

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUnique identifier for this server (e.g. 'dev', 'api')
cwdNoWorking directory for the command (defaults to server's cwd)
envNoAdditional environment variables
argsNoCommand arguments (e.g. ['run', 'dev'])
commandYesCommand to run (e.g. 'npm', 'npx', 'make')
urlPatternNoOptional URL substring to connect to after server start (e.g. localhost:5173)
connectWaitForMsNoHow long to wait for urlPattern target to appear

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description must fully disclose behavior. It mentions output capture but lacks details on process lifecycle, blocking behavior, or error handling.

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?

Single sentence with no wasted words. Front-loaded with verb and resource.

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?

Lacks output schema and fails to specify behavior details like server start timing, output format, or interaction with other tools. Adequate for a simple start action but not fully complete given complexity.

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 100%, so baseline is 3. The description adds no extra meaning beyond the schema for parameters like id, command, and args.

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?

The description clearly states the tool starts a dev server or background process and captures output, with specific verbs and resource types. It distinguishes from siblings like stop_server and list_servers.

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?

No guidance on when to use this tool versus alternatives such as connect_to_page or check_connection. Missing prerequisites or exclusions.

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

stop_serverA

Stop a running managed server process

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesServer identifier passed to start_server

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, and description only states 'running' without elaborating on what happens if not running, destructive effects, or required permissions.

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?

Single sentence with no wasted words, efficiently conveys the core action.

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?

Adequate for a simple stop action with one parameter, but lacks details on error states and side effects that would fully inform an agent.

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 has 100% coverage for its single parameter, and the description adds no extra meaning beyond the schema description.

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?

Description clearly states the verb 'stop' and the resource 'running managed server process', distinguishing it from siblings like start_server.

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 guidance on when to use or not use this tool vs alternatives; it's implied by the sibling start_server but not stated.

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

take_screenshotB

Capture a screenshot of the current page

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoImage format (default: png)png
qualityNoCompression quality 0-100 (jpeg only)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description must disclose behavioral traits. It only states 'capture a screenshot' without explaining scope (full page vs viewport), side effects, or authorization needs. This is insufficient for safe tool invocation.

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?

The description is extremely concise, consisting of a single sentence with no wasted words. It is front-loaded and efficient.

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?

With no output schema and no annotations, the description leaves out critical context: how the screenshot is returned (e.g., base64, blob), whether it captures full page or viewport, and any prerequisites like a loaded page.

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?

The input schema already describes both parameters (format and quality) with defaults and constraints. The description adds no additional meaning, so a baseline score of 3 is appropriate given 100% schema coverage.

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?

The description clearly states the tool captures a screenshot of the current page, using a specific verb and resource. It distinguishes from sibling tools like evaluate_js or get_elements, which have different purposes.

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?

No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention that screenshots are for visual inspection, while other tools like get_elements retrieve DOM data.

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

wait_and_checkA

Wait N seconds then return new console output captured during the wait (useful after page reload)

ParametersJSON Schema
NameRequiredDescriptionDefault
secondsNoSeconds to wait before checking (default: 2)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the transparency burden. It explains the waiting and return of new console output, but does not disclose potential side effects, blocking behavior, or error handling. For a simple tool, this is adequate but not comprehensive.

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?

The description is a single, efficient sentence that conveys all essential information without unnecessary words.

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

Completeness4/5

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

Given the simplicity of the tool (1 parameter, no output schema), the description is mostly complete. It explains the purpose and context. A minor gap is the lack of detail on the format of the returned console output.

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?

The schema covers the single parameter ('seconds') with a description and default. The tool description does not add additional meaning beyond the schema, so a baseline score of 3 is appropriate.

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?

The description clearly states the action ('wait N seconds then return new console output') and the context ('useful after page reload'). It distinguishes from siblings like 'get_console_logs' by including the wait-and-check 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?

The description provides a use case ('after page reload') but does not explicitly state when not to use this tool or mention alternatives among siblings (e.g., 'get_console_logs' for immediate logs).

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

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: browser connection, navigation, DOM inspection, console/network logs, screenshots, and server management. No two tools overlap in functionality, so an agent can reliably select the correct tool.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (e.g., evaluate_js, get_console_logs, take_screenshot). The pattern is uniform and predictable across the entire set.

Tool Count5/5

With 15 tools, the set covers the browser inspection and server management domain comprehensively without being bloated. Each tool serves a necessary function, and the count feels well-scoped.

Completeness5/5

The tool set covers the full lifecycle of browser inspection (connect, navigate, evaluate, capture, logs, network) and server management (start, stop, list, logs). Any missing actions (e.g., clicking elements) can be achieved via evaluate_js, so there are no critical gaps.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/samsolomon/relay-inspect'

If you have feedback or need assistance with the MCP directory API, please join our Discord server