{"_id":"@a11ystudio/mcp-server","_rev":"3-dd84cedad18dae45e497b65be7a0d880","name":"@a11ystudio/mcp-server","dist-tags":{"latest":"0.3.2"},"versions":{"0.3.0":{"name":"@a11ystudio/mcp-server","version":"0.3.0","license":"MIT","_id":"@a11ystudio/mcp-server@0.3.0","maintainers":[{"name":"ushapitchandi","email":"ushadevi.pitchandi@gmail.com"}],"bin":{"a11ystudio-mcp":"dist/index.js"},"dist":{"shasum":"0d143ed3793a648f2b88e913aa7c1dcfc745cf74","tarball":"https://registry.npmjs.org/@a11ystudio/mcp-server/-/mcp-server-0.3.0.tgz","fileCount":30,"integrity":"sha512-DTvy3TqeTd9J8CWwzZb2SrSae6zKByyys14vY7wWnXrlUylhnO5om+KgAp9aJuv8c9PlfTq5ovSRuJ3jBv+Mnw==","signatures":[{"sig":"MEYCIQCbIz8jLrQD54KLoTDy7IFQKk/F1vHaotLky+XGc9TY+QIhAI/yArq9q+WLvfw8qIkbYYDJC7F8vurdaKMgRbYqpmsv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107659},"main":"./dist/index.js","type":"module","_from":"file:a11ystudio-mcp-server-0.3.0.tgz","types":"./dist/index.d.ts","scripts":{"lint":"node -e \"process.exit(0)\"","build":"node scripts/sync-mcp-data.mjs && tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","start":"node dist/index.js","test:ext":"node -e \"process.exit(0)\"","sync-data":"node scripts/sync-mcp-data.mjs","test:unit":"vitest run"},"_npmUser":{"name":"ushapitchandi","email":"ushadevi.pitchandi@gmail.com"},"_resolved":"/private/var/folders/s6/77sjvdv56wzb074tvhd69ks00000gp/T/48137ae4654404a5e2bddef49fe55cb2/a11ystudio-mcp-server-0.3.0.tgz","_integrity":"sha512-DTvy3TqeTd9J8CWwzZb2SrSae6zKByyys14vY7wWnXrlUylhnO5om+KgAp9aJuv8c9PlfTq5ovSRuJ3jBv+Mnw==","_npmVersion":"10.9.8","description":"A11y Studio MCP server — WCAG map, APG/CSS rules, and SME explanations for AI IDEs","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.24.2","@a11ystudio/types":"0.1.0","@a11ystudio/wcag-map":"0.1.0","@a11ystudio/flow-runner":"0.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","playwright":"^1.49.0","typescript":"^5.7.2","@types/node":"^22.10.5"},"peerDependencies":{"playwright":"^1.49.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.3.0_1782857534195_0.21577495686532955","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@a11ystudio/mcp-server","version":"0.3.1","license":"MIT","_id":"@a11ystudio/mcp-server@0.3.1","maintainers":[{"name":"ushapitchandi","email":"ushadevi.pitchandi@gmail.com"}],"bin":{"a11ystudio-mcp":"dist/index.js"},"dist":{"shasum":"4a67562414167ef0efc0da88d68cda126cad2c41","tarball":"https://registry.npmjs.org/@a11ystudio/mcp-server/-/mcp-server-0.3.1.tgz","fileCount":34,"integrity":"sha512-AJaTlq6FaJZsoIssoj121pF9oQnDiGJTf8Rd8OR8hCmpjcsAEl8AA8GFsXg71JrAHilu0WgJl84lFljn002Mpw==","signatures":[{"sig":"MEYCIQD4esYWe3IqEUw+5EkSel8ivZIdP2lsYhILMVqMHa52LQIhAJXe01/avMQ+XnKr1PBUp/kPcb7C329Iw0LmBSATu7/6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112021},"main":"./dist/index.js","type":"module","_from":"file:a11ystudio-mcp-server-0.3.1.tgz","types":"./dist/index.d.ts","scripts":{"lint":"node -e \"process.exit(0)\"","build":"node scripts/sync-mcp-data.mjs && tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","start":"node dist/index.js","test:ext":"node -e \"process.exit(0)\"","sync-data":"node scripts/sync-mcp-data.mjs","test:unit":"vitest run"},"_npmUser":{"name":"ushapitchandi","email":"ushadevi.pitchandi@gmail.com"},"_resolved":"/private/var/folders/s6/77sjvdv56wzb074tvhd69ks00000gp/T/bebdf9ce6b1c9e8dc338772ff609a648/a11ystudio-mcp-server-0.3.1.tgz","_integrity":"sha512-AJaTlq6FaJZsoIssoj121pF9oQnDiGJTf8Rd8OR8hCmpjcsAEl8AA8GFsXg71JrAHilu0WgJl84lFljn002Mpw==","_npmVersion":"10.9.8","description":"A11y Studio MCP server — WCAG map, APG/CSS rules, and SME explanations for AI IDEs","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.24.2","@a11ystudio/types":"0.1.0","@a11ystudio/wcag-map":"0.1.0","@a11ystudio/flow-runner":"0.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","playwright":"^1.49.0","typescript":"^5.7.2","@types/node":"^22.10.5"},"peerDependencies":{"playwright":"^1.49.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.3.1_1783355282393_0.47673809505969733","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"_id":"@a11ystudio/mcp-server@0.3.2","bin":{"a11ystudio-mcp":"dist/index.js"},"dist":{"shasum":"e4d1a20db2f17b4bcdc94c0d53ada423056741f3","tarball":"https://registry.npmjs.org/@a11ystudio/mcp-server/-/mcp-server-0.3.2.tgz","fileCount":42,"integrity":"sha512-V7hAiQoyqTdE/fV8pyD9omuG9oYp3UNVIXeuNeFPS479OhZUnnzYWh7VSiKcYWYNz/xVFHBwscU+OV9j8SE12A==","signatures":[{"sig":"MEUCIQDTXbU6Tj9fCWUskH1VZ/iAdN+Xe2pwWq6r7I6p++bHMQIgUPUwehbYbb7UO4UMEqWgyhCME+qm0VmZXOB6fjxC2M4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCPKXqQ0NN23ywang+j48EoAAax62FNX9JgO4iyn1q8tQIhAIeRSFh5OpWnljxGAANhQTPKj/tXzjxLNxN+4CvQ6/aT"}],"unpackedSize":122687},"main":"./dist/index.js","name":"@a11ystudio/mcp-server","type":"module","_from":"file:a11ystudio-mcp-server-0.3.2.tgz","types":"./dist/index.d.ts","license":"MIT","scripts":{"lint":"node -e \"process.exit(0)\"","build":"node scripts/sync-mcp-data.mjs && tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","start":"node dist/index.js","test:ext":"node -e \"process.exit(0)\"","sync-data":"node scripts/sync-mcp-data.mjs","test:unit":"vitest run"},"version":"0.3.2","_npmUser":{"name":"ushapitchandi","email":"ushadevi.pitchandi@gmail.com"},"_resolved":"/private/var/folders/s6/77sjvdv56wzb074tvhd69ks00000gp/T/1c92f532d0c3bff69f94f09fb417c0ee/a11ystudio-mcp-server-0.3.2.tgz","_integrity":"sha512-V7hAiQoyqTdE/fV8pyD9omuG9oYp3UNVIXeuNeFPS479OhZUnnzYWh7VSiKcYWYNz/xVFHBwscU+OV9j8SE12A==","_npmVersion":"11.6.0","description":"A11y Studio MCP server — WCAG map, APG/CSS rules, and SME explanations for AI IDEs","directories":{},"maintainers":[{"name":"ushapitchandi","email":"ushadevi.pitchandi@gmail.com"}],"_nodeVersion":"22.15.0","dependencies":{"zod":"^3.24.2","@a11ystudio/types":"0.1.0","@a11ystudio/wcag-map":"0.1.1","@a11ystudio/flow-runner":"0.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","playwright":"^1.49.0","typescript":"^5.7.2","@types/node":"^22.10.5"},"peerDependencies":{"playwright":"^1.49.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server_0.3.2_1789432415022_0.42889068393345786"}}},"time":{"created":"2026-06-30T22:12:13.945Z","modified":"2026-09-15T00:33:35.271Z","0.3.0":"2026-06-30T22:12:14.339Z","0.3.1":"2026-07-06T16:28:02.534Z","0.3.2":"2026-09-15T00:33:35.112Z"},"license":"MIT","description":"A11y Studio MCP server — WCAG map, APG/CSS rules, and SME explanations for AI IDEs","maintainers":[{"name":"ushapitchandi","email":"ushadevi.pitchandi@gmail.com"}],"readme":"# @a11ystudio/mcp-server\n\n**npm:** **v0.3.1** — [npmjs.com/package/@a11ystudio/mcp-server](https://www.npmjs.com/package/@a11ystudio/mcp-server)\n\n**Model Context Protocol** server for AI IDEs (Cursor, Claude Desktop, Copilot, etc.). Uses **`@a11ystudio/wcag-map`** for the same merged rule catalog as the VS Code extension and **`@a11ystudio/flow-runner`** for Layer 3 URL scans and announcement preview.\n\n## Tools (v0.3.1)\n\n| Tool | Purpose |\n|------|---------|\n| `preview_reading_order` | ariaSnapshot YAML → spoken walk + generic-name warnings (chain after `@playwright/mcp` `browser_snapshot`) |\n| `score_audit` | Prefill + score WCAG 2.1 AA quick audit from findings (`@a11ystudio/wcag-map`); auto=automated-verify, manual=expert-only; not a conformance claim |\n| `scan_url` | Playwright + axe on a live `http(s)://` URL — WCAG-enriched findings via shared `checkA11y` |\n| `get_a11y_studio_capabilities` | Shipped vs planned platform snapshot + rule counts + Chrome reuse map |\n| `normalize_rule_id` | Problems label → canonical `jsx-a11y/*` or `a11y-studio/*` id |\n| `lookup_wcag_rule` | Rule id → WCAG criterion, rationale, docs URL, `fixAvailable` |\n| `list_a11y_studio_rules` | Browse rules; filter by `apg`, `css`, `document`, `jsx-a11y`, `flow` |\n| `search_a11y_rules` | Keyword search (id, WCAG SC, title, rationale) |\n| `explain_finding` | Structured SME payload for agents (ADR-009 shape) — chain after `scan_url` |\n\n**Not in v0.3:** Workers-hosted scan, auth/storageState in MCP, ESLint workspace scan ([ADR-009](../../docs/ai/ADR-009-mcp-server.md)).\n\n## Playwright (required for `scan_url`)\n\n`scan_url` uses local Playwright Chromium. Install once in the monorepo or consumer project:\n\n```bash\npnpm add -D playwright\nnpx playwright install chromium\n```\n\nWithout Playwright, `scan_url` returns an install hint; other tools work without a browser.\n\n## Agent workflow example\n\n1. `scan_url` with `url: \"https://www.saucedemo.com/\"`\n2. Pick a `ruleId` from `findings`\n3. `explain_finding` with that `ruleId` for Quick Fix guidance and full diagnostic body\n\nSame axe + WCAG path as VS Code **Flow Runner** — no duplicate axe logic in this package.\n\n## Build\n\n```bash\npnpm --filter @a11ystudio/wcag-map run build\npnpm --filter @a11ystudio/flow-runner run build\npnpm --filter @a11ystudio/mcp-server run build\n```\n\nCopies both maps from `packages/wcag-map/data/` into `packages/mcp-server/data/` before compile.\n\n## npm publish (maintainer)\n\n**Playbook:** [docs/prompts/mcp-npm-publish-prep.md](../../docs/prompts/mcp-npm-publish-prep.md)  \n**Credentials:** [docs/specs/dev-environment-setup.md](../../docs/specs/dev-environment-setup.md) §6 — Granular Access Token with **Bypass 2FA** (security-key accounts cannot use `--otp`).\n\nFrom repo root:\n\n```bash\npnpm run publish:mcp:prep\nMCP_PUBLISH_CONFIRM=yes pnpm run publish:mcp\nnpm view @a11ystudio/mcp-server version\n```\n\nChain: `@a11ystudio/types`, `wcag-map`, `core`, `flow-runner`, `mcp-server` (0.3.1). Agents must wait for human **publish mcp** before setting `MCP_PUBLISH_CONFIRM=yes`.\n\n**After publish — consumers (no monorepo clone):**\n\n```json\n{\n  \"mcpServers\": {\n    \"a11ystudio\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@a11ystudio/mcp-server\"]\n    }\n  }\n}\n```\n\nPublic guide: [a11ystudio.io/docs/mcp-server](https://a11ystudio.io/docs/mcp-server/)\n\n## Cursor MCP config\n\nCopy [docs/cursor/mcp.json.example](../../docs/cursor/mcp.json.example) to `.cursor/mcp.json` (or merge into Cursor Settings → MCP). Use the absolute path to `packages/mcp-server/dist/index.js` after build. Restart Cursor.\n\n## Competitive context\n\nLocal `scan_url` vs community axe-only MCP and Deque Axe MCP **`analyze`**: [COMPETITIVE_NOTES.md](../../docs/ai/COMPETITIVE_NOTES.md) § Community A11y MCP.\n\n## Pre-Chrome gate\n\nSee [docs/specs/pre-chrome-engine-gate.md](../../docs/specs/pre-chrome-engine-gate.md).\n\n## Monorepo\n\n[docs/architecture/packages-and-engine.md](../../docs/architecture/packages-and-engine.md)\n\nSpec: [docs/specs/mcp-scan-url-spec.md](../../docs/specs/mcp-scan-url-spec.md)\n","readmeFilename":"README.md"}