npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

axle-mcp

v0.1.0

Published

MCP (Model Context Protocol) server — exposes the axle WCAG 2.2 AA scanner as a tool for Claude Desktop, Cursor, Cline, and any MCP-compatible agent.

Readme

axle-mcp

WCAG 2.2 AA / ADA / EAA accessibility scanner as an MCP (Model Context Protocol) server. Lets Claude Desktop, Cursor, Cline, Continue, and any MCP-compatible agent scan websites for accessibility violations.

Same engine (axe-core 4.11) and same persistence layer that powers the axle GitHub Action and the hosted scanner.

What this gives your agent

Two tools:

| Tool | What it does | |---|---| | scan_url | Runs axe-core 4.11 against a public URL in headless Chromium and returns violations grouped by severity, plus a public shareable certificate URL at /r/<id>. | | explain_violation | Given an axe-core rule ID (e.g. color-contrast), returns the WCAG criteria mapping, ADA / EAA implications, and remediation patterns. |

Install

npm install -g axle-mcp

Or use without installing — npx axle-mcp works in MCP command configs.

Configure

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

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

Restart Claude Desktop. You should see a 🔨 icon in the message composer; click it and axle.scan_url will be available.

Cursor

Settings → Features → Model Context Protocol → Add server:

Command: npx -y axle-mcp

Cline (VS Code extension)

Settings → MCP Servers → Add:

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

Continue.dev

In ~/.continue/config.json:

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

Usage examples

In any MCP-connected chat, just ask:

Is https://example.com ADA compliant?

Scan https://stripe.com/pricing for WCAG 2.2 AA violations.

Audit my staging site at https://staging.acme.com and explain the top 3 issues.

The agent will call scan_url, get the structured violation report, summarize by severity, and link to the /r/<id> shareable certificate URL.

Removing the rate limit

The free tier is 5 scans / day per IP. To remove the limit, get an API key from https://axle-iota.vercel.app/pricing and add it to the env:

{
  "mcpServers": {
    "axle": {
      "command": "npx",
      "args": ["-y", "axle-mcp"],
      "env": {
        "AXLE_API_KEY": "sk_axle_..."
      }
    }
  }
}

Privacy & data flow

When the agent calls scan_url, the URL you pass is sent to https://axle-iota.vercel.app/api/scan. The axle hosted scanner loads that URL in headless Chromium and runs axe-core 4.11 against it. The scan result (violations, passes, the page title) is persisted to the axle KV store with a public /r/<id> permalink so you can share it; the scan input (your URL) is logged for rate-limiting and abuse prevention but is not exposed publicly.

If you don't want the public permalink, scan locally with the axle CLI instead — it runs entirely on your machine.

Why use axle vs the existing axe-core MCP servers?

  • Same engine as the GitHub Action — what you see in chat is exactly what the CI will block on PR.
  • Public shareable certificate URLs/r/<id> is a permanent public report you can paste into a Jira ticket, a sales-engineering doc, or an EAA conformance bundle.
  • No local Chromium — runs against the hosted scanner, so it works even when you don't have Playwright / Chromium installed.
  • Local-first option — if you do want fully local scanning, swap to axle-cli (same project, same engine, no network calls).

Honest scope

axe-core (and therefore this server) catches roughly 57% of WCAG issues automatically. The other 43% require manual review by a qualified human auditor. Treat the output as a high-recall first pass, not a conformance certificate.

License

MIT