PlugWiki
MCP Accessibility Scanner logo

Accessibility Scanner MCP Server: Setup for Claude, Cursor and Other Apps

CommunityLocal
Getnpmmcp-accessibility-scannerjustasmonkev/mcp-accessibility-scanner

Lets Claude, Cursor and other coding assistants open your web pages in a real browser and check them for accessibility problems.

This server drives a Chrome browser through Playwright and runs axe-core accessibility scans, keyboard focus checks and screen reader style checks on pages you point it at. It runs on your computer with no account or API key, and you need Google Chrome installed. Automated checks do not prove WCAG compliance, and the README says manual testing is still needed. The assistant can also click, type and run scripts in the page, so aim it at your own app first.

Good for

  • Front-end developers who want WCAG checks while they build
  • QA and accessibility testers who want repeatable keyboard and screen-reader-style audits
  • Teams that audit a whole site and keep the JSON reports

Works in

12 should work

Tap an app to see how to set it up and any known problems.

Install MCP Accessibility Scanner

Claude Code

  1. 1

    Copy this prompt.

    Add the MCP Accessibility Scanner server to Claude Code. Run this command:
    
    claude mcp add accessibility-scanner -- npx --allow-scripts=re2 mcp-accessibility-scanner --isolated
    
    Then check that it loaded and tell me if I need to sign in or restart.
  2. 2

    Paste it into Claude Code. It shows the change and asks before running it.

Requires Node.js and npm, Google Chrome.

Read-only mode: There is no read-only mode. Add `--blocked-tools browser_evaluate,browser_file_upload` after the package name to hide the script and upload tools.

Install Google Chrome first: the package does not include a browser. The --allow-scripts=re2 flag is needed on npm 12 so the native re2 module installs. We add --isolated ourselves: the README's own config uses it, but its VS Code command does not, and without it the browser may reuse a saved profile with your logins. Add --headless to hide the browser window, and --output-dir <absolute path> to choose where reports and screenshots are saved. Other apps use the same command in their own config format.

Built from the package data we hold. Not yet tested by us. Source.

Tools

  • Checks the open page for WCAG accessibility problems with axe

    Runs the axe-core rule set on the current page and lists each violation with its impact, affected elements and a fix link. It can also save a screenshot with the problems boxed.

    Try: “Scan the page you just opened for WCAG AA problems.”

    Network · scan_page

  • Crawls pages on the same site and totals the accessibility problems

    Follows internal links from the current page, scans each page and saves a JSON report that combines the violations found across the site.

    Try: “Audit the whole docs site and give me the worst pages.”

    Write · audit_site

  • Compares scan results across screen sizes, color schemes and zoom levels

    Runs the same accessibility scan under several variants, such as mobile and desktop, dark mode, reduced motion and zoom, and compares each to the baseline. Saves a JSON report.

    Try: “Compare accessibility on this page at mobile and desktop sizes.”

    Write · scan_page_matrix

  • Tabs through the page to check focus order, visible focus and skip links

    Presses Tab through the page and reports focus jumps, missing focus outlines, skip links and keyboard traps. Saves a JSON report.

    Try: “Check whether I can reach every control on this page with only the keyboard.”

    Write · audit_keyboard

  • Checks element names and reading order the way a screen reader would see them

    Reads the browser accessibility tree and element positions to flag poor or missing names and odd reading order. It does not run an actual screen reader. Saves a JSON report.

    Try: “Check whether the buttons on this page have useful names.”

    Write · audit_screen_reader

  • Opens a web address in the browser

    Loads the URL you give it in the controlled browser, including local development servers.

    Try: “Open http://localhost:3000 in the browser.”

    Network · browser_navigate

  • Goes back to the previous page

    Moves the browser one step back in its history.

    Try: “Go back one page.”

    Read · browser_navigate_back

  • Reads the page as a list of controls and text

    Captures the accessibility tree of the page. The assistant uses it to see what is on screen and which element to act on.

    Try: “Show me what is on this page.”

    Read · browser_snapshot

  • Searches the page snapshot for words or a pattern

    Looks through the snapshot for text or a regular expression and returns matching elements with a few lines of context.

    Try: “Find the "Sign up" button on the page.”

    Read · browser_find

  • Clicks an element on the page

    Clicks the element the assistant picks from the snapshot. Clicks can submit forms or trigger actions on the live site.

    Try: “Click the "Continue" button.”

    Write · browser_click

  • Types text into a field

    Enters text into an editable element, with an option to press Enter after.

    Try: “Type my test email into the email field.”

    Write · browser_type

  • Fills several form fields in one step

    Sets multiple fields at once, such as text boxes, checkboxes, radios and dropdowns.

    Try: “Fill in the signup form with test data.”

    Write · browser_fill_form

