Accessibility Scanner MCP Server

Accessibility Scanner MCP servers enable AI models to perform WCAG compliance checks, capture annotated screenshots, and generate detailed accessibility reports.

GitHub starsnpm versionnpm downloads

Overview

The MCP Accessibility Scanner is a powerful Model Context Protocol (MCP) server that provides automated web accessibility scanning using Playwright and Axe-core. This server enables LLMs to perform WCAG compliance checks, interact with web pages, manage persistent browser sessions, and generate detailed accessibility reports with visual annotations.

Created by:

Developed by Justas Monkevicius

Key Features

WCAG Compliance Checking

Full WCAG 2.0/2.1/2.2 compliance checking (A, AA, AAA levels)

🖼️

Annotated Screenshots

Automatic screenshot capture with violation highlighting

📄

Detailed JSON Reports

Detailed JSON reports with remediation guidance

🎯

Specific Violation Categories

Support for specific violation categories (color contrast, ARIA, forms, keyboard navigation, etc.)

Available Tools

Quick Reference

ToolPurposeCategory
scan_pagePerforms a comprehensive accessibility scan on the current pageAccessibility
browser_navigateNavigate to a URLNavigation
browser_navigate_backGo back to the previous pageNavigation
browser_navigate_forwardGo forward to the next pageNavigation
browser_snapshotCapture accessibility snapshot of the current pagePage Interaction
browser_clickPerform click on a web page elementPage Interaction
browser_typeType text into editable elementPage Interaction
browser_hoverHover over element on pagePage Interaction
browser_dragPerform drag and drop between two elementsPage Interaction
browser_select_optionSelect an option in a dropdownPage Interaction
browser_press_keyPress a key on the keyboardPage Interaction
browser_take_screenshotTake a screenshot of the current pageScreenshot & Visual

Detailed Usage

scan_page

Performs a comprehensive accessibility scan on the current page using Axe-core.

use_mcp_tool({
  server_name: "accessibility-scanner",
  tool_name: "scan_page",
  arguments: {
    violationsTag: ["wcag21aa", "cat.color"]
  }
});

Supported Violation Tags: wcag2a, wcag2aa, wcag2aaa, wcag21a, wcag21aa, wcag21aaa, wcag22a, wcag22aa, wcag22aaa, section508, cat.aria, cat.color, cat.forms, cat.keyboard, cat.language, cat.name-role-value, cat.parsing, cat.semantics, cat.sensory-and-visual-cues, cat.structure, cat.tables, cat.text-alternatives, cat.time-and-media

browser_navigate

Navigate to a URL.

use_mcp_tool({
  server_name: "accessibility-scanner",
  tool_name: "browser_navigate",
  arguments: {
    url: "https://example.com"
  }
});
browser_click

Perform click on a web page element.

use_mcp_tool({
  server_name: "accessibility-scanner",
  tool_name: "browser_click",
  arguments: {
    element: "Login button",
    ref: "#login-btn"
  }
});
browser_type

Type text into editable element.

use_mcp_tool({
  server_name: "accessibility-scanner",
  tool_name: "browser_type",
  arguments: {
    element: "Email input",
    ref: "#email",
    text: "[email protected]"
  }
});

Installation

{
  "mcpServers": {
    "accessibility-scanner": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-accessibility-scanner"
      ]
    }
  }
}

Sources