MCP Accessibility Scanner
UnclaimedAn MCP (Model Context Protocol) server for performing accessibility audits on webpages using axe-core.
Install
claude mcp add mcp-accessibility-scanner -s user -- docker run -i --rm justasmonkev/mcp-accessibility-scannerUnclaimed listing
Is this your MCP server?
This listing was auto-indexed from the public record. Claim it to edit the page, set compatibility and unlock growth tools. Takes under two minutes.
Claim this serverTools (40)
annotateScreenshot
(default false): capture an annotated screenshot of the violations
audit_keyboard
Audits real keyboard focus behavior by pressing Tab (and optional Shift+Tab) with practical heuristics.
audit_screen_reader
Audits what a screen reader actually announces, using the browser's own accessibility tree (page.ariaSnapshot) plus element geometry. No screen reader is installed or driven; this is a static reading of the exposed tree.
audit_site
Crawls and scans multiple internal pages, then aggregates violations across the site.
browser_click
Perform click on a web page element.
browser_close
Close the page.
browser_default_timeout
Set default operation timeout for existing tabs.
browser_drag
Perform drag and drop between two elements.
browser_drop
Simulate an external drag and drop of files or clipboard-like data onto an element, for testing drop zones that never see a drag start inside the page.
browser_evaluate
Evaluate a JavaScript expression on the page, or on a specific element when a ref is provided. The function's return value is serialized back as the result.
browser_fill_form
Fill multiple fields with one call.
browser_find
Search the current page accessibility snapshot without returning the full snapshot.
browser_hover
Hover over element on page.
browser_install
Install the configured browser engine (use when browser executable is missing).
browser_navigate
Navigate to a URL.
browser_navigate_back
Go back to the previous page.
browser_navigation_timeout
Set default navigation timeout for existing tabs.
browser_pdf_save
Save page as PDF.
browser_press_key
Press a key on the keyboard.
browser_resize
Resize the browser window.
browser_select_option
Select an option in a dropdown.
browser_snapshot
Capture accessibility snapshot of the current page (better than screenshot for analysis).
browser_tabs
Manage browser tabs in one tool.
browser_take_screenshot
Take a screenshot of the current page.
browser_type
Type text into editable element.
duplicate-accessible-name
sibling links with the same name that lead to different URLs (WCAG 2.4.4)
element
and ref must be supplied together, or not at all; supplying one without the other is rejected.
filename-as-accessible-name
image alt text that is a file name, e.g. IMG1234.jpg, DSC00123 (WCAG 1.1.1). Only images are checked: a link or button legitimately named after the file it downloads (logo.png) is not a defect.
includeIncomplete
(default true): also report Axe "incomplete" results
includeSelectors
/ excludeSelectors: CSS selectors that scope the scan
label-in-name-mismatch
the accessible name does not contain the visible label, which breaks voice control (WCAG 2.5.3). The visible label of <input type="submitbuttonreset"> is read from its value, and a web component's label is read from its open shadow root.
maxNodesPerViolation
(default 10): cap on nodes reported per rule
missing-accessible-name
controls and images exposed with no accessible name (WCAG 4.1.2)
paths
are read from the filesystem of the machine running the server, exactly as browserfileupload does, and a relative path resolves against the server's working directory. Unlike browserfileupload this needs no file chooser to be open, so any page with a dragover handler is a valid target — treat it as
reading-order-mismatch
accessibility tree order (what is read) versus visual position (WCAG 1.3.2), i.e. order, flex-direction: row-reverse, absolute positioning
scan_page
Performs a comprehensive accessibility scan on the current page using Axe-core.
scan_page_matrix
Runs Axe scans on the same page across viewport/media/zoom variants and compares deltas against baseline.
uninformative-accessible-name
names such as "click here", "read more", "image" that mean nothing out of context (WCAG 2.4.4)
violationsTag
Array of WCAG/violation tags to check
withRules
/ disableRules: Axe rule ids that narrow which rules run