# Accessibility Mcp Server

> MCP server configuration for automated web accessibility auditing. Test WCAG compliance, generate reports, and integrate accessibility testing into your IDE workflow.

- **Type:** MCP server
- **Install:** `agentstack add mcp-alii13-accessibility-mcp-server`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [alii13](https://agentstack.voostack.com/s/alii13)
- **Installs:** 0
- **Category:** [Integrations](https://agentstack.voostack.com/c/integrations)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [alii13](https://github.com/alii13)
- **Source:** https://github.com/alii13/accessibility-mcp-server

## Install

```sh
agentstack add mcp-alii13-accessibility-mcp-server
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# ♿ Accessibility MCP Server

A Model Context Protocol (MCP) server that provides conversational, actionable accessibility testing. This server exposes accessibility auditing tools that can be used by AI agents and chat interfaces.

## ✨ Features

- **Conversational Results**: Results formatted for natural language understanding, not raw data
- **Session Management**: Reusable authenticated sessions for testing protected pages
- **Tag Filtering**: Filter results by specific WCAG levels (wcag2a, wcag2aa, wcag21a, etc.)
- **Educational Focus**: Tools that explain issues in plain language with code examples
- **Code-Level Fixes**: Actual before/after code examples, not just descriptions
- **Progress Updates**: Streaming progress for long-running batch operations
- **Smart Prioritization**: AI-powered issue prioritization with quick wins identification
- **Compliance Reports**: Automated VPAT/WCAG/ADA compliance documentation
- **Trend Tracking**: Historical data and predictions for accessibility improvements

## 📋 Prerequisites

- **Node.js 18+** (for `npx` command)
- That's it! Everything else is handled automatically.

## 🚀 Quick Start (Using Published Package)

### Step 1: Add to Your MCP Client Configuration

Add this server to your MCP client configuration (e.g., Claude Desktop, Cursor):

#### Claude Desktop Configuration

Edit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):

```json
{
  "mcpServers": {
    "accessibility-audit": {
      "command": "npx",
      "args": ["-y", "@ali0113/accessibility-mcp-server"]
    }
  }
}
```

#### Cursor Configuration

Add to your Cursor MCP settings (`~/.cursor/mcp.json` or Cursor Settings → MCP):

```json
{
  "mcpServers": {
    "accessibility-audit": {
      "command": "npx",
      "args": ["-y", "@ali0113/accessibility-mcp-server"]
    }
  }
}
```

### Step 2: Restart Your MCP Client

Restart Claude Desktop or Cursor to load the new MCP server configuration.

### Step 3: Start Using It!

That's it! You're ready to use all 25+ accessibility tools. The package will be automatically downloaded and cached by `npx` on first use.

**How it works:**
- `npx` automatically downloads and runs the package if needed
- The `-y` flag answers "yes" to prompts (non-interactive)
- Playwright browsers install automatically on first run
- No manual installation, building, or configuration needed!

## 🎉 Awesome Things You Can Do

### 🔍 **Comprehensive Accessibility Auditing**
- **Audit any website** - Single URLs, multiple pages, or entire sites
- **Test protected pages** - Authenticated session management for login-protected content
- **Batch processing** - Test multiple URLs in parallel with progress tracking
- **WCAG compliance** - Check against WCAG 2.0, 2.1 (Levels A, AA, AAA) and best practices

### 🎯 **Smart Prioritization & Quick Wins**
- **Identify critical blockers** - Find must-fix issues that block users
- **Quick wins detection** - Easy fixes with high impact
- **Intelligent prioritization** - Sort by impact, WCAG level, fixability, or user impact
- **Focus your efforts** - Know exactly what to fix first

### 💻 **Code-Level Fixes**
- **Before/after code examples** - See exactly what needs to change
- **Copy-paste ready solutions** - Actual code, not just descriptions
- **Multiple formats** - Markdown, HTML, or JSON output
- **Specific fix suggestions** - Targeted solutions for each issue

### 📚 **Educational Resources**
- **Plain language explanations** - Understand what each issue means
- **Why it matters** - Learn the user impact
- **How to fix** - Step-by-step guidance with examples
- **WCAG references** - Direct links to accessibility standards
- **Common mistakes** - Learn from typical errors

### 📊 **Compliance & Reporting**
- **VPAT reports** - Generate Voluntary Product Accessibility Template documentation
- **WCAG compliance reports** - Detailed compliance breakdowns
- **ADA reports** - Americans with Disabilities Act compliance
- **Section 508 reports** - Federal accessibility compliance
- **Executive summaries** - High-level reports for stakeholders

### 📈 **Tracking & Comparison**
- **Before/after comparison** - Track improvements over time
- **Trend analysis** - Historical data and predictions
- **Score tracking** - Monitor accessibility scores
- **Visual diffs** - See what changed between audits

### 📤 **Export & Share**
- **CSV export** - Import into Excel for analysis
- **Excel export** - Professional reports with charts and formatting
- **JSON export** - For API integration and data processing
- **HTML reports** - Standalone web reports with visualizations
- **Dashboard generation** - Visual summaries with charts

### 🔎 **Filtering & Search**
- **Filter by criteria** - Rule IDs, categories, impact levels, WCAG levels
- **Search issues** - Find specific problems quickly
- **Include/exclude modes** - Focus on what matters
- **Element type filtering** - Find issues in specific HTML elements

### 📊 **Statistics & Aggregation**
- **Site-wide analysis** - Combine multiple audit results
- **Detailed statistics** - Breakdowns by category, impact, WCAG level
- **Aggregated summaries** - Overall site accessibility metrics
- **Grouping options** - Organize by URL, category, rule, or impact

### 🎨 **Visualization**
- **Dashboards** - Visual summaries with key metrics
- **Charts** - Score trends and category breakdowns
- **Multiple formats** - Text, Markdown, HTML, JSON
- **Executive reports** - High-level summaries for stakeholders

## 💡 Real-World Use Cases

### For Developers
- Get code-level fixes for accessibility issues
- Learn accessibility concepts with educational explanations
- Integrate into CI/CD pipelines
- Export results for team sharing

### For QA Teams
- Batch test multiple pages efficiently
- Track accessibility over time
- Generate compliance reports
- Compare before/after deployments

### For Product Managers
- Executive summary reports
- Compliance documentation (VPAT, ADA)
- Dashboard visualizations
- Track accessibility scores over time

### For Compliance Teams
- Generate VPAT reports automatically
- WCAG compliance documentation
- Section 508 compliance checks
- Detailed remediation plans

## 🎬 Quick Usage Example

Once configured, you can immediately start using the accessibility tools in your AI assistant:

**Example: Audit a website**
```
"Audit https://example.com for accessibility issues"
```

**Example: Get quick fixes**
```
"Show me quick fixes for the accessibility issues on cursor.com"
```

**Example: Generate compliance report**
```
"Generate a VPAT report for docs.atlan.com"
```

**Example: Compare before/after**
```
"Compare the accessibility of example.com before and after the redesign"
```

The AI assistant will automatically use the appropriate tools to fulfill your requests!

## 🛠️ Available Tools

### Tier 1: Core Audit Tools

#### `audit_url` - Single URL Audit

Test a single URL for accessibility issues with conversational, actionable results.

**Inputs:**
- `url` (required): Full URL or relative path
- `domain` (optional): Base domain if URL is relative
- `tags` (optional): Array of accessibility tags to check (e.g., `["wcag2a", "wcag2aa", "wcag21a", "best-practice"]`). If not provided, all tags are checked.
- `waitForLoad` (optional): Wait strategy - `"networkidle"` (default) | `"load"` | `"domcontentloaded"`
- `timeout` (optional): Timeout in seconds (default: 30)

**Example:**
```json
{
  "url": "https://example.com",
  "tags": ["wcag21aa"],
  "timeout": 45
}
```

**Output:** Structured JSON with summary, prioritized violations, WCAG compliance breakdown, quick fix suggestions, and conversational explanation.

#### `audit_multiple_urls` - Batch Audit

Test multiple URLs efficiently with progress updates.

**Inputs:**
- `urls` (required): Array of URLs or comma-separated string
- `domain` (optional): Base domain
- `tags` (optional): Array of accessibility tags
- `parallel` (optional): Number of parallel tests (default: 1)
- `continueOnError` (optional): Continue if one fails (default: true)

**Example:**
```json
{
  "urls": ["/home", "/about", "/contact"],
  "domain": "https://example.com",
  "tags": ["wcag2aa"],
  "parallel": 2
}
```

**Output:** Per-URL results, aggregated summary, and progress updates (streaming).

#### `audit_site` - Smart Site Audit

Intelligent site-wide audit with prioritization.

**Inputs:**
- `domain` (required): Base domain
- `tags` (optional): Array of accessibility tags. Applied to all pages.
- `strategy` (optional): `"critical"` | `"comprehensive"` | `"custom"` (default: `"comprehensive"`)
- `maxPages` (optional): Maximum pages to test (default: 50)
- `priorityPaths` (optional): Array of high-priority paths to test first

**Example:**
```json
{
  "domain": "https://example.com",
  "strategy": "critical",
  "priorityPaths": ["/", "/login", "/checkout"],
  "tags": ["wcag21aa"],
  "maxPages": 20
}
```

**Output:** Prioritized results (critical pages first), site-wide score, and trend analysis if previous audits exist.

### Tier 2: Session Management

#### `create_session` - Authenticated Session

Create a reusable authenticated session for testing protected pages.

**Inputs:**
- `domain` (required): Base domain
- `username` (required): Login username
- `password` (required): Login password
- `loginUrl` (optional): Custom login URL (default: `{domain}/login`)
- `loginSelectors` (optional): Custom selectors for login form:
  - `usernameSelector` (default: `"input[type='email'], input[name='username'], input[id='username']"`)
  - `passwordSelector` (default: `"input[type='password']"`)
  - `submitSelector` (default: `"button[type='submit'], input[type='submit']"`)
- `sessionId` (optional): Custom session identifier (auto-generated if not provided)

**Example:**
```json
{
  "domain": "https://app.example.com",
  "username": "user@example.com",
  "password": "password123",
  "loginUrl": "https://app.example.com/auth/login"
}
```

**Output:**
- `sessionId`: Reusable session identifier
- `expiresAt`: Session expiration time (ISO 8601)
- `testUrl`: Test URL to verify session

**Differentiator**: Only MCP with reusable session management for authenticated pages.

#### `audit_with_session` - Authenticated Audit

Run an audit using an existing authenticated session.

**Inputs:**
- `sessionId` (required): Session from `create_session`
- `url` (required): URL to test (can be relative)
- `domain` (optional): Base domain
- `tags` (optional): Array of accessibility tags
- `waitForLoad` (optional): Wait strategy (default: `"networkidle"`)
- `timeout` (optional): Timeout in seconds (default: 30)

**Example:**
```json
{
  "sessionId": "session-abc123",
  "url": "/dashboard",
  "domain": "https://app.example.com",
  "tags": ["wcag21aa"]
}
```

**Output:** Same as `audit_url` but for authenticated pages.

### Tier 3: Analysis & Reporting

#### `get_accessibility_score` - Calculate Score

Calculate accessibility score (0-100) with detailed breakdowns.

**Inputs:**
- `results` (required): Audit result object or URL string
- `weights` (optional): Custom weights for different issue types:
  - `errors` (default: 10)
  - `contrast` (default: 8)
  - `alerts` (default: 5)
  - `features` (default: 3)
  - `structural` (default: 6)

**Example:**
```json
{
  "results": "https://example.com",
  "weights": {
    "errors": 15,
    "contrast": 10
  }
}
```

**Output:**
- Overall score (0-100)
- Breakdown by category (contrast, navigation, forms, etc.)
- WCAG level compliance (A, AA, AAA)
- Trend if historical data available

#### `prioritize_issues` - Smart Prioritization

Intelligently prioritize issues, identifying quick wins and critical blockers.

**Inputs:**
- `results` (required): Audit result object
- `criteria` (optional): `"impact"` | `"wcag"` | `"fixability"` | `"user-impact"` (default: `"impact"`)
- `limit` (optional): Top N issues to return (default: 10)

**Example:**
```json
{
  "results": { /* audit result object */ },
  "criteria": "fixability",
  "limit": 5
}
```

**Output:**
- Prioritized list with reasoning
- Quick wins (easy fixes with high impact)
- Critical blockers

#### `explain_issue` - Educational Tool

Explain what an accessibility issue means in plain language.

**Inputs:**
- `ruleId` (required): Accessibility rule ID (e.g., `"alt_missing"`, `"contrast"`, `"label_missing"`)
- `context` (optional): Additional context about the issue (HTML element, page URL, etc.)

**Example:**
```json
{
  "ruleId": "alt_missing",
  "context": "Image on homepage hero section"
}
```

**Output:**
- Plain language explanation
- Why it matters (user impact)
- How to fix (with code examples)
- WCAG reference
- Common mistakes

**Differentiator**: Educational focus - helps users learn accessibility.

#### `get_quick_fixes` - Actionable Fixes

Get specific fix suggestions with before/after code examples.

**Inputs:**
- `results` (required): Audit result object or URL string
- `format` (optional): `"markdown"` | `"html"` | `"json"` (default: `"json"`)
- `includeCode` (optional): Include code examples (default: true)

**Example:**
```json
{
  "results": "https://example.com",
  "format": "markdown",
  "includeCode": true
}
```

**Output:**
- List of fixes with:
  - Current code (if available)
  - Fixed code
  - Explanation
  - Impact estimate

**Differentiator**: Code-level fixes, not just descriptions.

#### `generate_compliance_report` - Compliance Documentation

Generate compliance reports in various formats.

**Inputs:**
- `results` (required): Audit result object
- `format` (optional): `"VPAT"` | `"WCAG"` | `"ADA"` | `"Section508"` (default: `"WCAG"`)
- `level` (optional): `"A"` | `"AA"` | `"AAA"` (default: `"AA"`)
- `includeRemediation` (optional): Include fix suggestions (default: true)

**Example:**
```json
{
  "results": { /* audit result object */ },
  "format": "VPAT",
  "level": "AA",
  "includeRemediation": true
}
```

**Output:**
- Formatted compliance report
- WCAG mapping
- Remediation plan
- Executive summary

#### `get_wcag_compliance` - WCAG Status

Check WCAG compliance status with per-criterion breakdown.

**Inputs:**
- `results` (required): Audit result object or URL string
- `level` (optional): `"A"` | `"AA"` | `"AAA"` (default: `"AA"`)

**Example:**
```json
{
  "results": "https://example.com",
  "level": "AA"
}
```

**Output:**
- Compliance status (pass/fail/partial)
- Per-criterion breakdown
- Missing requirements
- Compliance percentage

### Tier 4: Comparison & Tracking

#### `compare_accessibility` - Before/After Comparison

Compare two audits to track improvements.

**Inputs:**
- `before` (required): Previous audit result or URL
- `after` (required): Current audit result or URL
- `format` (optional): `"summary"` | `"detailed"` | `"diff"` (default: `"summary"`)

**Example:**
```json
{
  "before": "https://example.com/v1",
  "after": "https://example.com/v2",
  "format": "detailed"
}
```

**Output:**
- Issues fixed
- Issues introduced
- Score improvement
- Remaining issues
- Visual diff (if applicable)

#### `track_accessibility` - Historical Tracking

Track accessibility over time with trend analysis.

**Inputs:**
- `url` (required): URL to track
- `timeframe` (optional): `"7d"` | `"30d"` | `"90d"` | `"all"` (default: `"30d"`)
- `metric` (optional): `"score"` | `"issues"` | `"wcag-compliance"` (default: `"score"`)

**Example:**
```json
{
  "url": "https://example.com",
  "timeframe": "90d",
  "metric": "score"
}
```

**Output:**
- Historical data
- Trend visualization (text-based)
- Predictions
- Recommendations

### Tier 5: Export & Data Management

#### `export_to_csv` - Export to CSV

Export audit results to CSV format for spreadsheet analysis, including metadata and violation rows.

**Inputs:**
- `results` (required): Audit result object or URL string
- `includeMetadata` (optional): Include test information and environment data (default: `true`)
- `includeViolations` (optional): Inclu

…

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [alii13](https://github.com/alii13)
- **Source:** [alii13/accessibility-mcp-server](https://github.com/alii13/accessibility-mcp-server)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-alii13-accessibility-mcp-server
- Seller: https://agentstack.voostack.com/s/alii13
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
