{"_id":"@a11yflowdev/mcp","_rev":"3-1d560ae728d10233074d56e24c3199e8","name":"@a11yflowdev/mcp","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@a11yflowdev/mcp","version":"0.1.0","keywords":["accessibility","wcag","a11y","mcp","model-context-protocol","ai","a11yflow"],"author":{"name":"Benjamin Morton","email":"ben@a11yflow.dev"},"license":"MIT","_id":"@a11yflowdev/mcp@0.1.0","maintainers":[{"name":"togglekitdev","email":"ben@togglekit.dev"}],"homepage":"https://a11yflow.dev","bugs":{"url":"https://github.com/benjaminmorton/a11yflow/issues"},"bin":{"a11yflow-mcp":"bin/a11yflow-mcp.js"},"dist":{"shasum":"47a0e33f3c1e25d60bc0ee61f56d4c9975944ec2","tarball":"https://registry.npmjs.org/@a11yflowdev/mcp/-/mcp-0.1.0.tgz","fileCount":5,"integrity":"sha512-3N3V1D/GZp7RtnHC0zkmJsWENyXIS1aQLkH3WlZmBZQF8gf+kHTJi4WUfxvUSZO+SsO0Sy6CEoG7ZxiaYj2Blw==","signatures":[{"sig":"MEUCIEG5btBw0mKJcPE0F7LymzM5DEPlIJ0hemeZ8a9ANajuAiEAkI3i/U468Ovttezl++QEZZzOIUlmucFeijNUgdoxh7U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60011},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"825b0ae858de8cb1da10dd58d8c2b725870c9f1d","private":false,"scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"togglekitdev","email":"ben@togglekit.dev"},"repository":{"url":"git+https://github.com/benjaminmorton/a11yflow.git","type":"git","directory":"packages/mcp"},"_npmVersion":"10.9.2","description":"MCP server for A11yFlow — accessibility scanning tools for AI agents","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.24.0","@a11yflow/api-client":"workspace:*","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","typescript":"^5.7.2","@types/node":"^22.10.5"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.0_1774902553647_0.3376892988009337","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@a11yflowdev/mcp","version":"0.1.1","keywords":["accessibility","wcag","a11y","mcp","model-context-protocol","ai","a11yflow"],"author":{"name":"Benjamin Morton","email":"ben@a11yflow.dev"},"license":"MIT","_id":"@a11yflowdev/mcp@0.1.1","maintainers":[{"name":"togglekitdev","email":"ben@togglekit.dev"}],"homepage":"https://a11yflow.dev","bugs":{"url":"https://github.com/benjaminmorton/a11yflow/issues"},"bin":{"a11yflow-mcp":"bin/a11yflow-mcp.js"},"dist":{"shasum":"b65c53cb490d29eac60594417cfd03a2cb04e194","tarball":"https://registry.npmjs.org/@a11yflowdev/mcp/-/mcp-0.1.1.tgz","fileCount":5,"integrity":"sha512-tdGwZnqROes8weQ1IwUQSxjdgX2l9oeVzr/QpkJchSFpiCwN01BXSxGy3L6HNO+GOGp7tDWM0ehvpiJ7cDMgVw==","signatures":[{"sig":"MEUCIQCE07neeHie3AsVMM5EDgq0DdLNY493dcJPFnM5sJRGKAIgCl/fusfBQvhpgHoH10KlIgde1cHnEq/0UcesmWXy1I4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60011},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"825b0ae858de8cb1da10dd58d8c2b725870c9f1d","private":false,"scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest run","build":"tsup","type-check":"tsc --noEmit"},"_npmUser":{"name":"togglekitdev","email":"ben@togglekit.dev"},"repository":{"url":"git+https://github.com/benjaminmorton/a11yflow.git","type":"git","directory":"packages/mcp"},"_npmVersion":"10.9.2","description":"MCP server for A11yFlow — accessibility scanning tools for AI agents","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.24.0","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","typescript":"^5.7.2","@types/node":"^22.10.5","@a11yflow/api-client":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.1_1774902640120_0.7174596025327451","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@a11yflowdev/mcp","version":"0.1.2","description":"MCP server for A11yFlow — accessibility scanning tools for AI agents","author":{"name":"Benjamin Morton","email":"ben@a11yflow.dev"},"license":"MIT","private":false,"type":"module","bin":{"a11yflow-mcp":"bin/a11yflow-mcp.js"},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run","type-check":"tsc --noEmit","lint":"eslint src/"},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.1","zod":"^3.24.0"},"devDependencies":{"@a11yflow/api-client":"workspace:*","@types/node":"^22.10.5","tsup":"^8.3.0","typescript":"^5.7.2"},"keywords":["accessibility","wcag","a11y","mcp","model-context-protocol","ai","a11yflow"],"repository":{"type":"git","url":"git+https://github.com/benjaminmorton/a11yflow.git","directory":"packages/mcp"},"homepage":"https://a11yflow.dev","bugs":{"url":"https://github.com/benjaminmorton/a11yflow/issues"},"_id":"@a11yflowdev/mcp@0.1.2","gitHead":"99c93d2f0ab0eac414e1f5fbca3d7f7e1bafbee3","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-6tGCzh/YixolzLvgkjyQt9sRjyxLNbbK8Pts7jlggg/cMuUAX7G7gxOSK6a/EIXIpESeE9+yZ/I2dUSmT25fpg==","shasum":"ccc7334400cf40669c928ca0112d9dcdcbfcec98","tarball":"https://registry.npmjs.org/@a11yflowdev/mcp/-/mcp-0.1.2.tgz","fileCount":6,"unpackedSize":64053,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCB7lAnvPB2R3PtiKdqcGj5fxX66T6snVoD+2/CsfsuTgIgIsb3Facz67R8UX0Uk/V42z5EdKckeSdec5l4z6P8P54="}]},"_npmUser":{"name":"togglekitdev","email":"ben@togglekit.dev"},"directories":{},"maintainers":[{"name":"togglekitdev","email":"ben@togglekit.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.1.2_1774903988928_0.19721147042450982"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-30T20:29:13.533Z","modified":"2026-03-30T20:53:09.201Z","0.1.0":"2026-03-30T20:29:13.820Z","0.1.1":"2026-03-30T20:30:40.346Z","0.1.2":"2026-03-30T20:53:09.066Z"},"bugs":{"url":"https://github.com/benjaminmorton/a11yflow/issues"},"author":{"name":"Benjamin Morton","email":"ben@a11yflow.dev"},"license":"MIT","homepage":"https://a11yflow.dev","keywords":["accessibility","wcag","a11y","mcp","model-context-protocol","ai","a11yflow"],"repository":{"type":"git","url":"git+https://github.com/benjaminmorton/a11yflow.git","directory":"packages/mcp"},"description":"MCP server for A11yFlow — accessibility scanning tools for AI agents","maintainers":[{"name":"togglekitdev","email":"ben@togglekit.dev"}],"readme":"# @a11yflowdev/mcp\n\nMCP server for [A11yFlow](https://a11yflow.dev) — gives AI agents accessibility scanning superpowers. Works with Claude Code, Claude Desktop, Cursor, Windsurf, and any MCP-compatible client.\n\nScan pages, read results, look up rules, and manage schedules — all through natural tool calls. The agent gets plain-language explanations it can relay directly to users.\n\n## Setup\n\n### Claude Code\n\nAdd to `.mcp.json` in your project root:\n\n```json\n{\n  \"mcpServers\": {\n    \"a11yflow\": {\n      \"command\": \"npx\",\n      \"args\": [\"@a11yflowdev/mcp\"],\n      \"env\": {\n        \"A11YFLOW_API_KEY\": \"sk_live_your_key\"\n      }\n    }\n  }\n}\n```\n\n### Claude Desktop\n\nAdd to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"a11yflow\": {\n      \"command\": \"npx\",\n      \"args\": [\"@a11yflowdev/mcp\"],\n      \"env\": {\n        \"A11YFLOW_API_KEY\": \"sk_live_your_key\"\n      }\n    }\n  }\n}\n```\n\n### Cursor\n\nAdd to `.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"a11yflow\": {\n      \"command\": \"npx\",\n      \"args\": [\"@a11yflowdev/mcp\"],\n      \"env\": {\n        \"A11YFLOW_API_KEY\": \"sk_live_your_key\"\n      }\n    }\n  }\n}\n```\n\nGet an API key free at [a11yflow.dev](https://a11yflow.dev).\n\n## Available Tools\n\n### a11yflow_scan\n\nRun a single-page WCAG 2.2 accessibility scan. Polls internally — the agent calls once and gets complete results.\n\n**Parameters:**\n- `url` (required) — URL to scan\n- `standard` — `wcag2a`, `wcag2aa`, `wcag2aaa`, `wcag22aa` (default)\n- `waitFor` — milliseconds to wait for JS rendering (default: 3000)\n- `includeHtml` — include HTML snippets of violating elements (default: true)\n- `includeBestPractices` — include non-WCAG rules (default: false)\n\n**Returns:** Score, violations with plain-language explanations (what's wrong, who's affected, how to fix), WCAG guidelines, EAA obligations, and affected elements.\n\n### a11yflow_crawl\n\nCrawl and scan multiple pages. Returns aggregate scores and per-page results.\n\n**Parameters:**\n- `url` (required) — starting URL\n- `mode` — `links` (default) or `sitemap`\n- `maxPages` — 2-50 (default: 10, tier-dependent)\n- `standard` — WCAG standard\n\n### a11yflow_get_scan\n\nRetrieve results of a previous scan by ID.\n\n**Parameters:**\n- `scanId` (required) — scan job ID\n- `format` — `full` (default), `summary`, `violations-only`\n\n### a11yflow_lookup_rule\n\nLook up documentation for an accessibility rule.\n\n**Parameters:**\n- `ruleId` (required) — axe-core rule ID (e.g. `color-contrast`, `image-alt`, `label`)\n\n**Returns:** Rule description, WCAG guidelines, EAA obligations, fix guidance, and Deque University link.\n\n### a11yflow_list_rules\n\nList all supported accessibility rules.\n\n**Parameters:**\n- `impact` (optional) — filter by `critical`, `serious`, `moderate`, `minor`\n\n### a11yflow_usage\n\nCheck current API usage — scheduled scan and webhook counts.\n\n## Example Workflows\n\n**\"Scan my staging site and fix the issues\"**\n\n```\n1. Agent calls a11yflow_scan({ url: \"https://staging.example.com\" })\n2. Gets back: 4 violations (2 critical, 1 serious, 1 moderate)\n3. For each violation, reads the CSS selector and greps the codebase\n4. Applies fixes (adds alt text, fixes contrast, adds label)\n5. Re-scans to verify — score improved from 74 to 96\n```\n\n**\"Is this component accessible?\"**\n\n```\n1. Agent reads the component code\n2. Calls a11yflow_lookup_rule({ ruleId: \"dialog\" })\n3. Scans the dev server URL showing the component\n4. Reports findings with fix suggestions inline\n```\n\n## Design Principles\n\n- **Plain language by default** — all responses use what/why/how format, no WCAG jargon\n- **Polls internally** — one tool call, complete results back\n- **Structured for LLMs** — clear section headers, consistent format, no ANSI codes\n- **Graceful errors** — rate limits show retry-after, failures show clear messages\n\n## Links\n\n- [Documentation](https://a11yflow.dev/docs#mcp-setup)\n- [CLI Tool](https://www.npmjs.com/package/@a11yflowdev/cli)\n- [GitHub](https://github.com/benjaminmorton/a11yflow)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}