Skip to main content
Glama
accessibility-mcp-server

accessibility-mcp-server

by AiAgentKarl

accessibility-mcp-server

MCP-Server for Web Accessibility Checks (WCAG 2.1/2.2)

Gives AI agents the ability to check websites for accessibility issues, validate ARIA attributes, check color contrast ratios, and generate full accessibility reports — without any API key.

PyPI version License: MIT Python 3.10+

Features

  • WCAG 2.1 AA Compliance Checks — Automated checks for 10+ WCAG success criteria

  • Color Contrast Analyzer — Calculates contrast ratios and WCAG AA/AAA pass/fail

  • ARIA Validator — Checks ARIA roles and attributes for correctness

  • Heading Structure Analyzer — Validates heading hierarchy (H1→H2→H3...)

  • Image Alt Text Checker — Finds images missing alt attributes

  • Form Label Validator — Ensures all form inputs have accessible labels

  • Full A11y Report — Comprehensive report with accessibility score (0-100)

  • WCAG Rule Reference — Browse all WCAG 2.1 A/AA/AAA rules

  • No API Key Required — Works with any public website

Related MCP server: Accessibility MCP Server

Tools

Tool

Description

check_url_accessibility

Full WCAG 2.1 AA check for any URL

check_color_contrast

Calculate contrast ratio between two colors

validate_aria

Validate ARIA attributes in HTML snippet

check_heading_structure

Analyze heading hierarchy on a page

check_images_alt

Check all images for alt text

check_form_labels

Check all form inputs for labels

generate_a11y_report

Comprehensive accessibility report with score

list_wcag_rules

List all WCAG 2.1 rules for a given level

Installation

pip install accessibility-mcp-server

Usage with Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "accessibility": {
      "command": "accessibility-mcp-server"
    }
  }
}

Example Prompts

  • "Check https://example.com for accessibility issues"

  • "What is the contrast ratio between #333333 and #ffffff?"

  • "Generate a full accessibility report for https://mysite.com"

  • "Check if the images on https://example.com have alt text"

  • "Validate the ARIA in this HTML: <div role='buttn'>Click</div>"

  • "List all WCAG 2.1 AA rules"

WCAG Criteria Checked

Criterion

Level

Check

1.1.1 Non-text Content

A

Images without alt text

1.3.1 Info and Relationships

A

Heading hierarchy, landmark regions

1.4.3 Contrast (Minimum)

AA

Color contrast ratio calculator

2.4.1 Bypass Blocks

A

Skip links and landmarks

2.4.2 Page Titled

A

Missing or empty page titles

2.4.4 Link Purpose

A

Generic link text detection

3.1.1 Language of Page

A

Missing lang attribute

3.3.2 Labels or Instructions

A

Form inputs without labels

4.1.1 Parsing

A

Duplicate IDs

4.1.2 Name, Role, Value

A

ARIA validation, unlabeled buttons

Tech Stack

  • Python 3.10+ with FastMCP

  • httpx for async HTTP requests

  • BeautifulSoup4 + lxml for HTML parsing

  • WCAG formulas implemented directly (relative luminance, contrast ratio)

License

MIT — Free for personal and commercial use.


Built by AiAgentKarl | Part of the AI Agent Tools ecosystem

Available Tools

8 tools
check_color_contrastA

Prueft den Farbkontrast zwischen Vordergrund- und Hintergrundfarbe nach WCAG 2.1.

