npm.io
1.23.0 • Published 3 months agoCLI

@wcag-checkr/mcp

Licence
UNLICENSED
Version
1.23.0
Deps
2
Size
18 kB
Vulns
0
Weekly
0

@wcag-checkr/mcp

Model Context Protocol server for wcagcheckr. Lets LLM-IDEs drive accessibility audits, verify forensic receipts, and look up tier features via tool-use.

Why this matters

axe DevTools shipped an MCP server in 2026 (paid tier). We ship one for free, with one extra: it audits across our 108-state matrix (hover/focus/dark/RTL/breakpoints), so the LLM gets findings competitors' single-state audits would miss.

Tools exposed

Tool What it does
audit_url Run a multi-state accessibility audit on a URL. Returns structured findings (JSON / SARIF / JUnit).
verify_receipt Independently verify a wcagcheckr forensic-anchor receipt's ed25519 signature against the published public key.
get_tier_config Fetch the per-product tier feature flags.

Install

npm install -g @wcag-checkr/mcp @wcag-checkr/ci
npx playwright install chromium

Use with Claude Code

Add to ~/.claude/mcp.json (or use claude mcp add if available in your version):

{
  "mcpServers": {
    "wcagcheckr": {
      "command": "wcagcheckr-mcp"
    }
  }
}

Then in any conversation:

"Audit https://staging.example.com for accessibility issues."

Claude will call audit_url and return findings, ready for fix-it discussion.

Use with Cursor

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "wcagcheckr": {
      "command": "wcagcheckr-mcp"
    }
  }
}

Use with Continue

Add to your Continue config under mcpServers:

{
  "mcpServers": [
    {
      "name": "wcagcheckr",
      "command": "wcagcheckr-mcp"
    }
  ]
}

Environment variables

Var Default Purpose
WCAGCHECKR_SERVER_URL https://api.wcagcheckr.com Override the server base URL (e.g. for self-hosted instance)
WCAGCHECKR_PRODUCT_SLUG wcagcheckr Override the product slug
WCAGCHECKR_CI_PATH bundled Override the path to the CI runner (used by audit_url)

Examples — what an LLM can do with this

Auditing a deployment preview

User: "Audit my Vercel preview at https://my-site-pr-42.vercel.app — fail the build if there are any serious violations."

Claude calls audit_url with threshold: serious, gets back JSON, summarizes findings, and tells the user the exit code mapping.

Validating a forensic receipt

User: pastes a forensic-log entry copied from a defense bundle

"Is this receipt actually from wcagcheckr?"

Claude calls verify_receipt, gets a "✓ valid signature" response, explains what was verified (and what wasn't — i.e., directs the user to openssl ts -verify for the TSA token).

Tier-feature questions

User: "Does the Solo plan include forensic anchoring?"

Claude calls get_tier_config, finds features.forensicAnchoring: true for the solo plan, answers.

Limitations (v0)

  • audit_url shells out to @wcag-checkr/ci which spawns Chromium with the loaded extension. Heavy — single audits take 15-60s. Don't expect sub-second response.
  • verify_receipt only verifies our ed25519 signature. Full RFC 3161 timestamp verification against FreeTSA's CA chain is intentionally out of scope (use openssl ts -verify for that — see https://api.wcagcheckr.com/verify for openssl-command instructions tailored to a specific receipt).
  • No streaming. Audits report results when done, not incrementally.

License

UNLICENSED until commercial release. See wcagcheckr.com/license.

Keywords