MCP Accessibility Scanner 🔍
A Model Context Protocol (MCP) server that provides automated web accessibility scanning using Playwright and Axe-core. This server enables LLMs to perform WCAG compliance checks, capture annotated screenshots, and generate detailed accessibility reports. A powerful Model Context Protocol (MCP) server that provides automated web accessibility scanning and browser automation using Playwright and Axe-core. This server enables LLMs to perform WCAG compliance checks, interact with web pages, manage persistent browser sessions, and generate detailed accessibility reports with visual annotations.
Features
Accessibility Scanning
✅ Full WCAG 2.0/2.1/2.2 compliance checking (A, AA, AAA levels)
🖼️ Automatic screenshot capture with violation highlighting
📄 Detailed JSON reports with remediation guidance
🎯 Support for specific violation categories (color contrast, ARIA, forms, keyboard navigation, etc.)
Browser Automation
🖱️ Click, hover, and drag elements using accessibility snapshots
⌨️ Type text and handle keyboard inputs
🔍 Capture page snapshots to discover all interactive elements
📸 Take screenshots and save PDFs
🎯 Support for both element-based and coordinate-based interactions
Advanced Features
📑 Tab management for multi-page workflows
🌐 Monitor console messages and network requests
⏱️ Wait for dynamic content to load
📁 Handle file uploads and browser dialogs
🔄 Navigate through browser history
Installation
You can install the package using any of these methods:
Using npm:
Installation in VS Code
Install the Accessibility Scanner in VS Code using the VS Code CLI:
For VS Code:
For VS Code Insiders:
Configuration
Here's the Claude Desktop configuration:
Available Tools
The MCP server provides comprehensive browser automation and accessibility scanning tools:
Core Accessibility Tool
scan_page
Performs a comprehensive accessibility scan on the current page using Axe-core.
Parameters:
violationsTag
: Array of WCAG/violation tags to check
Supported Violation Tags:
- WCAG standards:
wcag2a
,wcag2aa
,wcag2aaa
,wcag21a
,wcag21aa
,wcag21aaa
,wcag22a
,wcag22aa
,wcag22aaa
- Section 508:
section508
- Categories:
cat.aria
,cat.color
,cat.forms
,cat.keyboard
,cat.language
,cat.name-role-value
,cat.parsing
,cat.semantics
,cat.sensory-and-visual-cues
,cat.structure
,cat.tables
,cat.text-alternatives
,cat.time-and-media
Navigation Tools
browser_navigate
Navigate to a URL.
- Parameters:
url
(string)
browser_navigate_back
Go back to the previous page.
browser_navigate_forward
Go forward to the next page.
Page Interaction Tools
browser_snapshot
Capture accessibility snapshot of the current page (better than screenshot for analysis).
browser_click
Perform click on a web page element.
- Parameters:
element
(description),ref
(element reference),doubleClick
(optional)
browser_type
Type text into editable element.
- Parameters:
element
,ref
,text
,submit
(optional),slowly
(optional)
browser_hover
Hover over element on page.
- Parameters:
element
,ref
browser_drag
Perform drag and drop between two elements.
- Parameters:
startElement
,startRef
,endElement
,endRef
browser_select_option
Select an option in a dropdown.
- Parameters:
element
,ref
,values
(array)
browser_press_key
Press a key on the keyboard.
- Parameters:
key
(e.g., 'ArrowLeft' or 'a')
Screenshot & Visual Tools
browser_take_screenshot
Take a screenshot of the current page.
- Parameters:
raw
(optional),filename
(optional),element
(optional),ref
(optional)
browser_pdf_save
Save page as PDF.
- Parameters:
filename
(optional, defaults topage-{timestamp}.pdf
)
Browser Management
browser_close
Close the page.
browser_resize
Resize the browser window.
- Parameters:
width
,height
Tab Management
browser_tab_list
List all open browser tabs.
browser_tab_new
Open a new tab.
- Parameters:
url
(optional)
browser_tab_select
Select a tab by index.
- Parameters:
index
browser_tab_close
Close a tab.
- Parameters:
index
(optional, closes current tab if not provided)
Information & Monitoring Tools
browser_console_messages
Returns all console messages from the page.
browser_network_requests
Returns all network requests since loading the page.
Utility Tools
browser_wait_for
Wait for text to appear/disappear or time to pass.
- Parameters:
time
(optional),text
(optional),textGone
(optional)
browser_handle_dialog
Handle browser dialogs (alerts, confirms, prompts).
- Parameters:
accept
(boolean),promptText
(optional)
browser_file_upload
Upload files to the page.
- Parameters:
paths
(array of absolute file paths)
Vision Mode Tools (Coordinate-based Interaction)
browser_screen_capture
Take a screenshot for coordinate-based interaction.
browser_screen_move_mouse
Move mouse to specific coordinates.
- Parameters:
element
,x
,y
browser_screen_click
Click at specific coordinates.
- Parameters:
element
,x
,y
browser_screen_drag
Drag from one coordinate to another.
- Parameters:
element
,startX
,startY
,endX
,endY
browser_screen_type
Type text (coordinate-independent).
- Parameters:
text
,submit
(optional)
Usage Examples
Basic Accessibility Scan
Color Contrast Check
Multi-step Workflow
Page Analysis
Tab Management
Waiting for Dynamic Content
Note: Most interaction tools require element references from browser_snapshot. Always capture a snapshot before attempting to interact with page elements.
Development
Clone and set up the project:
License
MIT
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
使用 Playwright 和 Axe-core 实现自动化 Web 可访问性扫描以符合 WCAG 要求,并提供带有补救指导的可视化和 JSON 报告。
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityProvides web accessibility analysis and color blindness simulation using axe-core and Puppeteer, enabling detailed accessibility checks and visual simulations based on WCAG guidelines.Last updated -23MIT License
- AsecurityAlicenseAqualityProvides accessibility testing capabilities through CLI, helping identify accessibility issues in web applications using axe-core and Puppeteer.Last updated -11MIT License
- AsecurityAlicenseAqualityAn MCP (Model Context Protocol) server for performing accessibility audits on webpages using axe-core. Use the results in an agentic loop with your favorite AI assistants (Cline/Cursor/GH Copilot) and let them fix a11y issues for you!Last updated -223323Mozilla Public License 2.0
- AsecurityAlicenseAqualityAn MCP server that enables LLMs to perform web accessibility testing against WCAG standards using Deque Axe-core API and Puppeteer.Last updated -65928MIT License