Read from the source code

Permissions

medium risk · 6 things to watch

Medium risk

The assistant can control a real browser on any site you point it at, including clicking, typing, running scripts and uploading local files. Use the isolated profile from the setup and block the script and upload tools if you do not need them.

What it can do

  • Read your data
  • Create and change things
  • Delete things
  • Read-only mode

Watch out for

  • It drives a real browser that can click and submit

    Click, type and form tools act on live pages, so pointing it at a site you are logged in to can have real effects. The README setup uses an isolated profile, which starts with no logins. github.com

  • It can run JavaScript in any page it opens

    The evaluate tool runs scripts on the loaded page. Block it with the blocked-tools option if you do not need it. github.com

  • It can upload any file from your computer

    The upload and drop tools read local files and send them to the page. Set the allowed upload folders option to limit this to a safe folder. github.com

  • Reports and screenshots are saved to disk

    The audit tools and screenshot tool write files to the output folder you set. Existing files are never overwritten by the screenshot and PDF tools. github.com

  • Page-defined tools can appear automatically

    If a page exposes its own tools, they are added to the list and sit outside the allow and block lists. Treat their names and results as untrusted. github.com

  • Browser download is opt-in

    Installing a browser is off unless you start the server with the install capability. The tool downloads files without checksum checks, per the README. github.com

Security advisories

No published security advisories as of Nov 1, 2026.

Technical details
Turning on read-onlyNo read-only mode. You can hide named tools with --blocked-tools, for example browser_evaluate and browser_file_upload, but blocking one tool does not stop the same action through another.
Talks toAny website you ask it to open or crawl
Sign-in and keysNo account. With --isolated the browser profile lives in memory; reports and screenshots go to the output folder.

Questions

Is MCP Accessibility Scanner official?

No. It is a community project by JustasMonkev, built on Playwright and axe-core, and not made by Deque, Microsoft or an assistant vendor.

Do I need an API key or account?

No. It runs on your computer with no sign-in or key. You do need Google Chrome installed, because the npm package does not include a browser.

Why does it fail to start with a re2 error?

npm 12 skips dependency install scripts, and the native re2 module needs one. The install command in the box above passes the allow-scripts flag for re2 so it installs. On older npm versions the flag is ignored.

Does it prove my site meets WCAG?

No. The README says automated checks do not certify WCAG compliance and manual testing is still needed. The screen reader audit reads the browser accessibility tree and does not use a real screen reader.

Can it run read-only?

Not fully. There is no read-only switch, but you can hide specific tools such as the script runner and file upload with the blocked-tools option. Click and type tools stay unless you block them too.

Does it test pages behind a login?

Yes. The README describes signing in by hand in the browser or loading a saved storage-state file for repeatable runs. Use a test account, because the browser can click and submit forms.

Which tools are off by default?

PDF export, coordinate-based mouse tools, verify tools, the recorder and browser install. You turn them on at startup with the caps option.

How is it different from Playwright MCP?

It is a separate community server built on Playwright, not Microsoft's @playwright/mcp (see the Playwright MCP page). The browser tools (navigate, snapshot, click, type, evaluate, tabs) have the same names, but this server registers 33 tools by default and adds five accessibility tools: scan_page, audit_site, scan_page_matrix, audit_keyboard and audit_screen_reader. Use Microsoft's server for general browser automation and this one for accessibility audits.

Information

updated Nov 2, 2026

Publisher
Community
Package
mcp-accessibility-scanner
Registry
npm
Transport
stdio
Auth
None
Version
5.0.0
License
MIT
Last commit
Oct 31, 2026
Listed in
Official MCP registry

GitHubnpmOfficial MCP Registry

Sources

Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.

Show all 3
  1. github.com · github.com
  2. github.com · github.com
  3. github.com · github.com

Facts from the official MCP registry, GitHub, npm, PyPI and the Docker catalog. Updated Nov 2, 2026.