MyA11yReport MCP
The MyA11yReport MCP is a local Model Context Protocol server that gives an AI agent the tools to audit a website: it drives a real Chromium browser with Playwright, runs axe-core, and reads the page’s structure, tab order, images and colors. An agent connects to it over stdio and can then navigate, inspect and report on pages on its own.
It runs entirely on your machine — no account, no API key, no data leaves the host. For the full step-by-step workflow an agent should follow, see the accessibility auditor skill.
What it gives your agent
- Automated audits — axe-core scans with violation counts, per-rule detail and target selectors.
- Page review — landmarks, headings, nested lists and frames; tab/focus order
with out-of-order
tabindexflags; every image and its alt text. - Contrast — WCAG 2.2 ratio for any two colors, no browser needed.
- Browser control — navigate, click, type, check, select, scroll, screenshot and run arbitrary page JavaScript, so the agent can reach content behind accordions, modals and menus.
Sessions are explicit: the agent calls start_session, passes the returned
sessionId to every later call, and calls close_session when done. Every action
is logged to a session history file.
Install
Requires Node.js 20 or newer.
# Install the server
npm i -g mya11yreport-mcp
# Download the matching Chromium build (about 150 MB, one time)
mya11yreport-mcp install chromium
Quick check that it runs:
echo '{}' | mya11yreport-mcp
If you would rather not install globally, replace the command with
npx -y mya11yreport-mcp everywhere below — but still run the browser step once
with npx -y mya11yreport-mcp install chromium.
Add it to your agent
opencode
Add this to your project’s opencode.json, or to ~/.config/opencode/opencode.json
for every project, then restart opencode.
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"mya11y-audit": {
"type": "local",
"command": ["mya11yreport-mcp"],
"enabled": true
}
}
}
If you are not installing globally, use the npx form instead:
"command": ["npx", "-y", "mya11yreport-mcp"]
Claude Desktop
Edit claude_desktop_config.json — on macOS at
~/Library/Application Support/Claude/claude_desktop_config.json, on Windows at
%APPDATA%\Claude\claude_desktop_config.json — then restart Claude Desktop.
{
"mcpServers": {
"mya11y-audit": {
"command": "npx",
"args": ["-y", "mya11yreport-mcp"]
}
}
}
If you installed globally, use "command": "mya11yreport-mcp" with
"args": [].
Claude Code
Add the server from the terminal:
claude mcp add mya11y-audit -- npx -y mya11yreport-mcp
Anything else
Any MCP client that supports local stdio servers works. Configure the command as
mya11yreport-mcp (global install) or npx -y mya11yreport-mcp, with no
arguments and no environment variables.
Tools
| Tool | What it does |
|---|---|
start_session / close_session |
Open and close a browser session |
get_audit_guide |
The full audit workflow, as markdown (no session needed) |
run_a11y_audit |
Run an axe-core scan on the current page or a URL |
get_structure |
Landmark regions, headings, nested lists and frames |
get_tab_order |
Tabbable order, with positive-tabindex flags |
list_images |
Every img and inline svg, with alt text and source |
check_color_contrast |
WCAG 2.2 ratio for two colors (no session needed) |
navigate |
Load a URL |
click / type / press_key / check / uncheck / select_option |
Interact with the page |
scroll_by |
Scroll the page |
screenshot |
Capture the current viewport |
get_page_snapshot |
Accessibility-tree snapshot of the page |
evaluate |
Run JavaScript in the page for computed styles or geometry |
get_viewport_size / get_scroll_position |
Read layout state |
Tools that read the page (get_structure, get_tab_order, list_images) cover
the top frame only and pierce open shadow roots, matching the MyA11yReport
browser extension.
Running an audit
Give your agent a URL or a sitemap and ask for an accessibility audit. It will
call get_audit_guide first, then work through the automated pass and the
structure, tab-order, image and contrast reviews. The guide is explicit about the
checks a machine cannot make — keyboard navigation, screen-reader
compatibility and image meaning — which a human must verify.