Skip to main content
MCP server CX Codex

mcp-accessibility-scanner — Claude Code MCP server: web a11y audits

Runs axe checks, a Tab walkthrough and an accessibility-tree pass from inside your agent. Useful before shipping a page.

Install into Claude Code · Platform CLI All methods and platforms ↓
claude mcp add mcp-accessibility-scanner -- npx -y mcp-accessibility-scanner
Open on GitHub

What mcp-accessibility-scanner does

The server drives a Playwright browser and points axe-core at whatever page you name. Your agent can open a URL, scan the markup, step through interactive elements with Tab, and write the findings to JSON with node details and links to fixes. Add annotateScreenshot: true to scan_page and you also get a full-page PNG with the problems marked up. audit_screen_reader reads the accessibility tree, accessible names and element geometry. It never launches an actual screen reader, so manual testing still has to happen.

Install Google Chrome first — the npm package does not bring a browser. The install line is npm install -g mcp-accessibility-scanner --allow-scripts=re2, and that flag exists so the native re2 module can build. Skip it and the server dies with Cannot find module './build/Release/re2.node'. No prebuilt binary means you need a native build toolchain. A Docker Hub image with Chromium inside is also available.

Then register the server as a stdio process in your client's MCP config, with --headless, --isolated and --output-dir ./a11y-output. --isolated spins up a clean browser profile instead of touching your own Chrome session. Output paths resolve against the server's working directory, so pass an absolute --output-dir if your client starts it somewhere else. Automated checks do not certify WCAG compliance — read the coverage warnings and note which page states you never exercised.

What it helps with

  • spot images that ship without alt text
  • check text contrast before a release
  • trace where keyboard focus disappears during Tab
  • hand the team a JSON report of violations
  • inspect accessible names on a form's fields

Example prompts for the agent

  • Open http://localhost:3000 and run scan_page with annotateScreenshot: true
  • Run audit_keyboard with maxTabs: 30 and show me where focus jumps wrong
  • Run audit_screen_reader and check the accessible names on the buttons

How to install mcp-accessibility-scanner

Platform CLI

claude mcp add mcp-accessibility-scanner -- npx -y mcp-accessibility-scanner

Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more

Questions about mcp-accessibility-scanner

How do I install mcp-accessibility-scanner in Claude Code?

Run claude mcp add mcp-accessibility-scanner -- npx -y mcp-accessibility-scanner, then restart or reconnect the client.

What does mcp-accessibility-scanner do?

It loads a page in a browser and runs axe-core checks: contrast, ARIA, forms, keyboard navigation. Findings come back as text and as saved JSON reports.

What does the server need to run?

Google Chrome installed, since the npm package ships no browser. It also needs the native re2 module, which is why a global install takes --allow-scripts=re2.

Similar MCP servers

Everything for Testing and QA →

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor