Cursor A11y MCP
The Cursor A11y MCP server allows you to test web applications for accessibility issues using axe-core and Puppeteer. It enables you to:
Run accessibility tests on any URL or local development server (using paths relative to
http://localhost:5000)Generate detailed reports including impact level, issue descriptions, help text, affected HTML elements, and failure summaries
Integrate with Cursor's Composer via the Model Context Protocol for quick accessibility checks
Provide code actions to fix identified accessibility violations directly within the Cursor environment
Test using the included React application with intentional accessibility issues for practice
Uses Puppeteer to enable accessibility testing on web applications by automating browser interactions to capture and analyze page content.
Provides accessibility testing for React applications, with specific support for testing React components for accessibility violations.
Leverages Zod for schema validation within the accessibility testing workflow to ensure proper data formatting and validation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Cursor A11y MCPtest the homepage of my local dev server for accessibility issues"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Cursor A11y MCP
A Model Context Protocol (MCP) server that provides accessibility testing capabilities AI agents. This tool helps identify accessibility issues in web applications using axe-core and Puppeteer.
Features
Run accessibility tests on any URL or local development server
Powered by axe-core for comprehensive accessibility testing
Provides detailed violation reports including:
Impact level
Description of the issue
Help text and documentation links
Affected HTML elements
Failure summaries
Related MCP server: Web Accessibility MCP Server
Project Structure
src/- Source code for the MCP server and accessibility testing tooltest-site/- A React application with intentional accessibility issues for testingbuild/- Compiled version of the source code
Installation
npm installThen install the test site dependencies:
cd test-site
npm install
cd ..Usage
Starting the MCP Server
npm run build
npm startRunning the Test Site
npm run start:test-siteThe test site will be available at http://localhost:5000.
Running Accessibility Tests
The tool accepts two types of inputs:
A full URL to test
A relative path that will be appended to
http://localhost:5000
Dependencies
@modelcontextprotocol/sdk: ^1.4.1puppeteer: ^24.1.1zod: ^3.24.1
Test Site Dependencies
react: ^18.2.0react-dom: ^18.2.0react-scripts: 5.0.1
Development
Make changes to the source code in the
src/directoryRun
npm run buildto compile the changesStart the server with
npm start
Configuring in Cursor
To add this accessibility testing tool to Cursor's MCP Server settings:
Open Cursor's Settings (⌘ + ,)
Navigate to "Features" > "MCP Servers"
Add a new MCP Server with the following configuration:
Name:
a11ySelect
commandfrom the dropdownCommand:
node path/to/cursor-a11y-mcp/index/file/in/build/folder(Replacepath/to/cursor-a11y-mcp/index/file/in/build/folderwith the absolute path to your index.js file in the build folder.)
Click
AddThe accessibility testing tool will now be available in Cursor's Composer
Usage in Composer
To use the accessibility testing tool in Cursor's Composer:
Run in your terminal:
npm run start:test-siteThis will start the test site at http://localhost:5000
In Cursor's Composer, type
use a11y toolComposer will prompt you to run the tool
After running the tool, you will see the accessibility violations in the response, and code actions to fix the violations
The Composer may prompt you to use the tool again to confirm that the violations are fixed
License
This project is licensed under the MIT License - see the LICENSE file for details.
Version
Current version: 2.0.1
Available Tools
1 toola11yB
Run accessibility tests on a URL or a local path (relative URL appended to http://localhost:5000).
| Name | Required | Description | Default |
|---|---|---|---|
| relativePath | No | Relative path appended to http://localhost:5000 | |
| url | No | Full URL to test |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the local path behavior (appended to localhost:5000), which is useful, but doesn't disclose critical behavioral traits like what the tests actually do, whether they're destructive, what permissions are needed, rate limits, or output format. This leaves significant gaps for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose and includes essential details without any wasted words. Every element serves a clear purpose in conveying the tool's functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a testing tool. It doesn't explain what accessibility tests are run, what the results look like, error conditions, or behavioral constraints. This leaves the agent with insufficient context to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters fully. The description adds marginal value by clarifying the local path behavior (appended to localhost:5000), but doesn't provide additional syntax, format details, or usage examples beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Run accessibility tests') and the target resources ('on a URL or a local path'), with no siblings to distinguish from. It uses precise verbs and identifies the exact scope of operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying the two input types (URL or local path), but doesn't provide explicit guidance on when to choose one over the other or mention any prerequisites. With no sibling tools, this is adequate but lacks detailed decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
With only one tool, there is no possibility of ambiguity or overlap between tools. The tool 'a11y' has a clear and distinct purpose focused on accessibility testing.
Since there is only one tool, naming consistency is inherently perfect. The tool name 'a11y' is concise and descriptive, and there are no other tools to compare it against for consistency.
A single tool is too few for a server named 'Cursor A11y MCP', which suggests a broader accessibility domain. While the tool is functional, the set lacks coverage for other common accessibility tasks like reporting, fixing issues, or checking compliance, making it feel thin and incomplete.
The tool surface is severely incomplete for an accessibility domain. It only provides testing on URLs or local paths, missing essential operations such as generating reports, analyzing results, fixing issues, or supporting different accessibility standards, which will limit agent effectiveness.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Deterministic axe-core accessibility scans (WCAG 2.1 AA, EN 301 549, PDF/UA) via your account.
Scan URLs for WCAG 2.1 violations, generate AI fixes, and produce VPAT 2.5 compliance reports.
Accessibility pre-checks (WCAG/BFSG) in a real browser + statement drafts. Pay per call.
Scan a web page for accessibility, security, privacy, quality and SEO issues, with fixes.
Related MCP Servers
- AlicenseBqualityAmaintenanceEnables automated web accessibility scans for WCAG compliance using Playwright and Axe-core, providing visual and JSON reports with remediation guidance.253,06856MIT
- AlicenseBqualityDmaintenanceProvides web accessibility analysis and color blindness simulation using axe-core and Puppeteer, enabling detailed accessibility checks and visual simulations based on WCAG guidelines.24MIT
- FlicenseAqualityDmaintenanceEnables accessibility testing of websites and HTML content using axe-core and IBM Equal Access engines. Supports WCAG compliance checking, multi-viewport testing, and provides detailed violation reports with remediation guidance.51
- FlicenseAqualityDmaintenanceEnables comprehensive WCAG 2.0/2.1 accessibility testing of web applications using Playwright and axe-core. Supports natural language element finding, auto-discovery of interactive components, and generates detailed compliance reports with screenshots.2
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/westsideori/cursor-a11y-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server