{"_id":"a11y-mcp","_rev":"9-f272c96359976a9c56533ed90be152bf","name":"a11y-mcp","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.1":{"name":"a11y-mcp","version":"1.0.1","keywords":["accessibility","a11y","audit","mcp","axe-core"],"author":"","license":"ISC","_id":"a11y-mcp@1.0.1","maintainers":[{"name":"priyankark","email":"priyankar.kumar98@gmail.com"}],"bin":{"a11y-mcp":"src/index.js"},"dist":{"shasum":"0b27922ae20c5b7e8dbb12a65a60a33396963903","tarball":"https://registry.npmjs.org/a11y-mcp/-/a11y-mcp-1.0.1.tgz","fileCount":5,"integrity":"sha512-oqTXo8xd1I6KOFMcLkBzEUjgEssI2r+d7uGofOiI0Q0XC54yIbTUyEVSQ4OxxNYfQGIXIl6vPmaRHHrUj1HG1Q==","signatures":[{"sig":"MEUCIB3qV0Pqn5tOiBV4AvDiZgtzhGpP+8YhR/MxkjI7HAD8AiEA9uwxCOhhmISzAEm/Z4H864iI4HTyWxUBE4AdDgNMWzE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16453},"main":"src/index.js","type":"module","gitHead":"10df35362fe096ffaccc2ed16fd9c7e9b180fd64","scripts":{"test":"node test/run-test.js","build":"chmod +x src/index.js","start":"node src/index.js"},"_npmUser":{"name":"priyankark","email":"priyankar.kumar98@gmail.com"},"_npmVersion":"10.9.2","description":"MCP server for performing accessibility audits on webpages","directories":{},"_nodeVersion":"22.14.0","dependencies":{"axe-core":"^4.10.3","puppeteer":"^24.6.0","@axe-core/puppeteer":"^4.10.1","@modelcontextprotocol/sdk":"^1.9.0","@modelcontextprotocol/create-server":"^0.3.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/a11y-mcp_1.0.1_1744115345842_0.36666266606118714","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"a11y-mcp","version":"1.0.2","keywords":["accessibility","a11y","audit","mcp","axe-core"],"author":"","license":"MPL-2.0","_id":"a11y-mcp@1.0.2","maintainers":[{"name":"priyankark","email":"priyankar.kumar98@gmail.com"}],"bin":{"a11y-mcp":"src/index.js"},"dist":{"shasum":"1707f4679f48a888fe53c697973d7a0c91aef186","tarball":"https://registry.npmjs.org/a11y-mcp/-/a11y-mcp-1.0.2.tgz","fileCount":7,"integrity":"sha512-nYJB2dqlTNkvLdVFrhn3WfRvpodXB8YKv4B+ocsN+5D04uZ0+V0bDR9eB3tesuF2wl40OzNkIQ4D0/0aM+TUxQ==","signatures":[{"sig":"MEUCIHWgf0ZaLF5eNhBJA37weoebLLscUwqtozBb/KFcbn8mAiEA2LK5H6FDofRDPIGVmXjxnJ032SsuiCD3jGjCBp80MWo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318463},"main":"src/index.js","type":"module","gitHead":"0cbbcdfb2d8d227b495044d5a1e15f67fa6a055c","scripts":{"build":"chmod +x src/index.js","start":"node src/index.js"},"_npmUser":{"name":"priyankark","email":"priyankar.kumar98@gmail.com"},"_npmVersion":"10.9.2","description":"MCP server for performing accessibility audits on webpages","directories":{},"_nodeVersion":"22.14.0","dependencies":{"axe-core":"^4.10.3","puppeteer":"^24.6.0","@axe-core/puppeteer":"^4.10.1","@modelcontextprotocol/sdk":"^1.9.0","@modelcontextprotocol/create-server":"^0.3.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/a11y-mcp_1.0.2_1744115989389_0.9723010118800539","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"a11y-mcp","version":"1.0.3","keywords":["accessibility","a11y","audit","mcp","axe-core"],"author":"","license":"MPL-2.0","_id":"a11y-mcp@1.0.3","maintainers":[{"name":"priyankark","email":"priyankar.kumar98@gmail.com"}],"bin":{"a11y-mcp":"src/index.js"},"dist":{"shasum":"2a2ecb7f213a38a3db4caa1668050ab23d95102e","tarball":"https://registry.npmjs.org/a11y-mcp/-/a11y-mcp-1.0.3.tgz","fileCount":7,"integrity":"sha512-CgC5/RIbWQ5aKHquFCN8M9bvodyQrYrOw+duIWIAJBqirxlHXQ5MfyvmgzVUa37zENMi4KFoZDhkn8R2ApEARg==","signatures":[{"sig":"MEYCIQCUJXhNTkOQVV5YPbwOHthQ0IYut2AeupSXASYM/fvG6wIhAIeE2nx+5I6eJSYXqVB8JvVYsBeU1tJgiGXmhFst0xz8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318463},"main":"src/index.js","type":"module","gitHead":"dae8420d0f78b78f9298071ac9b76edc11de2b71","scripts":{"build":"chmod +x src/index.js","start":"node src/index.js"},"_npmUser":{"name":"priyankark","email":"priyankar.kumar98@gmail.com"},"_npmVersion":"10.9.2","description":"MCP server for performing accessibility audits on webpages","directories":{},"_nodeVersion":"22.14.0","dependencies":{"axe-core":"^4.10.3","puppeteer":"^24.6.0","@axe-core/puppeteer":"^4.10.1","@modelcontextprotocol/sdk":"^1.9.0","@modelcontextprotocol/create-server":"^0.3.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/a11y-mcp_1.0.3_1744116116652_0.2649681244188349","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"a11y-mcp","version":"1.0.4","keywords":["accessibility","a11y","audit","mcp","axe-core"],"author":"","license":"MPL-2.0","_id":"a11y-mcp@1.0.4","maintainers":[{"name":"priyankark","email":"priyankar.kumar98@gmail.com"}],"bin":{"a11y-mcp":"src/index.js"},"dist":{"shasum":"a3940d1ae83125e174d942ecb2a8a5b92dfbe099","tarball":"https://registry.npmjs.org/a11y-mcp/-/a11y-mcp-1.0.4.tgz","fileCount":7,"integrity":"sha512-9ESbFZQWxGRvsW2d08XDmZbQEd72cEdR11nnaKdbgEl7atnkrYk6qfcW4lxqhWEdbuEQmu5EwAHN2vuSas3lTw==","signatures":[{"sig":"MEUCIGPJn2e4BNOEVEaQ/KeWJ9ClMs4XvqgfRF1slSG9OEfaAiEAhdGUuhbtrxdQLHa5CXIHbu9shiKXZ53mjrFWsNWcMeg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318596},"main":"src/index.js","type":"module","gitHead":"9ed9e026f1a8fe3ab6e6cdf7d4b826e644c0c1b6","scripts":{"build":"chmod +x src/index.js","start":"node src/index.js"},"_npmUser":{"name":"priyankark","email":"priyankar.kumar98@gmail.com"},"_npmVersion":"10.9.2","description":"MCP server for performing accessibility audits on webpages","directories":{},"_nodeVersion":"22.14.0","dependencies":{"axe-core":"^4.10.3","puppeteer":"^24.6.0","@axe-core/puppeteer":"^4.10.1","@modelcontextprotocol/sdk":"^1.9.0","@modelcontextprotocol/create-server":"^0.3.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/a11y-mcp_1.0.4_1744116157684_0.2986287296780732","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"a11y-mcp","version":"1.0.5","keywords":["accessibility","a11y","audit","mcp","axe-core"],"author":"","license":"MPL-2.0","_id":"a11y-mcp@1.0.5","maintainers":[{"name":"priyankarkumar","email":"priyankar.kumar98@gmail.com"}],"bin":{"a11y-mcp":"src/index.js"},"dist":{"shasum":"a010a2f69461c6ea6835086cde26154cf52d52e0","tarball":"https://registry.npmjs.org/a11y-mcp/-/a11y-mcp-1.0.5.tgz","fileCount":7,"integrity":"sha512-IJEAvc0iGJ6htnYwzDVTauvV8izFtbOGohzP1scUgjwBFWmDX6eEfQHR8byKrITJpYhjqOlD0IQlWfpwbeEFfQ==","signatures":[{"sig":"MEYCIQCifiOvfBm3CBmWiEY6PfIcfp6VAji4U4bY6tKQsBBmfwIhAIlKXOlUEdxIOTMzbIoHvsV9vm3RkTDNWpu9qHv99SpT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":321287},"main":"src/index.js","type":"module","gitHead":"e3e11c9e8482bd06b82fd9fced67be4856f0dffc","scripts":{"build":"chmod +x src/index.js","start":"node src/index.js"},"_npmUser":{"name":"priyankarkumar","email":"priyankar.kumar98@gmail.com"},"_npmVersion":"10.9.2","description":"MCP server for performing accessibility audits on webpages","directories":{},"_nodeVersion":"22.14.0","dependencies":{"axe-core":"^4.10.3","puppeteer":"^24.6.0","@axe-core/puppeteer":"^4.10.1","@modelcontextprotocol/sdk":"^1.9.0","@modelcontextprotocol/create-server":"^0.3.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/a11y-mcp_1.0.5_1774192563117_0.9645165864128766","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"a11y-mcp","version":"1.0.6","keywords":["accessibility","a11y","audit","mcp","axe-core"],"author":"","license":"MPL-2.0","_id":"a11y-mcp@1.0.6","maintainers":[{"name":"priyankarkumar","email":"priyankar.kumar98@gmail.com"}],"bin":{"a11y-mcp":"src/index.js"},"dist":{"shasum":"74f5b9601cbe6f2bfc81cff8e881ce421b205e47","tarball":"https://registry.npmjs.org/a11y-mcp/-/a11y-mcp-1.0.6.tgz","fileCount":7,"integrity":"sha512-0SEbJW6PtQGoPM+WHdCn4jdsuPo9r71ut4b/VmHZAzurvwnIpPgSAXRFFOEcbHHAMWta8K5/1kz4K/aRqJ0B5A==","signatures":[{"sig":"MEYCIQC2H3gYPC62UvQ+yxC4MyAwm//cEZs/Y8tpYyJMgrRGDAIhAIhJQXmRcwPvX07PK+8/M+o4uUDyzaMNIqGOuyHBgiEy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":322336},"main":"src/index.js","type":"module","gitHead":"b28a26f84f8a8c3a379544404a5335f35101fc3e","scripts":{"build":"chmod +x src/index.js","start":"node src/index.js"},"_npmUser":{"name":"priyankarkumar","email":"priyankar.kumar98@gmail.com"},"_npmVersion":"10.9.2","description":"MCP server for performing accessibility audits on webpages","directories":{},"_nodeVersion":"22.14.0","dependencies":{"axe-core":"^4.11.1","puppeteer":"^24.40.0","@axe-core/puppeteer":"^4.11.1","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/a11y-mcp_1.0.6_1774193074355_0.6486943911374581","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"a11y-mcp","version":"1.1.0","keywords":["accessibility","a11y","audit","mcp","axe-core"],"author":"","license":"MPL-2.0","_id":"a11y-mcp@1.1.0","maintainers":[{"name":"priyankarkumar","email":"priyankar.kumar98@gmail.com"}],"homepage":"https://github.com/priyankark/a11y-mcp#readme","bugs":{"url":"https://github.com/priyankark/a11y-mcp/issues"},"bin":{"a11y-mcp":"src/index.js"},"dist":{"shasum":"93ae5997262cce57ed740bad8d8a1d257106b245","tarball":"https://registry.npmjs.org/a11y-mcp/-/a11y-mcp-1.1.0.tgz","fileCount":12,"integrity":"sha512-x0qlF4NCFb5g1rbEmlT+mBkGDpAu58BfMeZLGIYwjxqLXUrxzhZZkzx5pJ7QPzR2qWxVwIrkjTYvu/oVt/2QXg==","signatures":[{"sig":"MEQCIE5G5ZfQ6YkwDr+V5qpCYcCUxyBSWz9QS/hPO2QitduaAiBPhBlfcY22eqMuXZ1z4aEqnvSujysR2FBT4ne5sVkHzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":333812},"main":"src/index.js","type":"module","_from":"file:/tmp/a11y-mcp-1.1.0.tgz","engines":{"node":">=22.12.0"},"scripts":{"test":"node --test test/*.test.mjs","build":"chmod +x src/index.js","start":"node src/index.js","test:smoke":"node test/smoke.mjs","prepublishOnly":"npm test"},"_npmUser":{"name":"priyankarkumar","email":"priyankar.kumar98@gmail.com"},"_resolved":"/tmp/a11y-mcp-1.1.0.tgz","_integrity":"sha512-x0qlF4NCFb5g1rbEmlT+mBkGDpAu58BfMeZLGIYwjxqLXUrxzhZZkzx5pJ7QPzR2qWxVwIrkjTYvu/oVt/2QXg==","repository":{"url":"git+https://github.com/priyankark/a11y-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"MCP server for performing accessibility audits on webpages","directories":{},"_nodeVersion":"23.11.0","dependencies":{"axe-core":"^4.13.0","ipaddr.js":"^2.5.0","puppeteer":"^25.10.0","@axe-core/puppeteer":"^4.13.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/a11y-mcp_1.1.0_1789340686314_0.6694010784252589","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"_id":"a11y-mcp@1.1.1","bin":{"a11y-mcp":"src/index.js"},"bugs":{"url":"https://github.com/priyankark/a11y-mcp/issues"},"dist":{"shasum":"dad23cc12f4f39fb231c7c1318092a425d257382","tarball":"https://registry.npmjs.org/a11y-mcp/-/a11y-mcp-1.1.1.tgz","fileCount":5,"integrity":"sha512-axEeZAqp9g4JXF/KEAGMsa7HKcT///0X4F87jymdt3O5joB/QiAPWzRvtvCImveZuT77eef2QL5XxeRxSPu0dw==","signatures":[{"sig":"MEYCIQCVAj8REYzARObCl1KcZNkg5LdmSP1L4EjFQHZet62yNgIhAKpwuR1wePR7oUJbgxouCeWBd69MeL6pc/Wu4git9/nP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEYbPi6lL3LrIDVW+Vb6Ji8HFKYWOYySl8mfebxuMnEdAiEA6NOVW/1it0E7e3ZKs9DuEj9f2kwFSqYBZKEHJzAMJhs="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/a11y-mcp@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":39639},"main":"src/index.js","name":"a11y-mcp","type":"module","author":"","engines":{"node":">=22.12.0"},"gitHead":"014b1d87da857845cd0e5e715919fadf1d46be5e","license":"MPL-2.0","scripts":{"test":"node --test test/*.test.mjs","build":"chmod +x src/index.js","start":"node src/index.js","test:smoke":"node test/smoke.mjs","test:package":"node .github/scripts/check-package.mjs","prepublishOnly":"npm test"},"version":"1.1.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"266c2a6b-6f21-4c18-bbe4-82b92909904c"}},"homepage":"https://github.com/priyankark/a11y-mcp#readme","keywords":["accessibility","a11y","audit","mcp","axe-core"],"repository":{"url":"git+https://github.com/priyankark/a11y-mcp.git","type":"git"},"_npmVersion":"11.21.1","description":"MCP server for performing accessibility audits on webpages","directories":{},"maintainers":[{"name":"priyankarkumar","email":"priyankar.kumar98@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"axe-core":"^4.14.0","ipaddr.js":"^2.5.0","puppeteer":"^25.16.0","@axe-core/puppeteer":"^4.14.0","@modelcontextprotocol/sdk":"^1.32.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/a11y-mcp_1.1.1_1793038707871_0.9265513415120883"}}},"time":{"created":"2025-04-08T12:29:05.841Z","modified":"2026-10-26T18:18:28.520Z","1.0.1":"2025-04-08T12:29:06.024Z","1.0.2":"2025-04-08T12:39:49.656Z","1.0.3":"2025-04-08T12:41:56.908Z","1.0.4":"2025-04-08T12:42:37.933Z","1.0.5":"2026-03-22T15:16:03.276Z","1.0.6":"2026-03-22T15:24:34.526Z","1.1.0":"2026-09-13T23:04:46.469Z","1.1.1":"2026-10-26T18:18:27.962Z"},"bugs":{"url":"https://github.com/priyankark/a11y-mcp/issues"},"license":"MPL-2.0","homepage":"https://github.com/priyankark/a11y-mcp#readme","keywords":["accessibility","a11y","audit","mcp","axe-core"],"repository":{"url":"git+https://github.com/priyankark/a11y-mcp.git","type":"git"},"description":"MCP server for performing accessibility audits on webpages","maintainers":[{"name":"priyankarkumar","email":"priyankar.kumar98@gmail.com"}],"readme":"# A11y MCP Server\n\nAn MCP (Model Context Protocol) server for performing accessibility audits on webpages using axe-core. Use the results in an agentic loop with your favorite AI assistants (Cline/Cursor/GH Copilot) and let them fix a11y issues for you!\n\n<a href=\"https://glama.ai/mcp/servers/@priyankark/a11y-mcp\">\n  <img width=\"380\" height=\"200\" src=\"https://glama.ai/mcp/servers/@priyankark/a11y-mcp/badge\" alt=\"a11y-mcp MCP server\" />\n</a>\n\n## Features\n\n- Perform detailed accessibility audits on any webpage\n- Get a summary of accessibility issues\n- Filter audits by specific WCAG criteria\n- Include HTML snippets in the results for easier debugging\n\n## Installation\n\n```bash\n# Install globally\nnpm install -g a11y-mcp\n\n# Or use directly with npx\nnpx a11y-mcp\n```\n\n## Configuration\n\nTo use this MCP server with Cline, you need to add it to your MCP settings configuration file.\n\n### MCP configuration \n\nAdd the following to the `mcpServers` object:\n\n```json\n{\n  \"mcpServers\": {\n    \"a11y\": {\n      \"command\": \"npx\",\n      \"args\": [\"a11y-mcp\"],\n      \"disabled\": false,\n      \"autoApprove\": []\n    }\n  }\n}\n```\n\n## Available Tools\n\n### audit_webpage\n\nPerforms a detailed accessibility audit on a webpage.\n\n**Parameters:**\n- `url` (required): URL of the webpage to audit\n- `includeHtml` (optional): Whether to include HTML snippets in the results (default: false)\n- `tags` (optional): Array of specific accessibility tags to check (e.g., wcag2a, wcag2aa, wcag21a, best-practice)\n\n**Example:**\n```\nUse the a11y MCP server to audit example.com for accessibility issues\n```\n\n### get_summary\n\nGets a summary of accessibility issues for a webpage.\n\n**Parameters:**\n- `url` (required): URL of the webpage to audit\n\n**Example:**\n```\nGive me an accessibility summary of example.com\n```\n\n## Example Usage\n\nOnce configured, you can ask Claude to use the MCP server to perform accessibility audits:\n\n1. \"Can you check example.com for accessibility issues?\"\n2. \"Audit my website at https://mywebsite.com for WCAG 2.1 AA compliance\"\n3. \"Give me a summary of accessibility issues on https://example.com\"\n4. \"Check if my local development server at http://localhost:3000 has any critical accessibility problems\"\n\n## Development\n\nTo run the server locally for development:\n\n```bash\nnpm start\n```\n\n## Releasing\n\nThis project includes a release script to help with versioning and publishing to npm. The script handles version bumping, running tests, git tagging, and npm publishing.\n\nTo release a new version:\n\n```bash\n# Make sure the script is executable\nchmod +x release.sh\n\n# Release a patch version (default)\n./release.sh\n\n# Release a minor version\n./release.sh --minor\n\n# Release a major version\n./release.sh --major\n\n# Release a specific version\n./release.sh --version=1.2.3\n\n# Skip git operations\n./release.sh --skip-git\n\n# Dry run (no changes will be made)\n./release.sh --dry-run\n\n# Force release even with uncommitted changes\n./release.sh --force\n```\n\nFor more information, run:\n\n```bash\n./release.sh --help\n```\n\n## License\nMPL 2.0\n\n## Credits\nThis project builds atop the awesome work done by [axe-core](https://github.com/dequelabs/axe-core)\n\n## Security and hosting\n\nRequires Node.js 22.12 or newer. Chrome runs with its sandbox enabled.\nEvery HTTP(S) connection, including redirects and subresources, goes through a\nvalidating proxy that pins the destination IP. Private, link-local, multicast,\nreserved, and cloud metadata addresses are blocked, including mapped IPv6.\nLoopback remains available for local development; set `AUDIT_ALLOW_LOOPBACK=false`\nfor public-only audits. LAN addresses are no longer supported.\nOne audit runs per MCP process, with a 90-second browser deadline.\nFor hosted use, additionally isolate browser workers and enforce network egress\nrestrictions at the infrastructure layer. Automated axe checks do not establish\nWCAG conformance; manual review is still required.\n\nRun `npm test`, `npm run test:smoke` (requires Chrome), and `npm audit`.\n\n\n## Maintainer CI and releases\n\nGitHub Actions runs the build, network and release-policy tests, npm security audit, and real Chrome smoke tests on the minimum supported Node version and Node 24. Node 24 also installs the npm tarball in a clean temporary project and checks its executable, dependencies, MCP version, and browser audits.\n\nEvery push to `main` runs the release pipeline. When package files change, it automatically increments the patch version (or honors a larger version already committed), synchronizes package metadata, repeats validation, commits and tags the release, publishes to npm with provenance, and creates a GitHub release. Changes limited to documentation, tests, or workflows do not publish a new version. Runtime server versions come from `package.json`.\n\nDependabot checks npm and GitHub Actions weekly. A successful PR CI run automatically merges npm updates only when all existing changed dependencies are stable patch/minor upgrades and only `package.json` / `package-lock.json` changed. Major upgrades, 0.x minor upgrades, downgrades, prereleases, and GitHub Actions changes require review. The merge job runs only trusted code from `main`, verifies the tested PR head, and explicitly dispatches publishing after a bot merge.\n\nnpm publishing uses the `npm` GitHub environment and an npm trusted publisher for `priyankark/a11y-mcp`, workflow `publish.yml`, environment `npm`, with direct publishing allowed. No npm token is stored in GitHub. The environment accepts deployments only from `main`.\n\nTo retry a failed release, rerun the **Publish** workflow or run `./release.sh`. The pipeline reuses an unpublished version and skips an already published, unchanged package. If a reserved release tag points to different code, it stops rather than overwriting that version. For a breaking change, update `package.json` and `package-lock.json` to the intended major/minor version in the reviewed PR before merging.\n","readmeFilename":"README.md"}