e11y-docs-mcp
Click on "Deploy 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., "@e11y-docs-mcpsearch for accordion accessibility patterns"
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.
E11y Documentation MCP Server
A Model Context Protocol (MCP) server for accessing web accessibility documentation.
This MCP server provides AI assistants with access to web accessibility documentation from the e11y-mcp repository. It allows searching for and fetching W3C WAI-ARIA patterns and accessibility best practices documentation.
Features
Search Accessibility Articles: Find relevant W3C WAI-ARIA patterns and accessibility documentation
Fetch Article Content: Retrieve complete markdown documentation with metadata
List All Articles: Get an overview of all available accessibility documentation
Real-time Access: Fetches documentation directly from the remote repository
Metadata Support: Includes source URLs, last updated dates, and content information
Related MCP server: w3c-mcp
Available Tools
1. search_accessibility_articles
Search for relevant web accessibility articles from the e11y-mcp documentation repository.
Parameters:
query(string): Search query to find relevant accessibility articles (e.g., "accordion", "button", "dialog")maxResults(number, optional): Maximum number of results to return (1-20, default: 10)outputMode(enum, optional): Output format - "json" or "compact-json" (default: "json")
Example:
{
"query": "accordion",
"maxResults": 5
}2. fetch_accessibility_article
Fetch the complete content of a specific accessibility article from the e11y-mcp repository.
Parameters:
path(string): Path to the accessibility article (from search results)includeMetadata(boolean, optional): Include article metadata (default: true)outputMode(enum, optional): Output format - "json" or "compact-json" (default: "json")
Example:
{
"path": "docs/www.w3.org_WAI_ARIA_apg_patterns_accordion.md",
"includeMetadata": true
}3. list_accessibility_articles
List all available accessibility articles in the e11y-mcp documentation repository.
Parameters:
outputMode(enum, optional): Output format - "json" or "compact-json" (default: "json")
Installation
Install from NPM
For Cursor IDE
{
"mcpServers": {
"e11y-docs-mcp": {
"command": "npx",
"args": ["e11y-docs-mcp@latest"]
}
}
}For Claude Code
claude mcp add e11y-docs-mcp npx 'e11y-docs-mcp@latest'
Quick Start
1. Development Installation
git clone <your-repo-url>
cd e11y-docs-mcp
yarn install
yarn build2. Configure MCP Client for Development
Add to your .cursor/mcp.json or other MCP client configuration:
{
"mcpServers": {
"e11y-docs-mcp": {
"command": "node",
"args": ["path/to/your/dist/server.js"]
}
}
}3. Start Using
yarn start # Start the server4. Test Your Tools
Use the MCP inspector to test your tools:
yarn inspectorExample Usage
Search for Accessibility Patterns
{
"tool": "search_accessibility_articles",
"parameters": {
"query": "button",
"maxResults": 5
}
}Fetch Complete Documentation
{
"tool": "fetch_accessibility_article",
"parameters": {
"path": "docs/www.w3.org_WAI_ARIA_apg_patterns_button.md",
"includeMetadata": true
}
}List All Available Articles
{
"tool": "list_accessibility_articles",
"parameters": {}
}Documentation Structure
The server accesses documentation from the vltansky/e11y-mcp repository, which contains:
W3C WAI-ARIA Patterns: Implementation guides for common UI patterns
Accessibility Best Practices: Guidelines for creating accessible web interfaces
Live Examples: Interactive demonstrations of accessible components
Implementation Details: ARIA roles, states, properties, and keyboard interactions
Available Documentation
The documentation currently includes patterns such as:
Accordion Pattern (Sections With Show/Hide Functionality)
Breadcrumb Pattern
Date Picker Dialog Example
And more...
Development
Available Scripts
yarn build- Compile TypeScript to JavaScriptyarn watch- Watch mode for developmentyarn start- Run the compiled serveryarn test- Run unit testsyarn test:ui- Run tests with UIyarn inspector- Start MCP inspector for testing tools
Project Structure
src/
├── server.ts # Main MCP server setup and tool registration
├── tools/
│ ├── e11y-tools.ts # Accessibility documentation tools
│ └── e11y-tools.test.ts # Unit tests for tools
└── utils/
└── formatter.ts # Response formatting utilities
docs/ # Local documentation and examples
package.json # Dependencies and scripts
tsconfig.json # TypeScript configurationTesting
The server includes comprehensive tests for all tools:
yarn test # Run all tests
yarn test:ui # Run tests with interactive UIUse Cases
For AI Assistants
Code Review: Check accessibility compliance in web applications
Implementation Guidance: Get specific ARIA patterns for UI components
Best Practices: Access current W3C accessibility guidelines
Pattern Discovery: Find the right accessibility pattern for specific use cases
For Developers
Quick Reference: Access accessibility documentation without leaving your IDE
Implementation Examples: Get working code examples for accessible components
Standards Compliance: Ensure your code follows W3C accessibility guidelines
Learning Resource: Understand accessibility principles and implementation
Architecture
The server follows a simple architecture:
Tool Registration: MCP tools are registered with the server
Remote Data Access: Documentation is fetched from the GitHub repository
Search Functionality: Text-based search across article titles and paths
Content Retrieval: Full markdown content with metadata extraction
Response Formatting: Consistent JSON output with optional compact mode
Contributing
Fork this repository
Create your feature branch
Add tests for new functionality
Ensure all tests pass
Submit a pull request
License
MIT License - feel free to use this server for your accessibility documentation needs.
Resources
Available Tools
3 toolsfetch_accessibility_articleA
Fetch the complete content of a specific accessibility article from the e11y-mcp repository. Use the path from search results to retrieve the full markdown documentation.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the accessibility article (from search results, e.g., "docs/www.w3.org_WAI_ARIA_apg_patterns_accordion.md") | |
| outputMode | No | Output format: "json" for formatted JSON (default), "compact-json" for minified JSON | json |
| includeMetadata | No | Include article metadata such as source URL and last updated date |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the action is to 'fetch' (implying read-only) and that it returns 'full markdown documentation' (implying no truncation). However, it does not disclose details about error behavior, response structure, or any side effects. For a simple read operation, this is adequate but lacks depth.
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 two sentences, front-loaded with the core purpose, and every sentence adds value. It is concise, avoid redundancy, and provides both the action and a key usage hint in a compact format.
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?
The tool has 3 params (all documented), no output schema, and no annotations. The description gives the essential context: the source repository, the need for a path from search, and the nature of the return (full markdown). It does not explicitly describe the response envelope, but this is acceptable for a straightforward fetch operation.
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 coverage is 100% with well-described parameters, so baseline is 3. The description adds meaning beyond the schema by noting the 'path' should come from search results and that the content is 'full markdown documentation,' which contextualizes the parameters without repeating schema details.
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 tool fetches the complete content of a specific accessibility article from a named repository. It uses specific verb+resource ('Fetch...article') and implies a distinction from siblings by focusing on retrieving full markdown documentation for an already-known path, rather than searching or listing.
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?
It provides clear usage context by instructing to use the path from search results, which implies a workflow via search_accessibility_articles. While it does not explicitly name alternatives or say when not to use it, the reference to search results gives a practical prerequisite and distinguishes it from sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accessibility_articlesB
List all available accessibility articles in the e11y-mcp documentation repository. Get an overview of all W3C WAI-ARIA patterns and accessibility guidance available.
| Name | Required | Description | Default |
|---|---|---|---|
| outputMode | No | Output format: "json" for formatted JSON (default), "compact-json" for minified JSON | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral details. It mentions 'get an overview', which hints at the output nature, but does not clarify whether the operation is read-only, paginated, or what exact fields (e.g., titles, links, content) are returned. This lacks sufficient behavioral transparency 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences. The first sentence is specific and actionable, while the second largely restates the scope but adds little new information. It is not overly verbose, though the second sentence could be considered somewhat redundant.
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?
The tool is simple, but the absence of an output schema places a burden on the description to explain the return value. The description offers a general idea of the content (overview of W3C WAI-ARIA patterns) but does not detail the response structure, such as whether it includes metadata, summaries, or links. This is adequate but leaves gaps.
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?
The only parameter, outputMode, is fully described in the schema with its enum values and default, so the schema already provides complete information. The description adds no extra parameter meaning, aligning with the baseline score of 3 for high schema coverage.
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 tool's action ('List all available accessibility articles') and its resource ('e11y-mcp documentation repository'). It distinguishes itself from the sibling tools search_accessibility_articles and fetch_accessibility_article by emphasizing the comprehensive listing of all available content.
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 the tool should be used when a complete overview of all accessibility articles is needed, given the word 'all'. However, it does not explicitly mention the alternative sibling tools or provide when-not-to-use guidance, so the usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_accessibility_articlesA
Search for relevant web accessibility articles from the e11y-mcp documentation repository. Find W3C WAI-ARIA patterns and accessibility implementation guidance with fuzzy matching and content search.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query to find relevant accessibility articles (supports fuzzy matching and typos) | |
| maxResults | No | Maximum number of results to return (1-20) | |
| outputMode | No | Output format: "json" for formatted JSON (default), "compact-json" for minified JSON | json |
| includeContent | No | Search within article content for better results (recommended) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the transparency burden. It discloses key behaviors like 'fuzzy matching and content search,' but it does not mention safety characteristics (e.g., read-only nature), rate limits, or output format. The description adds some value but lacks richer behavioral context.
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 two sentences, front-loaded with the core purpose, and contains no filler. Every phrase adds value—naming the repository, the topic, and the search behavior.
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 the tool's moderate complexity (4 parameters, no output schema, no annotations), the description covers the essential context: what it searches, where it searches, and how matching works. It does not explain the exact return structure, but for a search tool the purpose and source are sufficiently clear to guide invocation.
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?
The input schema has 100% coverage for all four parameters, each with descriptions. The tool description reinforces 'fuzzy matching and content search' which aligns with the query and includeContent parameters, but it does not add new meaning beyond the schema. Baseline 3 is appropriate when the schema thoroughly documents parameters.
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 tool's function: 'Search for relevant web accessibility articles from the e11y-mcp documentation repository.' It also specifies the purpose ('Find W3C WAI-ARIA patterns and accessibility implementation guidance') and distinguishes from siblings like fetch and list by focusing on search with fuzzy matching and content search.
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 provides context for when to use this tool (when searching for relevant articles with fuzzy matching and content search). However, it does not explicitly mention alternatives or exclusions, such as when to use fetch_accessibility_article or list_accessibility_articles instead. This is a minor gap.
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.
3 tool updates
v0.1.0- First observed
fetch_accessibility_article - First observed
list_accessibility_articles - First observed
search_accessibility_articles
TDQS
Scored across 3 tools
Each tool has a distinct role: search, fetch, and list. Search finds articles by query, fetch retrieves full content by path, and list provides an overview. No overlap in their primary functions.
All tool names follow the verb_noun pattern with the same resource: search/fetch/list + accessibility_articles. The naming is uniform and predictable.
Three tools is well-scoped for a documentation repository. The count covers the essential discover and retrieve actions without unnecessary bloat.
The set covers the core read-only workflow: discovering articles (list/search) and retrieving content (fetch). There is no update/create/delete, which is appropriate for a docs server, but a direct get-by-ID could be a minor addition.
Maintenance
Related MCP Connectors
MCP server for innovationlab documentation, generated by doc2mcp.
MCP server for searching Airweave collections with natural language queries.
MCP server for accessing curated awesome list documentation
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server for accessibility auditing that provides WCAG 2.2 criteria lookup, HTML remediation guidance, and automated documentation generation for UI components. It enables users to analyze code snippets for issues and generate professional accessibility audit reports.140 npmMIT
- AlicenseAqualityBmaintenanceMCP Server for accessing W3C/WHATWG/IETF web specifications. Provides AI assistants with access to official web standards data including specifications, WebIDL definitions, CSS properties, and HTML elements.11363 npm4MIT
- AlicenseAqualityDmaintenanceAn accessibility expert MCP server that provides AI coding assistants with real-time access to WAI-ARIA patterns, code review, contrast checking, and WCAG guidance for writing accessible code from the start.4MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for documentation search that automatically indexes web documentation sites and provides semantic, full-text, or hybrid search capabilities.2 npmMIT