Accessibility Scanner
STDIOAutomated web accessibility scanning using Playwright and Axe-core for WCAG compliance checks.
Automated web accessibility scanning using Playwright and Axe-core for WCAG compliance checks.
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.
✅ Full WCAG 2.1/2.2 compliance checking
🖼️ Automatic screenshot capture with violation highlighting
📄 Detailed JSON reports with remediation guidance
You can install the package using any of these methods:
Using npm:
npm install -g mcp-accessibility-scanner
The project includes a Dockerfile that sets up all necessary dependencies including Node.js v22 and Python 3.13.
docker build -t mcp-server .
docker run -it -e MCP_PROXY_DEBUG=true mcp-server
You can also run it in the background:
docker run -d -p 3000:3000 mcp-server
Install the Accessibility Scanner in VS Code using the VS Code CLI:
For VS Code:
code --add-mcp '{"name":"accessibility-scanner","command":"npx","args":["mcp-accessibility-scanner"]}'
For VS Code Insiders:
code-insiders --add-mcp '{"name":"accessibility-scanner","command":"npx","args":["mcp-accessibility-scanner"]}'
Here's the Claude Desktop configuration:
{ "mcpServers": { "accessibility-scanner": { "command": "npx", "args": ["-y", "mcp-accessibility-scanner"] } } }
The scanner exposes a single tool scan_accessibility
that accepts:
url
: The webpage URL to scan (required)violationsTag
: Array of accessibility violation tags to check (required)viewport
: Optional object to customize the viewport size
width
: number (default: 1920)height
: number (default: 1080)shouldRunInHeadless
: Optional boolean to control headless mode (default: true)Note: When running a scan, an annotated screenshot highlighting any accessibility violations will be automatically saved to your downloads folder.
Example usage in Claude:
Could you scan example.com for accessibility issues related to color contrast?
Advanced example with custom options:
Could you scan example.com for accessibility issues with a viewport of 1280x720 and show the browser window?
Clone and set up the project:
git clone https://github.com/JustasMonkev/mcp-accessibility-scanner.git cd mcp-accessibility-scanner npm install
Start the TypeScript compiler in watch mode:
npm run watch
Test the MCP server locally:
npm run inspector
For development using Docker:
docker build -t mcp-server-dev .
docker run -it -v $(pwd):/app -p 3000:3000 -e MCP_PROXY_DEBUG=true mcp-server-dev
├── src/ # Source code
│ ├── index.ts # MCP server setup and tool definitions
│ └── scanner.ts # Core scanning functionality
├── build/ # Compiled JavaScript output
├── Dockerfile # Docker configuration for containerized setup
├── package.json # Project configuration and dependencies
└── tsconfig.json # TypeScript configuration
MIT