Skip to main content
Glama

Server Details

Paid browser QA for AI agents across phone and desktop viewports, using x402.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
Baffles78/viewport-witness
GitHub Stars
0

TDQS

A4.1/5.0

Scored across 4 tools

Disambiguation4/5

The four tools have largely distinct purposes: check_page runs general QA, verify_page runs assertion-based checks, compare_page diffs against a baseline, and get_report retrieves results. There is mild potential confusion between check_page and verify_page since both execute browser QA, but their descriptions clearly separate general QA from declarative assertions.

Naming Consistency5/5

All tool names follow the same verb_noun underscore pattern: check_page, compare_page, get_report, verify_page. The naming is consistent and predictable, making it easy for an agent to infer tool behavior from the name alone.

Tool Count5/5

Four tools is well-scoped for a viewport QA service: run QA, verify assertions, compare baselines, and retrieve reports. Each tool has a distinct role and none feel redundant or extraneous.

Completeness4/5

The core workflow is covered: submit checks, verify assertions, compare against baselines, and retrieve results. Minor gaps exist around explicit baseline management and job cancellation, but agents can complete the primary QA lifecycle without dead ends.

Available Tools

4 tools
check_pageA
Destructive
Inspect

Run browser QA across three viewports (phone portrait, phone landscape, desktop), including bounded performance evidence and plain-English diagnosis with safe structural locator hints. Costs $0.08 USDC via x402. Requires an x402-aware client to authorise payment; standard AI assistants cannot automatically sign x402.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already signal readOnlyHint=false and destructiveHint=true, and the description adds valuable context beyond them: the exact cost, the payment mechanism, and the client requirement. It also describes output characteristics ('bounded performance evidence', 'plain-English diagnosis', 'safe structural locator hints'). No contradiction with annotations is present.

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?

Three sentences, each earning its place: the first packs the core function and outputs, the second states cost, the third states the auth prerequisite. The most important information is front-loaded, and there is no filler.

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?

For a tool with no output schema, the description does a good job of explaining what the agent will receive: performance evidence, diagnosis, and locator hints. It also covers cost and payment prerequisites. It could be more complete by explaining what happens if the x402 payment is not authorized, but overall it is sufficiently complete for the tool's complexity.

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 does not mention the url parameter at all. The schema itself defines url with format and maxLength, but the description adds no semantic guidance about what URLs are acceptable or how they are used. With low coverage, the description should compensate, and it does not.

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 a specific action ('Run browser QA') and resource ('page') across three named viewports, with concrete outputs like performance evidence and diagnosis. It does not explicitly differentiate from sibling tools such as verify_page or compare_page, so it stops short of a 5.

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

Usage Guidelines4/5

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

The description provides clear context on prerequisites: it costs $0.08 USDC via x402 and requires an x402-aware client, explicitly noting that standard AI assistants cannot automatically sign x402. This gives an agent important selection criteria, though it does not name alternatives or state when not to use the tool.

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

compare_pageA
Destructive
Inspect

Compare a page against a completed ViewportWitness baseline job. Returns pixel-diff percentages, new/resolved accessibility issue IDs, error deltas, bounded performance evidence, and plain-English diagnosis. Costs $0.12 USDC via x402. Requires an x402-aware client; standard AI assistants cannot automatically sign x402.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
baselineJobIdYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, openWorldHint=true, and destructiveHint=true, which is unusual for a comparison tool. The description adds critical behavioral context: it costs $0.12 USDC via x402 and requires an x402-aware client, which is a significant operational constraint. However, the destructiveHint=true annotation is not explained in the description—it's unclear what destructive side effect occurs. This is a minor gap given the description does disclose the payment and client 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?

Three sentences with no waste. The core function is front-loaded, outputs are listed compactly, and the cost/client constraint is saved for the end. Every sentence earns its place.

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?

For a 2-parameter tool with no output schema, the description covers the main inputs, outputs, cost, and client requirement. It doesn't explain the destructiveHint=true annotation or what 'bounded performance evidence' means, but the core information an agent needs to decide whether to call this tool is present. The missing output schema is a structural gap, not a description gap.

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 mentions 'url' and 'baselineJobId' implicitly by saying 'Compare a page against a completed ViewportWitness baseline job'—the page maps to url and the baseline job maps to baselineJobId. However, it doesn't add detail about URL format, whether the URL must be publicly accessible, or how to obtain a baselineJobId. The description adds some meaning but doesn't fully compensate for the 0% 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's function: comparing a page against a completed ViewportWitness baseline job. It lists specific outputs (pixel-diff percentages, accessibility issue IDs, error deltas, performance evidence, diagnosis) and distinguishes it from siblings by naming the baseline job requirement. The verb 'compare' plus the resource 'page against baseline job' is specific and unambiguous.

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