Args: foreground: Vordergrundfarbe als Hex (#RRGGBB oder #RGB), z.B. '#000000' background: Hintergrundfarbe als Hex (#RRGGBB oder #RGB), z.B. '#ffffff' font_size_pt: Schriftgroesse in Punkt (Standard: 12pt) bold: True wenn Fettschrift

Returns: Kontrastverhältnis, WCAG-Level und Empfehlungen

Inputs: foreground (required), background (required), font_size_pt, bold. Returns: object

check_form_labelsC

Prueft alle Formular-Elemente einer Webseite auf zugaengliche Labels (WCAG 3.3.2).

Args: url: Zu pruefende URL

Returns: Alle Formular-Elemente mit Label-Status

Inputs: url (required). Returns: object

check_heading_structureA

Analysiert die Ueberschriften-Hierarchie einer Webseite nach WCAG 1.3.1.

Prueft: H1-Einzigartigkeit, keine Hierarchie-Spruenge, leere Ueberschriften.

Args: url: Zu pruefende URL

Returns: Ueberschriften-Baum und alle gefundenen Probleme

Inputs: url (required). Returns: object

check_images_altB

Prueft alle Bilder einer Webseite auf Alt-Text (WCAG 1.1.1).

Args: url: Zu pruefende URL

Returns: Alle Bilder mit Alt-Text-Status

Inputs: url (required). Returns: object

check_url_accessibilityA

Fuehrt automatische WCAG 2.1 AA Accessibility-Checks fuer eine URL durch.

Prueft: Bildtextalternativen, Seitentitel, Sprach-Attribut, Ueberschriften-Hierarchie, Formular-Labels, Link-Texte, ARIA-Grundregeln, doppelte IDs.

Args: url: Zu pruefende URL (z.B. 'https://example.com')

Returns: Liste aller gefundenen Probleme nach WCAG-Kriterium sortiert

Inputs: url (required). Returns: object

generate_a11y_reportA

Erstellt einen vollstaendigen Accessibility-Bericht fuer eine URL. Kombiniert alle Checks: URL-Accessibility, Bilder, Formulare, Ueberschriften.

Args: url: Zu pruefende URL

Returns: Vollstaendiger A11y-Bericht mit Gesamt-Score und Empfehlungen

Inputs: url (required). Returns: object

list_wcag_rulesA

Listet alle WCAG 2.1 Regeln fuer das angegebene Konformitaetslevel.

Args: level: Konformitaetslevel -- 'A', 'AA' oder 'AAA' (Standard: 'AA')

Returns: Liste aller relevanten WCAG-Regeln mit Beschreibung

Inputs: level. Returns: object

validate_ariaA

Validiert ARIA-Attribute in einem HTML-Snippet.

Prueft: aria-* Attribute auf gueltigen Werten, role-Attribute auf bekannte Werte, required ARIA-Attribute fuer bestimmte Rollen.

Args: html_snippet: HTML-Code-Snippet (kein vollstaendiges Dokument noetig)

Returns: Liste der ARIA-Probleme mit WCAG-Referenz

Inputs: html_snippet (required). Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 8 tools

    Disambiguation4/5

    Each tool targets a distinct aspect of accessibility testing (color contrast, form labels, headings, images, etc.), but check_url_accessibility overlaps with several individual checks (images, headings, forms). Despite this, descriptions clearly distinguish between comprehensive and focused checks, so confusion is limited.

    Naming Consistency3/5

    Most tools use the verb_noun pattern with 'check_', but there are exceptions: generate_a11y_report, list_wcag_rules, and validate_aria. While names are clear, the mix of verbs and a few underscores with abbreviations (a11y) breaks full consistency.

    Tool Count5/5

    With 8 tools, the server covers core accessibility checks, a combined scan, rule reference, and ARIA validation. The count is well-scoped for an automated accessibility testing tool, neither too sparse nor too bloated.

    Completeness4/5

    The set includes essential WCAG checks like color contrast, headings, images, forms, and ARIA, plus a report generator and rule list. However, it lacks checks for keyboard navigation, focus order, or more advanced dynamic content, which are minor gaps for an automated audit.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      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.
      3
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides AI agents with web accessibility analysis tools via MCP, enabling checks for alt text, heading hierarchy, color contrast, ARIA validation, and form accessibility.
      46 npm
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Enables AI agents to perform comprehensive web application testing including visual, functional, performance, accessibility, and SEO analysis using browser automation without requiring API keys.
      7
      MIT