{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_qf4cumrsmwgw","handle":"viewportwitness-by-apex-labs","url":"https://wellknown.network/agents/viewportwitness-by-apex-labs","links":{"self":"https://wellknown.network/agents/viewportwitness-by-apex-labs/record.json","html":"https://wellknown.network/agents/viewportwitness-by-apex-labs","markdown":"https://wellknown.network/agents/viewportwitness-by-apex-labs/record.md","api":"https://wellknown.network/api/v1/agents/viewportwitness-by-apex-labs","status":"https://wellknown.network/api/v1/agents/viewportwitness-by-apex-labs/status","claim":"https://wellknown.network/agents/viewportwitness-by-apex-labs/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/viewportwitness-by-apex-labs/claim.json","badge":"https://wellknown.network/agents/viewportwitness-by-apex-labs/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/viewportwitness-by-apex-labs/history","tools":"https://wellknown.network/api/v1/agents/viewportwitness-by-apex-labs/tools"},"ard":{"identifier":"urn:air:qa.honeygate.app:server:viewportwitness-by-apex-labs","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"ViewportWitness by Apex Labs","summary":"Agent website testing: browser QA, visual regression, Markdown extraction, and security checks.","description":"Agent website testing: browser QA, visual regression, Markdown extraction, and security checks.","publisher":{"name":"Baffles78","url":null},"homepage":"https://qa.honeygate.app","repository":"https://github.com/Baffles78/viewport-witness","version":"0.2.1","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://qa.honeygate.app/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-25T16:16:20.215498Z","publishedAt":"2026-09-25T16:16:20.215498Z","registryName":"io.github.Baffles78/viewport-witness"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"code.testing","name":"Testing","confidence":1,"provenance":"derived"},{"slug":"infra.browser-automation","name":"Browser Automation","confidence":0.911,"provenance":"derived"},{"slug":"code.security-review","name":"Security Review","confidence":0.583,"provenance":"derived"},{"slug":"infra.desktop","name":"Desktop Control","confidence":0.569,"provenance":"derived"},{"slug":"dev.terminal","name":"Terminal & Shell","confidence":0.525,"provenance":"derived"}],"categories":["code","dev","infra"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 4h ago.","lastOkAt":"2026-10-11T23:22:57.638Z","lastProbedAt":"2026-10-11T23:22:57.638Z","statusComputedAt":"2026-10-11T23:23:36.999Z","reliability30d":{"probes":60,"successRate":1,"p50Ms":293,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":60,"ok":60,"authBoundaryOk":0,"serviceOk":60,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-11T23:22:57.638Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":296,"error":null,"detail":{"tools":[{"name":"check_page","description":"Choose this for broad website testing when the caller wants screenshots, responsive layout checks, accessibility findings, console/network errors, performance e"},{"name":"verify_page","description":"Choose this only when the caller supplies explicit website assertions that need pass/fail results across three viewports. For broad exploratory browser QA use c"},{"name":"compare_page","description":"Choose this for visual regression testing after check_page has produced a completed, unexpired baseline. Compares screenshots and QA evidence, returning pixel-d"},{"name":"extract_page","description":"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"},{"name":"web_release_gate","description":"Choose this for a passive website release-security review of headers, cookie flags, mixed content, cross-origin script integrity, and server disclosure. It does"},{"name":"get_report","description":"Retrieve a submitted job without paying again. Free and read-only. Poll the same job ID until jobStatus is complete, a terminal report status PASS/FAIL/INCONCLU"}],"toolCount":6,"toolsHash":"9ab010f8cc2b89e9b55a2792227553f8631f55cc2beecfbbec91d626b0e5c50c","serverName":"ViewportWitness","capabilities":["tools"],"serverVersion":"0.2.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T17:23:14.477Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":304,"error":null,"detail":{"tools":[{"name":"check_page","description":"Choose this for broad website testing when the caller wants screenshots, responsive layout checks, accessibility findings, console/network errors, performance e"},{"name":"verify_page","description":"Choose this only when the caller supplies explicit website assertions that need pass/fail results across three viewports. For broad exploratory browser QA use c"},{"name":"compare_page","description":"Choose this for visual regression testing after check_page has produced a completed, unexpired baseline. Compares screenshots and QA evidence, returning pixel-d"},{"name":"extract_page","description":"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"},{"name":"web_release_gate","description":"Choose this for a passive website release-security review of headers, cookie flags, mixed content, cross-origin script integrity, and server disclosure. It does"},{"name":"get_report","description":"Retrieve a submitted job without paying again. Free and read-only. Poll the same job ID until jobStatus is complete, a terminal report status PASS/FAIL/INCONCLU"}],"toolCount":6,"toolsHash":"9ab010f8cc2b89e9b55a2792227553f8631f55cc2beecfbbec91d626b0e5c50c","serverName":"ViewportWitness","capabilities":["tools"],"serverVersion":"0.2.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T10:23:50.403Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":278,"error":null,"detail":{"tools":[{"name":"check_page","description":"Choose this for broad website testing when the caller wants screenshots, responsive layout checks, accessibility findings, console/network errors, performance e"},{"name":"verify_page","description":"Choose this only when the caller supplies explicit website assertions that need pass/fail results across three viewports. For broad exploratory browser QA use c"},{"name":"compare_page","description":"Choose this for visual regression testing after check_page has produced a completed, unexpired baseline. Compares screenshots and QA evidence, returning pixel-d"},{"name":"extract_page","description":"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"},{"name":"web_release_gate","description":"Choose this for a passive website release-security review of headers, cookie flags, mixed content, cross-origin script integrity, and server disclosure. It does"},{"name":"get_report","description":"Retrieve a submitted job without paying again. Free and read-only. Poll the same job ID until jobStatus is complete, a terminal report status PASS/FAIL/INCONCLU"}],"toolCount":6,"toolsHash":"9ab010f8cc2b89e9b55a2792227553f8631f55cc2beecfbbec91d626b0e5c50c","serverName":"ViewportWitness","capabilities":["tools"],"serverVersion":"0.2.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T03:20:07.280Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":297,"error":null,"detail":{"tools":[{"name":"check_page","description":"Choose this for broad website testing when the caller wants screenshots, responsive layout checks, accessibility findings, console/network errors, performance e"},{"name":"verify_page","description":"Choose this only when the caller supplies explicit website assertions that need pass/fail results across three viewports. For broad exploratory browser QA use c"},{"name":"compare_page","description":"Choose this for visual regression testing after check_page has produced a completed, unexpired baseline. Compares screenshots and QA evidence, returning pixel-d"},{"name":"extract_page","description":"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"},{"name":"web_release_gate","description":"Choose this for a passive website release-security review of headers, cookie flags, mixed content, cross-origin script integrity, and server disclosure. It does"},{"name":"get_report","description":"Retrieve a submitted job without paying again. Free and read-only. Poll the same job ID until jobStatus is complete, a terminal report status PASS/FAIL/INCONCLU"}],"toolCount":6,"toolsHash":"9ab010f8cc2b89e9b55a2792227553f8631f55cc2beecfbbec91d626b0e5c50c","serverName":"ViewportWitness","capabilities":["tools"],"serverVersion":"0.2.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T20:28:54.032Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":293,"error":null,"detail":{"tools":[{"name":"check_page","description":"Choose this for broad website testing when the caller wants screenshots, responsive layout checks, accessibility findings, console/network errors, performance e"},{"name":"verify_page","description":"Choose this only when the caller supplies explicit website assertions that need pass/fail results across three viewports. For broad exploratory browser QA use c"},{"name":"compare_page","description":"Choose this for visual regression testing after check_page has produced a completed, unexpired baseline. Compares screenshots and QA evidence, returning pixel-d"},{"name":"extract_page","description":"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"},{"name":"web_release_gate","description":"Choose this for a passive website release-security review of headers, cookie flags, mixed content, cross-origin script integrity, and server disclosure. It does"},{"name":"get_report","description":"Retrieve a submitted job without paying again. Free and read-only. Poll the same job ID until jobStatus is complete, a terminal report status PASS/FAIL/INCONCLU"}],"toolCount":6,"toolsHash":"9ab010f8cc2b89e9b55a2792227553f8631f55cc2beecfbbec91d626b0e5c50c","serverName":"ViewportWitness","capabilities":["tools"],"serverVersion":"0.2.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T14:25:42.637Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":285,"error":null,"detail":{"tools":[{"name":"check_page","description":"Choose this for broad website testing when the caller wants screenshots, responsive layout checks, accessibility findings, console/network errors, performance e"},{"name":"verify_page","description":"Choose this only when the caller supplies explicit website assertions that need pass/fail results across three viewports. For broad exploratory browser QA use c"},{"name":"compare_page","description":"Choose this for visual regression testing after check_page has produced a completed, unexpired baseline. Compares screenshots and QA evidence, returning pixel-d"},{"name":"extract_page","description":"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"},{"name":"web_release_gate","description":"Choose this for a passive website release-security review of headers, cookie flags, mixed content, cross-origin script integrity, and server disclosure. It does"},{"name":"get_report","description":"Retrieve a submitted job without paying again. Free and read-only. Poll the same job ID until jobStatus is complete, a terminal report status PASS/FAIL/INCONCLU"}],"toolCount":6,"toolsHash":"9ab010f8cc2b89e9b55a2792227553f8631f55cc2beecfbbec91d626b0e5c50c","serverName":"ViewportWitness","capabilities":["tools"],"serverVersion":"0.2.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T07:23:27.009Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":307,"error":null,"detail":{"tools":[{"name":"check_page","description":"Choose this for broad website testing when the caller wants screenshots, responsive layout checks, accessibility findings, console/network errors, performance e"},{"name":"verify_page","description":"Choose this only when the caller supplies explicit website assertions that need pass/fail results across three viewports. For broad exploratory browser QA use c"},{"name":"compare_page","description":"Choose this for visual regression testing after check_page has produced a completed, unexpired baseline. Compares screenshots and QA evidence, returning pixel-d"},{"name":"extract_page","description":"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"},{"name":"web_release_gate","description":"Choose this for a passive website release-security review of headers, cookie flags, mixed content, cross-origin script integrity, and server disclosure. It does"},{"name":"get_report","description":"Retrieve a submitted job without paying again. Free and read-only. Poll the same job ID until jobStatus is complete, a terminal report status PASS/FAIL/INCONCLU"}],"toolCount":6,"toolsHash":"9ab010f8cc2b89e9b55a2792227553f8631f55cc2beecfbbec91d626b0e5c50c","serverName":"ViewportWitness","capabilities":["tools"],"serverVersion":"0.2.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T00:27:46.873Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":297,"error":null,"detail":{"tools":[{"name":"check_page","description":"Choose this for broad website testing when the caller wants screenshots, responsive layout checks, accessibility findings, console/network errors, performance e"},{"name":"verify_page","description":"Choose this only when the caller supplies explicit website assertions that need pass/fail results across three viewports. For broad exploratory browser QA use c"},{"name":"compare_page","description":"Choose this for visual regression testing after check_page has produced a completed, unexpired baseline. Compares screenshots and QA evidence, returning pixel-d"},{"name":"extract_page","description":"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"},{"name":"web_release_gate","description":"Choose this for a passive website release-security review of headers, cookie flags, mixed content, cross-origin script integrity, and server disclosure. It does"},{"name":"get_report","description":"Retrieve a submitted job without paying again. Free and read-only. Poll the same job ID until jobStatus is complete, a terminal report status PASS/FAIL/INCONCLU"}],"toolCount":6,"toolsHash":"9ab010f8cc2b89e9b55a2792227553f8631f55cc2beecfbbec91d626b0e5c50c","serverName":"ViewportWitness","capabilities":["tools"],"serverVersion":"0.2.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T17:28:54.628Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":339,"error":null,"detail":{"tools":[{"name":"check_page","description":"Choose this for broad website testing when the caller wants screenshots, responsive layout checks, accessibility findings, console/network errors, performance e"},{"name":"verify_page","description":"Choose this only when the caller supplies explicit website assertions that need pass/fail results across three viewports. For broad exploratory browser QA use c"},{"name":"compare_page","description":"Choose this for visual regression testing after check_page has produced a completed, unexpired baseline. Compares screenshots and QA evidence, returning pixel-d"},{"name":"extract_page","description":"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"},{"name":"web_release_gate","description":"Choose this for a passive website release-security review of headers, cookie flags, mixed content, cross-origin script integrity, and server disclosure. It does"},{"name":"get_report","description":"Retrieve a submitted job without paying again. Free and read-only. Poll the same job ID until jobStatus is complete, a terminal report status PASS/FAIL/INCONCLU"}],"toolCount":6,"toolsHash":"9ab010f8cc2b89e9b55a2792227553f8631f55cc2beecfbbec91d626b0e5c50c","serverName":"ViewportWitness","capabilities":["tools"],"serverVersion":"0.2.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T11:27:20.036Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":283,"error":null,"detail":{"tools":[{"name":"check_page","description":"Choose this for broad website testing when the caller wants screenshots, responsive layout checks, accessibility findings, console/network errors, performance e"},{"name":"verify_page","description":"Choose this only when the caller supplies explicit website assertions that need pass/fail results across three viewports. For broad exploratory browser QA use c"},{"name":"compare_page","description":"Choose this for visual regression testing after check_page has produced a completed, unexpired baseline. Compares screenshots and QA evidence, returning pixel-d"},{"name":"extract_page","description":"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"},{"name":"web_release_gate","description":"Choose this for a passive website release-security review of headers, cookie flags, mixed content, cross-origin script integrity, and server disclosure. It does"},{"name":"get_report","description":"Retrieve a submitted job without paying again. Free and read-only. Poll the same job ID until jobStatus is complete, a terminal report status PASS/FAIL/INCONCLU"}],"toolCount":6,"toolsHash":"9ab010f8cc2b89e9b55a2792227553f8631f55cc2beecfbbec91d626b0e5c50c","serverName":"ViewportWitness","capabilities":["tools"],"serverVersion":"0.2.1","protocolVersion":"2025-06-18"}}],"tools":[{"name":"check_page","description":"Choose this for broad website testing when the caller wants screenshots, responsive layout checks, accessibility findings, console/network errors, performance e"},{"name":"verify_page","description":"Choose this only when the caller supplies explicit website assertions that need pass/fail results across three viewports. For broad exploratory browser QA use c"},{"name":"compare_page","description":"Choose this for visual regression testing after check_page has produced a completed, unexpired baseline. Compares screenshots and QA evidence, returning pixel-d"},{"name":"extract_page","description":"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"},{"name":"web_release_gate","description":"Choose this for a passive website release-security review of headers, cookie flags, mixed content, cross-origin script integrity, and server disclosure. It does"},{"name":"get_report","description":"Retrieve a submitted job without paying again. Free and read-only. Poll the same job ID until jobStatus is complete, a terminal report status PASS/FAIL/INCONCLU"}],"package":null,"toolSurface":{"id":"ts_ytkgx9pap9x3","endpointId":"ep_2rmjf3kjzmau","hash":"9ab010f8cc2b89e9b55a2792227553f8631f55cc2beecfbbec91d626b0e5c50c","toolCount":6,"serverName":"ViewportWitness","serverVersion":"0.2.1","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-02T00:23:21.919Z","lastSeenAt":"2026-10-11T23:22:57.681Z","observations":37,"toolNames":["check_page","verify_page","compare_page","extract_page","web_release_gate","get_report"],"distinctSurfaces":3},"endpointFacts":[{"id":"ep_2rmjf3kjzmau","url":"https://qa.honeygate.app/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-10T07:23:27.022Z","auth":{"observedAt":"2026-10-10T07:23:27.142Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-10T07:23:27.153Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"honeygate.app","issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validFrom":"2026-09-30T03:07:52.000Z","validTo":"2026-12-29T03:07:51.000Z","daysToExpiry":78,"sanCount":2,"fingerprint256":"40:B4:F5:2F:94:FE:55:3D:9A:B5:DF:E3:B7:4A:E0:47:43:52:36:7F:33:6F:5F:3D:BE:51:66:09:EF:0E:E5:93"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.Baffles78/viewport-witness","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.Baffles78%2Fviewport-witness","firstSeenAt":"2026-09-25T20:22:08.532Z","fetchedAt":"2026-10-09T17:20:33.586Z","normalizedAt":"2026-10-09T17:20:33.586Z"}]},"firstSeenAt":"2026-09-25T20:22:08.532Z","updatedAt":"2026-10-11T23:24:47.514Z"}