Scan any URL for WCAG accessibility issues (axe-core) and get per-element fixes for an AI agent.
An MCP server that lets an AI agent scan a web page for WCAG accessibility issues and get back findings it can act on. The agent calls one tool with a URL; it gets every violation grouped by severity, each with the exact element selector, the offending HTML, the specific failure, the WCAG success criterion, and a fix-guide link — plus the items that still need human review.
It runs the real axe-core engine in your local Chrome
(via playwright-core), so nothing about the pages you scan leaves your machine. It scrolls the page
first so lazy-loaded content is actually checked rather than silently skipped, and it resolves
color contrast over CSS gradients, which most tools leave as "needs review."
Upgrading from 0.1.x? 0.2.0 sees more of each page and returns more findings for the same URL. See CHANGELOG.md.
Part of accessibilityscanner.app.
CHROME_PATH environment variable to a Chromium binary)Add it to your MCP client's config. No global install needed — npx fetches it on first run.
Claude Desktop (claude_desktop_config.json), Cursor, Claude Code, or any MCP client:
{
"mcpServers": {
"accessibility-scanner": {
"command": "npx",
"args": ["-y", "accessibility-scanner-mcp"]
}
}
}
If Chrome is not auto-detected, add an env block:
{
"mcpServers": {
"accessibility-scanner": {
"command": "npx",
"args": ["-y", "accessibility-scanner-mcp"],
"env": { "CHROME_PATH": "/usr/bin/google-chrome" }
}
}
}
scan_accessibility| Input | |
|---|---|
url (string, required) | The http(s) URL to scan. |
Returns a report grouped by severity. For each rule: the WCAG criterion, a fix-guide link, and per element the selector, HTML, and exact failure. Example flow with an agent:
You: Audit https://example.com for accessibility and fix what you can. Agent: (calls
scan_accessibility) → reads the findings → edits the code → re-scans.
Automated testing covers the machine-checkable subset of WCAG (most of the issues on a typical page, but not all of it). Items that need human judgement are returned under "Needs manual review." It never claims a page is "compliant."
MIT
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y accessibility-scanner-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-bishop81-accessibility-scanner-mcp": {
"command": "npx",
"args": [
"-y",
"accessibility-scanner-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceaccessibility-scanner-mcpnpmio.github.Bishop81/accessibility-scanner-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.