Accessibility MCP Server
Enables 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.
README
Accessibility MCP Server
A Model Context Protocol (MCP) server for automated accessibility testing using Playwright and axe-core against WCAG standards.
Overview
This server provides AI agents (LLMs) with the ability to perform comprehensive accessibility audits on websites. It leverages industry-standard tools to deliver detailed reports on WCAG compliance violations and recommendations.
Features
🔍 Comprehensive Accessibility Testing
- Full WCAG 2.1/2.2 compliance checking (A, AA, AAA levels)
- Cross-browser testing (Chromium, Firefox, WebKit)
- Real browser automation with Playwright
- axe-core accessibility engine integration
🤖 MCP Integration
- Three main tools exposed to AI agents:
test_accessibility: Run accessibility testsget_test_results: Retrieve saved test resultslist_test_results: List all available test files
📊 Rich Reporting
- Human-readable text reports
- Raw JSON data for programmatic access
- Screenshot capture capability
- Detailed violation summaries with remediation guidance
🛡️ Security & Validation
- URL validation and sanitization
- Configuration parameter validation
- Graceful error handling
- Safe browser isolation
Installation
# Clone and install dependencies
npm install
# Install Playwright browsers
npx playwright install
# Build the project
npm run build
Usage
Starting the MCP Server
# Development mode
npm run dev
# Production mode
npm run build && npm start
The server communicates via stdin/stdout following the MCP protocol specification.
Available Tools
test_accessibility
Run an accessibility test on a website.
Parameters:
url(required): Website URL to testwcagLevel(optional): 'A', 'AA', or 'AAA' (default: 'AA')wcagVersion(optional): '2.1' or '2.2' (default: '2.1')browser(optional): 'chromium', 'firefox', or 'webkit' (default: 'chromium')includeScreenshot(optional): boolean (default: false)
Example:
{
"url": "https://example.com",
"wcagLevel": "AA",
"wcagVersion": "2.1",
"browser": "chromium",
"includeScreenshot": true
}
get_test_results
Retrieve saved accessibility test results.
Parameters:
fileName(required): Name of the test result file
list_test_results
List all available test result files.
No parameters required.
Architecture
src/
├── server/ # MCP server implementation
│ ├── index.ts # Main entry point
│ └── mcpServer.ts # MCP protocol handlers
├── accessibility/ # Core testing engine
│ └── tester.ts # Playwright + axe-core integration
├── types/ # TypeScript type definitions
│ └── index.ts # Interface definitions
└── utils/ # Utility modules
├── fileOutput.ts # Result file management
└── validation.ts # Input validation and sanitization
Development
Project Structure
src/server/: MCP server implementation and entry pointssrc/accessibility/: Core accessibility testing logicsrc/types/: TypeScript type definitionssrc/utils/: Utility functions for validation and file I/Ooutputs/: Generated test results and screenshotstests/: Test suites (planned)
Configuration
The server accepts various configuration options:
- WCAG Levels: A, AA, AAA
- WCAG Versions: 2.1, 2.2
- Browsers: Chromium, Firefox, WebKit
- Timeouts: 1s to 5 minutes
- Viewports: 320x200 to 4000x4000 pixels
Error Handling
The server implements comprehensive error handling:
- URL validation and sanitization
- Browser initialization failures
- Network timeout handling
- File I/O error recovery
- Graceful MCP protocol error responses
Output Formats
Text Reports
Human-readable accessibility reports including:
- Executive summary with violation counts
- Detailed violation descriptions with remediation steps
- Element-specific failure information
- WCAG success criteria references
JSON Data
Machine-readable results containing:
- Complete axe-core results
- Test metadata and configuration
- Structured violation data
- Performance metrics
Security Considerations
- URL validation prevents testing of local/private addresses
- Browser sandboxing through Playwright
- Input sanitization for all parameters
- Safe file I/O operations
- Process isolation
Cloud Deployment (Future)
This server is designed for eventual cloud deployment with:
- Container support (Docker)
- Environment-based configuration
- Database integration for result storage
- API rate limiting
- Authentication and authorization
Dependencies
- @modelcontextprotocol/sdk: MCP protocol implementation
- playwright: Browser automation framework
- @axe-core/playwright: Accessibility testing integration
- axe-core: Accessibility rules engine
- typescript: Type safety and development tooling
License
MIT License - see LICENSE file for details.
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
Support
For issues and questions:
- Check the documentation
- Review existing GitHub issues
- Create a new issue with detailed information
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。