ViewportWitness by Apex Labs
Agent website testing: browser QA, visual regression, Markdown extraction, and security checks.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"viewport-witness": {
"url": "https://qa.honeygate.app/mcp"
}
}
}Remote-Endpunkte
https://qa.honeygate.app/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (6)
🔴check_page(url)
Choose this for broad website testing when the caller wants screenshots, responsive layout checks, accessibility findings, console/network errors, performance evidence, and a release diagnosis across phone portrait, phone landscape, and desktop. For explicit pass/fail assertions use verify_page instead. Costs $0.08 USDC via x402. Requires an x402-aware client to authorise payment; standard AI assistants cannot automatically sign x402.
Eingabe-Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Public HTTPS page URL. Private, loopback, credentialed, and non-HTTPS URLs are rejected."
}
},
"required": [
"url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴verify_page(url, assertions)
Choose this only when the caller supplies explicit website assertions that need pass/fail results across three viewports. For broad exploratory browser QA use check_page instead. 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.
Eingabe-Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Public HTTPS page URL. Private, loopback, credentialed, and non-HTTPS URLs are rejected."
},
"assertions": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "noHorizontalOverflow"
}
},
"required": [
"type"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "noConsoleErrors"
}
},
"required": [
"type"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "textVisible"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Visible text to find on the rendered page."
}
},
"required": [
"type",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "titleIncludes"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Text that the document title must include."
}
},
"required": [
"type",
"value"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "selectorExists"
},
"selector": {
"type": "string",
"minLength": 1,
"maxLength": 300,
"description": "CSS selector that must exist in the DOM."
}
},
"required": [
"type",
"selector"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "selectorVisible"
},
"selector": {
"type": "string",
"minLength": 1,
"maxLength": 300,
"description": "CSS selector that must be visibly rendered."
}
},
"required": [
"type",
"selector"
],
"additionalProperties": false
}
]
},
"minItems": 1,
"maxItems": 20,
"description": "One to twenty explicit pass/fail assertions to evaluate across all three viewports."
}
},
"required": [
"url",
"assertions"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴compare_page(url, baselineJobId)
Choose this for visual regression testing after check_page has produced a completed, unexpired baseline. Compares screenshots and QA evidence, returning pixel-diff percentages, new or resolved accessibility issues, error deltas, performance evidence, and diagnosis. Costs $0.12 USDC via x402. Requires an x402-aware client; standard AI assistants cannot automatically sign x402.
Eingabe-Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Public HTTPS page URL. Private, loopback, credentialed, and non-HTTPS URLs are rejected."
},
"baselineJobId": {
"type": "string",
"format": "uuid",
"description": "Completed, unexpired ViewportWitness check job to use as the visual baseline."
}
},
"required": [
"url",
"baselineJobId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴extract_page(url, maxOutputTokens)
Choose this when an agent needs the readable content of a public webpage as deterministic clean Markdown, without screenshots or browser execution. Costs $0.005 USDC via x402.
Eingabe-Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Public HTTPS page URL. Private, loopback, credentialed, and non-HTTPS URLs are rejected."
},
"maxOutputTokens": {
"type": "integer",
"minimum": 500,
"maximum": 12000,
"description": "Optional approximate output budget from 500 to 12000 tokens."
}
},
"required": [
"url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴web_release_gate(url)
Choose this for a passive website release-security review of headers, cookie flags, mixed content, cross-origin script integrity, and server disclosure. It does not run browser QA, probe the site, execute code, or replace a security audit. Costs $0.05 USDC via x402.
Eingabe-Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Public HTTPS page URL. Private, loopback, credentialed, and non-HTTPS URLs are rejected."
}
},
"required": [
"url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_report(jobId)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"jobId": {
"type": "string",
"format": "uuid",
"description": "ViewportWitness job UUID returned by a paid tool."
}
},
"required": [
"jobId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Nachweis