Usage Guidelines4/5

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

The description implies when to use this tool: when you have a completed baseline job and want to compare a page against it. It doesn't explicitly state when not to use it or name alternatives (check_page, get_report, verify_page), but the baseline job requirement provides clear context. The cost and x402 client requirement are important usage constraints that are disclosed.

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

get_reportA
Read-only
Inspect

Retrieve the status or completed QA report for a previously submitted job. Free and read-only. Poll until status is "complete", "failed", or "retryable". No payment required.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYes

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds significant behavioral context: it is 'free', requires 'no payment', and specifies the polling pattern with exact statuses (complete, failed, retryable). This goes well beyond the annotations.

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?

Four short, purposeful sentences. The main purpose is front-loaded, and each sentence adds distinct value (purpose, cost, polling behavior, payment). 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?

For a single-parameter, read-only tool with no output schema, the description covers the essential usage: what it retrieves, how to poll, and the terminal statuses. It does not specify the exact response structure, but for a polling tool this is adequate.

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 0% and the description does not explicitly describe the jobId parameter. However, the phrase 'previously submitted job' implicitly indicates the jobId identifies that job. It adds minimal meaning but does not fully compensate for the lack of 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?

The description clearly states the verb 'Retrieve' and the resource 'status or completed QA report' for a 'previously submitted job'. It is distinct from sibling tools like check_page, compare_page, verify_page which focus on pages, not reports.

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

Usage Guidelines4/5

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

Provides clear context for when to use: polling a previously submitted job. Includes explicit polling instructions with target statuses. Does not mention alternatives, but siblings are unrelated, so no exclusion is necessary.

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

verify_pageA
Destructive
Inspect

Check up to 20 declarative assertions across three viewports and return bounded performance evidence plus plain-English diagnosis. Assertion types: noHorizontalOverflow, noConsoleErrors, textVisible, titleIncludes, selectorExists, selectorVisible. Costs $0.10 USDC via x402. Requires an x402-aware client; standard AI assistants cannot automatically sign x402.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
assertionsYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already signal that this is not read-only, open-world, and potentially destructive, and the description does not contradict them. It adds valuable behavioral context beyond annotations: the $0.10 USDC cost, the x402 client requirement, the three-viewport behavior, and the bounded performance evidence. It does not fully detail the nature of any destructive side effects, but the annotation covers that signal.

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 compact and front-loaded: the core behavior comes first, followed by the assertion-type enumeration, then cost and client requirements. Every sentence contributes essential information, and there is no filler or repetition of the schema.

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?

For a paid, externally-facing verification tool with no output schema, the description covers the critical operational context: maximum assertions, assertion types, viewports, cost, and the x402 authentication requirement. The return value is only summarized as 'bounded performance evidence plus plain-English diagnosis,' leaving the exact response shape unstated. Still, this is adequate for an agent to judge whether and how to invoke the tool.

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?

Schema description coverage is 0%, so the description must compensate, and it does: it lists all six supported assertion type names and the 'up to 20' limit, which maps directly to the assertions array's maxItems. It does not explain the 'value' and 'selector' subfields, but the schema's self-describing property names and required fields make those reasonably inferable. The 'url' parameter is unambiguous from its name and format.

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's function: checking up to 20 declarative assertions across three viewports and returning performance evidence plus diagnosis. It also lists the exact assertion types. However, it does not explicitly distinguish verify_page from its siblings like check_page or compare_page, so it misses the sibling-differentiation component of a 5.

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 when to use the tool: when declarative assertion checks are needed across viewports. It also gives a critical constraint: an x402-aware client is required and standard AI assistants cannot automatically sign x402. But it never mentions alternatives or when to choose check_page, compare_page, or get_report instead, so usage guidance is only implicit.

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. 4 tool updates
    • First observedcheck_page
    • First observedcompare_page
    • First observedget_report
    • First observedverify_page

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.