Skip to main content
Glama
Mhdd-24

@mhdd_24/accessibility-mcp

Official
by Mhdd-24

@mhdd_24/accessibility-mcp

MCP server for WCAG/accessibility inspection.

Same architecture as @mhdd_24/sublime-mcp.

Full documentation: docs/WIKI.md


How it works (30 seconds)

You (chat) → MCP client → accessibility-mcp → Accessibility APIs / CLIs / local tools

Related MCP server: WCAG Color Contrast MCP Server

Prerequisites

Requirement

Notes

Node.js 18+

ESM TypeScript MCP server

Credentials / CLIs

See environment variables below


Install

Option A — npm (after publish)

npm install -g @mhdd_24/accessibility-mcp

Option B — npx

npx @mhdd_24/accessibility-mcp

Option C — clone and build

git clone https://github.com/Mhdd-24/Accessibility-MCP.git
cd Accessibility-MCP
npm install
npm run build
node dist/index.js

Configure Cursor

Edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "a11y": {
      "command": "npx",
      "args": ["-y", "@mhdd_24/accessibility-mcp"],
      "env": {
        "_": "optional"
      }
    }
  }
}

Local development:

{
  "command": "node",
  "args": ["/absolute/path/to/Accessibility-MCP/dist/index.js"]
}

Environment variables

Variable

Description

No required env


Tools

Tool

Description

a11y_status

Show wcag/accessibility inspection configuration / health.

a11y_analyze

Analyze a page/site for wcag/accessibility inspection.

a11y_report

Generate a wcag/accessibility inspection report.

a11y_check

Quick wcag/accessibility inspection check.


License

ISC

Available Tools

4 tools
a11y_analyzeC

Analyze a page/site for wcag/accessibility inspection.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL or HTML path

TDQS

C2.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose side effects, return behavior, or operational details. It only says 'Analyze', which implies a read operation but does not state whether it runs a scan, returns a report, requires authentication, or has any rate limits. The description is entirely silent on what happens when called.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence that is easy to parse and front-loaded with the action. However, it is so brief that it omits critical information, so it is not appropriately sized for a tool that likely has more complexity than one sentence can convey. It is concise but under-specified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only one parameter, no output schema, and no annotations, the description is the sole source of guidance. It explains the basic purpose but fails to describe what the tool returns, how results are structured, or any constraints. An agent calling this tool would have no idea what to expect in the response, making it incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the parameter 'url' has a clear description ('URL or HTML path'). The description adds no additional context about the parameter's format, accepted schemes, or edge cases. Baseline of 3 is appropriate since the schema already covers the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb (Analyze) and resource (a page/site) and mentions the domain (wcag/accessibility). However, the term 'Analyze' is generic and does not distinguish this tool from siblings like a11y_check, a11y_report, or a11y_status, which likely have more specific scopes. It is not a tautology but lacks differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the sibling tools. No conditions, prerequisites, or exclusions are mentioned. The agent has no way to know if this is the right tool for a quick check, a detailed report, or a status query.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

a11y_checkC

Quick wcag/accessibility inspection check.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesURL or selector

TDQS

C2.1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only says 'inspection check' without explaining what happens, what the output is, or any side effects. This is severely lacking for a tool that presumably performs an analysis.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, which is concise, but it's under-specified and doesn't structure any additional useful information. It's more a placeholder than a helpful definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and no output schema, the description still fails to convey what the check entails, how results are returned, or any relevant context. It's incomplete for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (target: 'URL or selector'), so the schema already documents the parameter. The description adds no extra meaning, but the baseline of 3 applies because the schema fully covers semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a verb ('check') and resource ('accessibility'), but it's vague and doesn't differentiate from siblings like a11y_analyze or a11y_report. It lacks specificity about what kind of check or its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus the siblings. The word 'Quick' hints at a lightweight option, but there's no explicit context, exclusions, or alternatives mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

a11y_reportC

Generate a wcag/accessibility inspection report.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL
optionsNoOptions JSON/text

TDQS

C2.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states 'Generate a report' without specifying what the report contains, whether the operation is read-only or has side effects, or any other behavioral details. This is a significant gap for an unannotated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that is front-loaded with the purpose. It contains no wasted words, but it is too terse to be highly effective, missing essential context that would make it more helpful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is no output schema and no annotations, the description should explain what the report returns and any relevant behavior. It does not, leaving the agent without information about the tool's output or side effects. The description is incomplete for an agent to use the tool confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both url and options having descriptions in the schema. The tool description adds no parameter information beyond what the schema already provides, so it meets the baseline of 3 but does not enhance understanding of parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action (generate) and a specific resource (wcag/accessibility inspection report). However, it does not differentiate from sibling tools like a11y_analyze, a11y_check, or a11y_status, which likely also relate to accessibility, so an agent cannot easily choose between them based on this description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. There is no mention of context, prerequisites, or scenarios where this tool is preferred over the sibling tools, leaving the agent without decision support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

a11y_statusB

Show wcag/accessibility inspection configuration / health.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Show', which implies a read-only operation, but does not explicitly state side effects, whether it makes network calls, or what 'health' entails. No detail about the nature of the configuration or health check is given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler words. It efficiently states the purpose. However, it is so terse that it lacks specificity about the output or scope, but for a simple status tool it is appropriately concise without being bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description should at least clarify what 'configuration / health' means or what the response will contain. It does not. For a tool with siblings that perform different actions, it would benefit from more context on what distinguishes 'showing status' from 'analyzing' or 'checking'. It is minimally adequate but leaves ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema is empty (100% coverage trivially). The description does not need to explain parameters, and the baseline for 0 params is 4. The description adds nothing about parameters, which is acceptable since there are none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Show') and resource ('wcag/accessibility inspection configuration / health'), conveying the tool's purpose as a read-only status view. However, it does not explicitly differentiate from sibling tools like a11y_analyze, a11y_check, or a11y_report, leaving some ambiguity about the exact scope of 'health' vs. other operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus the siblings. There is no mention of alternatives, prerequisites, or conditions that would select this over a11y_check or a11y_analyze. The description only states what it does, not when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 4 tool updatesv1.0.0
    • First observeda11y_analyze
    • First observeda11y_check
    • First observeda11y_report
    • First observeda11y_status

TDQS

B3/5.0

Scored across 4 tools

Disambiguation3/5

a11y_analyze and a11y_check overlap in purpose, both performing inspection with only a depth/quick distinction. a11y_report and a11y_status are clearly distinct, but the boundary between analyze and check could confuse an agent.

Naming Consistency5/5

All tools share the a11y_ prefix and follow the same verb-after-prefix pattern in lowercase snake_case, making the naming highly predictable and consistent.

Tool Count5/5

Four tools is a well-scoped set for a focused accessibility inspection server, covering analysis, reporting, quick checks, and status without redundancy.

Completeness4/5

The core workflows of inspection, reporting, and configuration health are covered. A tool to list or retrieve specific violations would be a minor enhancement, but no critical gaps exist.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables accurate WCAG color contrast checking and accessibility analysis by calculating actual contrast ratios between color pairs, checking compliance levels, and analyzing luminance values for web accessibility.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables automated WCAG 2.2 AA accessibility audits of Figma designs and webpages. Generates detailed markdown reports with severity-grouped violations, specific criterion references, and concrete fix recommendations.
    -