Web Accessibility MCP Server
The Web Accessibility MCP Server provides tools for analyzing web accessibility and simulating color blindness, including:
Analyze web accessibility of any URL using axe-core
Simulate color blindness (protanopia, deuteranopia, tritanopia) and save screenshots
Generate detailed reports of accessibility violations
Support custom user agents and CSS selectors
Follow WCAG guidelines for accessibility checks
Uses Puppeteer to navigate websites, take screenshots, and analyze web content for accessibility testing purposes
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Web Accessibility MCP Server check accessibility of https://example.com for WCAG compliance"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Web Accessibility MCP Server
An MCP (Model Context Protocol) server that provides web accessibility analysis capabilities using axe-core and Puppeteer.
Features
Analyze web accessibility of any URL using axe-core
Simulate color blindness (protanopia, deuteranopia, tritanopia) using color matrices
Detailed reporting of accessibility violations
Support for custom user agents and selectors
Debug logging for troubleshooting
Comprehensive accessibility checks based on WCAG guidelines
Related MCP server: Cursor A11y MCP
Prerequisites
Node.js (v14 or higher)
npm
Installation
Installing via Smithery
To install Web Accessibility MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @bilhasry-deriv/mcp-web-a11y --client claudeManual Installation
Clone the repository:
git clone [repository-url]
cd mcp-web-a11yInstall dependencies:
npm installBuild the server:
npm run buildConfiguration
Add the server to your MCP settings file (typically located at ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json):
{
"mcpServers": {
"web-a11y": {
"command": "node",
"args": ["/path/to/mcp-web-a11y/build/index.js"],
"disabled": false,
"autoApprove": [],
"env": {
"MCP_OUTPUT_DIR": "/path/to/output/directory"
}
}
}
}Environment Variables
MCP_OUTPUT_DIR: Directory where screenshot outputs will be savedRequired for the
simulate_colorblindtoolIf not specified, defaults to './output' relative to the current working directory
Must be an absolute path when configured in MCP settings
Usage
The server provides two tools: check_accessibility for analyzing web accessibility and simulate_colorblind for simulating color blindness.
Tool: check_accessibility
Checks the accessibility of a given URL using axe-core.
Parameters
url(required): The URL to analyzewaitForSelector(optional): CSS selector to wait for before analysisuserAgent(optional): Custom user agent string for the request
Example Usage
<use_mcp_tool>
<server_name>mcp-web-a11y</server_name>
<tool_name>check_accessibility</tool_name>
<arguments>
{
"url": "https://example.com",
"waitForSelector": ".main-content",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
</arguments>
</use_mcp_tool>Tool: simulate_colorblind
Simulates how a webpage appears to users with different types of color blindness using color matrix transformations.
Color Blindness Types
The tool supports three types of color blindness simulation:
Protanopia (red-blind) - Uses matrix:
0.567, 0.433, 0 0.558, 0.442, 0 0, 0.242, 0.758Deuteranopia (green-blind) - Uses matrix:
0.625, 0.375, 0 0.7, 0.3, 0 0, 0.3, 0.7Tritanopia (blue-blind) - Uses matrix:
0.95, 0.05, 0 0, 0.433, 0.567 0, 0.475, 0.525
Parameters
url(required): The URL to capturetype(required): Type of color blindness to simulate ('protanopia', 'deuteranopia', or 'tritanopia')outputPath(optional): Custom path for the screenshot outputuserAgent(optional): Custom user agent string for the request
Example Usage
<use_mcp_tool>
<server_name>mcp-web-a11y</server_name>
<tool_name>simulate_colorblind</tool_name>
<arguments>
{
"url": "https://example.com",
"type": "deuteranopia",
"outputPath": "colorblind_simulation.png"
}
</arguments>
</use_mcp_tool>Response Format
check_accessibility Response
{
"url": "analyzed-url",
"timestamp": "ISO-timestamp",
"violations": [
{
"impact": "serious|critical|moderate|minor",
"description": "Description of the violation",
"help": "Help text explaining the issue",
"helpUrl": "URL to detailed documentation",
"nodes": [
{
"html": "HTML of the affected element",
"failureSummary": "Summary of what needs to be fixed"
}
]
}
],
"passes": 42,
"inapplicable": 45,
"incomplete": 3
}simulate_colorblind Response
{
"url": "analyzed-url",
"type": "colorblind-type",
"outputPath": "path/to/screenshot.png",
"timestamp": "ISO-timestamp",
"message": "Screenshot saved with [type] simulation"
}Error Handling
The server includes comprehensive error handling for common scenarios:
Network errors
Invalid URLs
Timeout issues
DNS resolution problems
Error responses will include detailed messages to help diagnose the issue.
Development
Project Structure
mcp-web-a11y/
├── src/
│ └── index.ts # Main server implementation
├── build/ # Compiled JavaScript
├── output/ # Generated screenshots
├── package.json # Project dependencies and scripts
└── tsconfig.json # TypeScript configurationBuilding
npm run buildThis will:
Compile TypeScript to JavaScript
Make the output file executable
Place the compiled files in the
builddirectory
Debugging
The server includes detailed debug logging that can be observed in the console output. This includes:
Network requests and responses
Page loading status
Selector waiting status
Any console messages from the analyzed page
Color simulation progress
Common Issues and Solutions
Timeout Errors
Increase the timeout value in the code
Check network connectivity
Verify the URL is accessible
DNS Resolution Errors
Verify the URL is correct
Check network connectivity
Try using the www subdomain
Selector Not Found
Verify the selector exists on the page
Wait for dynamic content to load
Check the page source for the correct selector
Color Simulation Issues
Ensure the page's colors are specified in a supported format (RGB, RGBA, or HEX)
Check if the page uses dynamic color changes (may require additional wait time)
Verify the screenshot output directory exists and is writable
Contributing
Fork the repository
Create a feature branch
Commit your changes
Push to the branch
Create a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Available Tools
2 toolscheck_accessibilityC
Check web accessibility of a given URL using axe-core
Inputs: url (required), waitForSelector, userAgent.
simulate_colorblindC
Simulate how a webpage looks for colorblind users
Inputs: url (required), type (required), outputPath, userAgent.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one checks general web accessibility using axe-core, while the other specifically simulates colorblindness effects on a webpage. There is no overlap or ambiguity between them.
Both tools follow a consistent verb_noun pattern (check_accessibility, simulate_colorblind) with clear, descriptive names. The naming style is uniform and predictable throughout the set.
With only two tools, the server feels thin for a web accessibility domain. While the tools are useful, typical accessibility testing involves more operations like checking screen reader compatibility, keyboard navigation, or ARIA attributes, suggesting notable gaps in coverage.
The tool set is severely incomplete for web accessibility. It lacks core operations such as validating HTML structure, testing screen reader output, assessing keyboard accessibility, or generating accessibility reports, which are essential for comprehensive accessibility evaluation.
Maintenance
Related MCP Connectors
Scan URLs or HTML for WCAG 2.2 violations. 75-rule manifest, weighted score, shareable reports.
Deterministic axe-core accessibility scans (WCAG 2.1 AA, EN 301 549, PDF/UA) via your account.
Scan URLs for WCAG 2.1 violations, generate AI fixes, and produce VPAT 2.5 compliance reports.
Accessibility pre-checks (WCAG/BFSG) in a real browser + statement drafts. Pay per call.
Related MCP Servers
- AlicenseBqualityBmaintenanceEnables automated web accessibility scans for WCAG compliance using Playwright and Axe-core, providing visual and JSON reports with remediation guidance.253,447 npm59MIT
- AlicenseBqualityDmaintenanceProvides accessibility testing capabilities through CLI, helping identify accessibility issues in web applications using axe-core and Puppeteer.12MIT
- AlicenseBqualityDmaintenanceEnables AI agents to perform comprehensive accessibility audits on websites using Playwright and axe-core against WCAG standards. Provides detailed compliance reports with violation summaries and remediation guidance across multiple browsers.3MIT
- AlicenseNot gradedqualityDmaintenancePerforms automated web accessibility audits following WCAG standards using axe-core and Puppeteer, generating detailed reports in Spanish with recommended solutions and code examples.MIT