MCP server: One MCP server.

Overlayrisk Witness

@mertcanvuralMCP server · External

Independent before/after accessibility-overlay (accessiBe/UserWay) witness for any public URL.

Web accessibilityv0.1.0MITJavaScript
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

npmoverlayrisk-witness-mcpv0.1.0

Run

npx -y overlayrisk-witness-mcp

MCP client config

{
  "mcpServers": {
    "overlayrisk-witness": {
      "command": "npx",
      "args": [
        "-y",
        "overlayrisk-witness-mcp"
      ]
    }
  }
}
README2 min read

OverlayRiskWitness MCP server

A Model Context Protocol server that runs the free, independent before/after accessibility-overlay witness from OverlayRiskWitness on any public URL.

Accessibility overlay widgets (accessiBe, UserWay, and similar) are sold as one-line ADA/WCAG compliance fixes, but independent testing routinely shows the underlying page is unchanged for real assistive-technology users. This server lets an AI agent run the witness: it loads a page with the overlay on, then off, captures both states, and returns one documented finding where the page's public accessibility/compliance claims don't hold up — with a UTC timestamp.

Findings are evidence, not a legal compliance ruling. This server is independent of accessiBe and UserWay; it tests their effect, it does not sell or defend an overlay.

What this server is (and isn't)

This is a thin client. It contains no scanning logic and no secrets. Its single tool POSTs to the hosted API at https://overlayrisk.com/api/witness, which does the real work (overlay detection, headless before/after capture, claim extraction). The full timestamped Risk Packet is a paid checkout on the website — see overlayrisk.com/pricing. The MCP server is a free funnel; it never handles payment.

Tool

witness_page

Input{ "url": "https://example.com/checkout" } — a public HTTP/HTTPS page URL
SuccessThe free-witness JSON: runId, siteUrl, overlayVendor (accessibe/userway), pagesTested, claimsTested, didNotHoldUp, freeFinding, lockedFindingCount — plus a note linking to the paid Risk Packet
Error{ status, code, error } (e.g. overlay_no_effect, page_fetch_failed, witness_timeout)

A single witness run can take up to ~3 minutes on cold/heavy sites. That exceeds many MCP clients' default 60s request timeout. The server emits periodic progress notifications, so clients that honor resetTimeoutOnProgress stay connected automatically; clients that don't should raise their per-request timeout.

Install

Run directly with npx (no global install):

bash
npx overlayrisk-witness-mcp

The process speaks MCP over stdio.

Claude Desktop / Cursor / other MCP clients

Add to your client's MCP config:

json
{
  "mcpServers": {
    "overlayrisk-witness": {
      "command": "npx",
      "args": ["-y", "overlayrisk-witness-mcp"]
    }
  }
}

Configuration

Env varDefaultPurpose
OVERLAYRISK_API_URLhttps://overlayrisk.com/api/witnessOverride the witness endpoint (e.g. for local dev)
OVERLAYRISK_TIMEOUT_MS200000Request timeout in ms

No API key is required — the free one-page witness is public.

Develop

bash
npm install
npm run smoke   # offline handshake test (lists tools, no network)
npm start       # run the server on stdio

License

MIT © Mert Can Vural

Similar modules

Browse Web accessibility