npm overlayrisk-witness-mcpstdioMITupdated 2mo ago
A Model Context Protocol server that runs the free, independent before/after accessibility-overlay witness from OverlayRiskWitness on any public URL.
What can you do with overlayrisk witness?
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 |
| Success | The 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):
npx overlayrisk-witness-mcp
The process speaks MCP over stdio.
Claude Desktop / Cursor / other MCP clients
Add to your client's MCP config:
{
"mcpServers": {
"overlayrisk-witness": {
"command": "npx",
"args": ["-y", "overlayrisk-witness-mcp"]
}
}
}
Configuration
| Env var | Default | Purpose |
|---|---|---|
OVERLAYRISK_API_URL |
https://overlayrisk.com/api/witness |
Override the witness endpoint (e.g. for local dev) |
OVERLAYRISK_TIMEOUT_MS |
200000 |
Request timeout in ms |
No API key is required — the free one-page witness is public.
Develop
npm install
npm run smoke # offline handshake test (lists tools, no network)
npm start # run the server on stdio
License
MIT © Mert Can Vural
Install
Add overlayrisk witness to your client. Pick the one you use.
claude mcp add overlayrisk-witness-mcp -- npx -y overlayrisk-witness-mcpcodex mcp add overlayrisk-witness-mcp -- npx -y overlayrisk-witness-mcpamp mcp add overlayrisk-witness-mcp -- npx -y overlayrisk-witness-mcp{
"mcpServers": {
"overlayrisk-witness-mcp": {
"command": "npx",
"args": [
"-y",
"overlayrisk-witness-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"overlayrisk-witness-mcp": {
"command": "npx",
"args": [
"-y",
"overlayrisk-witness-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"overlayrisk-witness-mcp","command":"npx","args":["-y","overlayrisk-witness-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"overlayrisk-witness-mcp": {
"command": "npx",
"args": [
"-y",
"overlayrisk-witness-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"overlayrisk-witness-mcp": {
"command": "npx",
"args": [
"-y",
"overlayrisk-witness-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"overlayrisk-witness-mcp": {
"command": "npx",
"args": [
"-y",
"overlayrisk-witness-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"overlayrisk-witness-mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"overlayrisk-witness-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"overlayrisk-witness-mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"overlayrisk-witness-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y overlayrisk-witness-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation22/25
- Maintenance16/25
- Trust13/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 64 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.1.0Latest | Jun 28, 2026 |