# Web Accessibility-Testing MCP Server (A11y MCP)
[](https://mseep.ai/app/ronantakizawa-a11ymcp)
[](https://mseep.ai/app/01361aeb-0dce-45d6-80fb-76ff443dbfc8)
https://github.com/user-attachments/assets/316c6d44-e677-433e-b4d5-63630b4bab2b
A11y MCP is an [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server that gives LLMs access to web accessibility testing APIs.
This server uses the [Deque Axe-core](https://github.com/dequelabs/axe-core) API and [Puppeteer](https://pptr.dev/) to allow LLMs to analyze web content for WCAG compliance and identify accessibility issues.
> **Note:** This is not an official MCP server from Deque Labs.
## Features
- **Test web pages**: Test any public URL for accessibility issues with customizable viewport dimensions
- **Test HTML snippets**: Test raw HTML strings for accessibility issues
- **WCAG compliance testing**: Check content against various WCAG standards (2.0, 2.1, 2.2)
- **Customizable tests**: Specify which accessibility tags/standards to test against
- **Rule exploration**: Get information about available accessibility rules
- **Color contrast analysis**: Check color combinations for WCAG compliance
- **ARIA validation**: Test proper usage of ARIA attributes
- **Orientation lock detection**: Identify content that forces specific screen orientations
## Installation
### Prerequisites
- [Node.js](https://nodejs.org/) 18 or later
- An MCP-compatible client (Claude Desktop, Claude Code, VS Code, Cursor, etc.)
### Claude Desktop
Edit your MCP configuration file:
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
- **Linux:** `~/.config/Claude/claude_desktop_config.json`
Add the server to the `mcpServers` object:
```json
{
"mcpServers": {
"a11y-accessibility": {
"command": "npx",
"args": ["-y", "a11y-mcp-server"]
}
}
}
```
### Claude Code (CLI)
```bash
claude mcp add a11y-accessibility -- npx -y a11y-mcp-server
```
This registers the server for the current project. To make it available across all projects:
```bash
claude mcp add --scope user a11y-accessibility -- npx -y a11y-mcp-server
```
Verify the server is registered:
```bash
claude mcp list
```
> **Note:** MCP tools become available after restarting your Claude Code session.
### VS Code (Copilot)
Add to your VS Code `settings.json` or `.vscode/settings.json`:
```json
{
"mcp": {
"servers": {
"a11y-accessibility": {
"command": "npx",
"args": ["-y", "a11y-mcp-server"]
}
}
}
}
```
### Cursor
Add to your Cursor MCP configuration (`.cursor/mcp.json`):
```json
{
"mcpServers": {
"a11y-accessibility": {
"command": "npx",
"args": ["-y", "a11y-mcp-server"]
}
}
}
```
### Windsurf
Add to your Windsurf MCP configuration (`~/.codeium/windsurf/mcp_config.json`):
```json
{
"mcpServers": {
"a11y-accessibility": {
"command": "npx",
"args": ["-y", "a11y-mcp-server"]
}
}
}
```
## Available Tools
### test_accessibility
Tests a URL for accessibility issues.
**Parameters:**
| Parameter | Required | Description |
|-----------|----------|-------------|
| `url` | Yes | The URL of the web page to test |
| `tags` | No | Array of WCAG tags to test against (e.g., `["wcag2aa"]`) |
| `width` | No | Viewport width in pixels (default: 1280) |
| `height` | No | Viewport height in pixels (default: 800) |
**Example — desktop viewport (default):**
```json
{
"url": "https://example.com",
"tags": ["wcag2aa"]
}
```
**Example — mobile viewport (iPhone 12/13):**
```json
{
"url": "https://example.com",
"tags": ["wcag2aa"],
"width": 390,
"height": 844
}
```
### test_html_string
Tests an HTML string for accessibility issues.
**Parameters:**
| Parameter | Required | Description |
|-----------|----------|-------------|
| `html` | Yes | The HTML content to test |
| `tags` | No | Array of WCAG tags to test against (e.g., `["wcag2aa"]`) |
| `width` | No | Viewport width in pixels (default: 1280) |
| `height` | No | Viewport height in pixels (default: 800) |
**Example — default viewport:**
```json
{
"html": "

