Repository avatar
Other Tools
v1.0.0
active

magentaa11y

io.github.joe-watkins/magentaa11y

MCP server providing accessibility criteria from MagentaA11y

Documentation

MagentaA11y MCP Server

MCP server providing accessibility criteria from MagentaA11y. Works locally (stdio) and remotely (Netlify Functions).

Installation

Via npm (Recommended)

{
  "mcpServers": {
    "magentaa11y": {
      "command": "npx",
      "args": ["-y", "magentaa11y-mcp"]
    }
  }
}

Local Development

{
  "mcpServers": {
    "magentaa11y": {
      "command": "node",
      "args": ["/path/to/src/index.js"]
    }
  }
}

Remote (Netlify)

Clone this project, build it, and deploy to Netlify. Then use the following configuration:

{
  "mcpServers": {
    "magentaa11y": {
      "command": "npx",
      "args": ["mcp-remote@next", "https://your-site.netlify.app/mcp"]
    }
  }
}

Example Prompts

  • Get me the accessibility criteria for the Web Button component in Gherkin format.
  • Get me a list of all the native components.
  • Get me the Tooltip AC for Web - Condensed in markdown format.

Tools

All tools are read-only, non-destructive, and idempotent. They include OpenAI Apps SDK annotations for enhanced integration.

ToolDescription
list_web_componentsList web accessibility components
get_web_componentGet detailed criteria for a web component
search_web_criteriaSearch web criteria by keyword
list_native_componentsList native iOS/Android components
get_native_componentGet detailed criteria for a native component
search_native_criteriaSearch native criteria by keyword
get_component_gherkinGet Gherkin-style acceptance criteria
get_component_condensedGet condensed acceptance criteria
get_component_developer_notesGet developer implementation notes
get_component_native_notesGet iOS or Android specific notes
list_component_formatsList available formats for a component

OpenAI Marketplace Tool Annotations

Each tool includes these annotations (OpenAI Apps SDK compatible):

  • readOnlyHint: true - Tools only read data, never modify
  • destructiveHint: false - No destructive operations
  • idempotentHint: true - Same input always produces same output
  • openWorldHint: false - Operates on curated MagentaA11y dataset

Development Setup

git clone --recurse-submodules https://github.com/joe-watkins/magentaa11y-mcp.git
cd magentaa11y-mcp
npm install
npm run update-content

Updating Content

The accessibility criteria comes from the magentaA11y submodule. To update:

npm run update-content

This pulls the latest from magentaA11y, builds it, and copies the generated content.json to /data.

Project Structure

src/
  index.js          # MCP server (stdio transport)
  tools.js          # Tool definitions and handlers
  helpers.js        # Data loading and search utilities
data/
  content.json      # MagentaA11y accessibility criteria
netlify/
  functions/api.js  # Netlify Function (SSE transport)
scripts/
  update-content.js # Build script for updating content

License

This MCP server is licensed under the MIT License.

Third-Party Content Attribution

The accessibility criteria content served by this MCP server is sourced from MagentaA11y by T-Mobile, which is licensed under the Apache License 2.0.

MagentaA11y © T-Mobile USA, Inc. - Licensed under Apache 2.0

Links