home / mcp / mcp accessibility scanner mcp server
Provides automated WCAG accessibility scanning and browser automation via Playwright and Axe-core for LLM-assisted checks.
Configuration
View docs{
"mcpServers": {
"justasmonkev-mcp-accessibility-scanner": {
"command": "npx",
"args": [
"-y",
"mcp-accessibility-scanner"
]
}
}
}You can run automated WCAG accessibility scans and browser automation through a dedicated MCP server. It uses Playwright and Axe-core to check compliance, capture annotated visuals, and produce detailed reports, enabling you to integrate accessibility checks into your workflow with local or remote MCP clients.
You will run this MCP server locally or connect to it from an MCP client to perform accessibility scans, navigate web pages, capture screenshots, and generate reports. Start by launching the server, then use the available tools to scan individual pages, audit entire sites, or perform keyboard and element interactions while collecting actionable results. You can tailor behavior with an optional configuration file and monitor outputs through JSON reports.
# Prerequisites: Node.js and npm must be installed on your system.
# Verify versions (optional):
node -v
npm -v
# Install the MCP Accessibility Scanner globally
npm install -g mcp-accessibility-scanner
# Optional: install in a project (if you prefer local installation)
npm install -D mcp-accessibility-scanner{
"mcpServers": {
"accessibility-scanner": {
"command": "npx",
"args": ["-y", "mcp-accessibility-scanner"]
}
}
}Configuration is optional but can tailor Playwright behavior, timeouts, and network rules. You can pass a config file to customize runtime options or run with defaults. This enables you to control the browser, timeouts, and allowed network origins for your scans.
Configure the MCP server to adjust how the browser launches and how long operations wait before timing out. You can specify which browser to use (Chromium, Firefox, WebKit), set headless mode, and choose a browser channel. You may also define navigation and default timeouts, along with network allow/deny lists.
"browser": {
"browserName": "chromium",
"launchOptions": {
"headless": true,
"channel": "chrome"
}
},
"timeouts": {
"navigationTimeout": 60000,
"defaultTimeout": 5000
},
"network": {
"allowedOrigins": ["example.com", "trusted-site.com"],
"blockedOrigins": ["ads.example.com"]
}You can extend the configuration by pointing to a config file at runtime. Use the following pattern to pass a path to your custom configuration.
"mcpServers": {
"accessibility-scanner": {
"command": "npx",
"args": ["-y", "mcp-accessibility-scanner", "--config", "/path/to/config.json"]
}
}Performs a comprehensive accessibility scan on the current page using Axe-core. You supply violation tags to check, and you receive detailed results.
Crawls and scans multiple internal pages, aggregating violations into a JSON report for the whole site.
Runs Axe scans across multiple viewport/emoji variations and compares results against a baseline, producing per-variant deltas.
Audits keyboard focus behavior, checks focus visibility and traps, and can produce a screenshot on issues with an automated JSON report.
Navigate the browser to a specified URL.
Click on a page element using an element reference or description.
Type text into an editable element, with optional submission and timing controls.
Hover over an element on the page to reveal tooltips or menus.
Drag and drop between two elements to simulate complex UI interactions.
Capture a screenshot of the current page or a specific element.
Save the current page as a PDF file.
Close the current page or tab.
Capture an accessibility snapshot of the current page to analyze structure and elements.
List all open browser tabs.
Open a new tab, optionally navigating to a URL.