loading…
Search for a command to run...
loading…
A comprehensive toolkit for color conversion, manipulation, and accessibility analysis supporting formats like OkLCH and WCAG compliance. It enables AI agents t
A comprehensive toolkit for color conversion, manipulation, and accessibility analysis supporting formats like OkLCH and WCAG compliance. It enables AI agents to manage design systems by generating harmonious palettes, transforming color spaces, and performing contrast checks.
A Model Context Protocol (MCP) server for automated WCAG accessibility auditing of websites using Playwright and axe-core. Designed for AI coding agents and assistants to discover, diagnose, and guide fixes for accessibility issues.
Add to your MCP client config (Claude Desktop, Gemini CLI, etc.):
{
"mcpServers": {
"accessibility-checker": {
"command": "npx",
"args": ["-y", "mcp-accessibility-checker@latest"]
}
}
}
git clone https://github.com/bennyzen/mcp-accessibility-checker.git
cd mcp-accessibility-checker
npm install
npx playwright install chromium
npm run dev
| Tool | Description |
|---|---|
audit |
Run all WCAG rules against a URL. Returns violations, passes, and incomplete checks. |
| Tool | Description |
|---|---|
audit_aria |
ARIA roles, attributes, states, and name/role/value compliance |
audit_contrast |
Color contrast ratios and visual cues (WCAG AA/AAA) |
audit_forms |
Form labels, fieldsets, error identification |
audit_images |
Image alt text, roles, and text alternatives |
audit_structure |
Heading hierarchy, landmarks, document structure, semantics |
audit_navigation |
Keyboard accessibility, tab order, skip links, focus management |
audit_tables |
Table headers, scope, captions, data table structure |
| Tool | Description |
|---|---|
check_element |
Run checks scoped to a specific CSS selector |
| Tool | Description |
|---|---|
report |
Generate a markdown report from audit results |
{
"name": "audit",
"arguments": { "url": "https://example.com" }
}
Returns structured JSON with all violations, including element selectors, HTML snippets, severity, and fix guidance.
{
"name": "audit_contrast",
"arguments": { "url": "https://example.com" }
}
{
"name": "check_element",
"arguments": {
"url": "https://example.com",
"selector": "#login-form"
}
}
{
"name": "report",
"arguments": {
"audit_json": "<JSON output from any audit tool>"
}
}
Produces a markdown report:
# Accessibility Audit Report
**URL:** https://example.com
**Date:** 2026-03-19T14:18:54.037Z
**Standard:** WCAG 2.1 Level AA
## Summary
| Severity | Count |
|----------|-------|
| Critical | 0 |
| Serious | 0 |
| Moderate | 2 |
| Category | Violations |
|------------|-----------|
| Structure | 1 |
| Navigation | 1 |
## Moderate Issues
### landmark-one-main (1 element)
Ensure the document has a main landmark
[Rule documentation](...)
- `html`
**Fix:** Document does not have a main landmark
## Passed Checks (13)
aria-hidden-body, bypass, color-contrast, ...
All audit tools return the same JSON structure:
{
url: string,
timestamp: string,
toolVersion: string,
axeVersion: string,
summary: {
violations: number,
passes: number,
incomplete: number,
bySeverity: { critical, serious, moderate, minor }
},
violations: [{
id: string, // axe rule ID
severity: string, // "critical" | "serious" | "moderate" | "minor"
description: string,
helpUrl: string, // Deque rule documentation
category: string, // "aria" | "contrast" | "forms" | etc.
nodes: [{
selector: string, // CSS selector path
html: string, // HTML snippet
failureSummary: string
}]
}],
passes: [{ id, description, nodes: number }],
incomplete: [{ id, description, nodes: [{ selector, html }] }]
}
audit to get the full pictureaudit_contrast, audit_forms, etc.) to drill into specific areascheck_element to inspect individual componentsreport to generate a markdown summary for stakeholderscompare and contrast tools to find compliant color alternativesnpx playwright install chromium
The default navigation timeout is 30 seconds. For slow pages, consider auditing after the page is likely cached.
A clean audit doesn't mean the site is fully accessible. axe-core catches ~57% of WCAG issues automatically. Manual testing (keyboard navigation, screen reader) is still needed.
MIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"mcp-color-converter": {
"command": "npx",
"args": []
}
}
}