# A11yScope (npm · a11yscope-mcp)

WCAG 2.2 AA accessibility checks for pages and HTML, run locally in headless Chrome.

- Trust score: 68/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- npm · `a11yscope-mcp`: 68/100 (this document), [markdown](https://verifymcp.io/servers/perceivable-a11yscope/a11yscope-mcp.md), [page](https://verifymcp.io/servers/perceivable-a11yscope/a11yscope-mcp)

## Channel facts

- Registry: `npm`
- Package: `a11yscope-mcp`
- Version: `0.3.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 81/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available.
  - No install/post-install scripts declared.
  - 49 of 168 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 32/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Licence could not be checked: the licence is shipped as a file inside the package, not declared as a standard (SPDX) licence identifier, so we cannot tell whether it is OSI-approved.
  - Actively maintained (last published 21 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 57/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 650 tokens (~216/item across 3 items; 3 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 70/100
  - Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 90/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 71% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 3 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 4 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the A11yScope MCP server?

A11yScope runs locally as an npm package, launched with npx -y a11yscope-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add perceivable-a11yscope -- npx -y a11yscope-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "perceivable-a11yscope": {
      "command": "npx",
      "args": [
        "-y",
        "a11yscope-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "perceivable-a11yscope": {
      "command": "npx",
      "args": [
        "-y",
        "a11yscope-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add perceivable-a11yscope -- npx -y a11yscope-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "perceivable-a11yscope": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "a11yscope-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add perceivable-a11yscope --command npx --arg -y --arg a11yscope-mcp
```

### Hermes

```yaml
mcp_servers:
  perceivable-a11yscope:
    command: "npx"
    args: ["-y", "a11yscope-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "perceivable-a11yscope": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "a11yscope-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add perceivable-a11yscope -t stdio -c npx -a -y a11yscope-mcp
```

### Other

```json
{
  "mcpServers": {
    "perceivable-a11yscope": {
      "command": "npx",
      "args": [
        "-y",
        "a11yscope-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-29 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-27 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-25 (score 63, +1)

No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-24 (score 62, −3)

- [security regression] CVE-2023-54404 affects this package: high
- [security] Known CVEs: CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available.

### 2026-10-23 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (3)

### `scan_page` (~189 tokens)

Scan a page for WCAG 2.2 AA issues

Loads a URL (http/https) or a local HTML file path in headless Chrome, runs the A11yScope engine, and returns violations grouped by rule with CSS selectors and HTML snippets. Needs the page to be reachable from this machine.

Input parameters:

- `include_passed` (boolean): Also list rules with zero findings, each with status passed or inapplicable and its checked count.
- `include_review` (boolean): Also return items that need a human decision (not failures).
- `max_findings_per_rule` (integer): Cap on findings returned per rule.
- `url` (string, required): http(s) URL, file:// URL, or a path to an HTML file (relative to the server's working directory).
- `viewport_height` (integer)
- `viewport_width` (integer)
- `wait_ms` (integer): Extra time to wait after load, for pages that render late.

### `scan_html` (~183 tokens)

Scan an HTML string for WCAG 2.2 AA issues

Renders the given HTML in headless Chrome and scans it. Use this for markup you generated or are about to write. Pass base_url when the HTML references relative stylesheets or images that live on a server you can reach; otherwise inline the CSS, since contrast checks depend on computed styles.

Input parameters:

- `base_url` (string): Origin to resolve relative URLs against; the HTML is served at this address.
- `html` (string, required): A complete HTML document or a fragment.
- `include_passed` (boolean): Also list rules with zero findings, each with status passed or inapplicable and its checked count.
- `include_review` (boolean): Also return items that need a human decision (not failures).
- `max_findings_per_rule` (integer): Cap on findings returned per rule.
- `viewport_height` (integer)
- `viewport_width` (integer)

### `list_rules` (~40 tokens)

List the accessibility checks

The 31 checks A11yScope runs, each with its WCAG 2.2 success criteria, level, impact, and how to fix it.

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/perceivable-a11yscope/a11yscope-mcp#diagnostics

## Score history

- 2026-11-05: 68
- 2026-11-04: 68
- 2026-11-03: 67
- 2026-11-02: 67
- 2026-11-01: 66
- 2026-10-31: 66
- 2026-10-30: 65
- 2026-10-29: 65
- 2026-10-28: 64
- 2026-10-27: 64
- 2026-10-26: 63
- 2026-10-25: 63
- 2026-10-24: 62
- 2026-10-23: 65
- 2026-10-22: 64
- 2026-10-21: 61
- 2026-10-20: 61
- 2026-10-19: 61
- 2026-10-18: 61
- 2026-10-17: 61
- 2026-10-16: 61
- 2026-10-15: 61
- 2026-10-14: 25
- 2026-10-13: 33
- 2026-10-12: 33

## Common questions

### What is the A11yScope MCP server?

A11yScope is an MCP server listed in the public MCP registry as io.github.perceivable/a11yscope. WCAG 2.2 AA accessibility checks for pages and HTML, run locally in headless Chrome. This page covers its npm package (a11yscope-mcp).

### Is the A11yScope MCP server safe to use?

A11yScope scores 68 out of 100 on VerifyMCP. We recorded 4 known advisories against it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the A11yScope MCP server expose?

A11yScope exposes 3 tools: scan_page, scan_html, list_rules. Their descriptions and schemas cost roughly 412 tokens of context every time the server is loaded.

### Is the A11yScope MCP server still maintained?

A11yScope is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- npm package: https://www.npmjs.com/package/a11yscope-mcp
- Socket report: https://socket.dev/npm/package/a11yscope-mcp
- Repository: https://github.com/perceivable/a11yscope
- Website: https://perceivable.github.io/
- Changelog RSS feed: https://verifymcp.io/servers/perceivable-a11yscope/a11yscope-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/perceivable-a11yscope/a11yscope-mcp.json
- HTML version of this page: https://verifymcp.io/servers/perceivable-a11yscope/a11yscope-mcp
