Skip to main content
Glama
vltansky

e11y-docs-mcp

by vltansky

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 build

2. 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 server

4. Test Your Tools

Use the MCP inspector to test your tools:

yarn inspector

Example 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 JavaScript

  • yarn watch - Watch mode for development

  • yarn start - Run the compiled server

  • yarn test - Run unit tests

  • yarn test:ui - Run tests with UI

  • yarn 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 configuration

Testing

The server includes comprehensive tests for all tools:

yarn test        # Run all tests
yarn test:ui     # Run tests with interactive UI

Use 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:

  1. Tool Registration: MCP tools are registered with the server

  2. Remote Data Access: Documentation is fetched from the GitHub repository

  3. Search Functionality: Text-based search across article titles and paths

  4. Content Retrieval: Full markdown content with metadata extraction

  5. Response Formatting: Consistent JSON output with optional compact mode

Contributing

  1. Fork this repository

  2. Create your feature branch

  3. Add tests for new functionality

  4. Ensure all tests pass

  5. Submit a pull request

License

MIT License - feel free to use this server for your accessibility documentation needs.

Resources

Available Tools

3 tools
fetch_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the accessibility article (from search results, e.g., "docs/www.w3.org_WAI_ARIA_apg_patterns_accordion.md")
outputModeNoOutput format: "json" for formatted JSON (default), "compact-json" for minified JSONjson
includeMetadataNoInclude article metadata such as source URL and last updated date

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputModeNoOutput format: "json" for formatted JSON (default), "compact-json" for minified JSONjson

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query to find relevant accessibility articles (supports fuzzy matching and typos)
maxResultsNoMaximum number of results to return (1-20)
outputModeNoOutput format: "json" for formatted JSON (default), "compact-json" for minified JSONjson
includeContentNoSearch within article content for better results (recommended)

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 3 tool updatesv0.1.0
    • First observedfetch_accessibility_article
    • First observedlist_accessibility_articles
    • First observedsearch_accessibility_articles

TDQS

A4/5.0

Scored across 3 tools

Disambiguation5/5

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.

Naming Consistency5/5

All tool names follow the verb_noun pattern with the same resource: search/fetch/list + accessibility_articles. The naming is uniform and predictable.

Tool Count5/5

Three tools is well-scoped for a documentation repository. The count covers the essential discover and retrieve actions without unnecessary bloat.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    An 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 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP 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.
    11
    363 npm
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for documentation search that automatically indexes web documentation sites and provides semantic, full-text, or hybrid search capabilities.
    2 npm
    MIT