Open tool · MCP

Audit a PDF without sending it anywhere.

A free, local-first accessibility auditor for Claude, Cursor and other MCP clients. It reads the PDF’s real structure, returns cited findings, and writes a report you can send to a reviewer.

  • 42 automated checks
  • 10 manual checks
  • MIT licensed
  • 0 uploads

No account, no API key, no model call. The document stays on your machine.

The HTML accessibility report showing a 55 out of 100 score, two critical and two serious findings, and a ‘What to fix first’ section with remediation guidance.
The self-contained HTML report. Open the image for the full-size view.

What it finds

The defects that make a PDF fail in practice.

The audit checks the PDF object model, not a screenshot. Findings carry a rule ID, severity, standards mapping, evidence where available and a concrete remediation step.

Structure

Tags, headings and order

Tagged status, marked content, parent tree, role maps, heading sequence, orphaned MCIDs and reading-order mismatches.

Tables and forms

Relationships that announce

Table headers, Scope/Headers, empty cells, field names, tooltips, duplicate names and tab order.

Text and pages

Scans, fonts and language

Image-only pages, sparse text, embedded fonts, ToUnicode, document language, display title and metadata.

Evidence

A finding a reviewer can use

Each finding carries a rule ID, severity, standards reference, the page and element when they apply, the evidence the parser saw, and a concrete fix. No mystery score.

Report

Self-contained HTML

One file with no external fonts, scripts or tracking. Print-friendly, responsive and accessible in light and dark modes.

MCP

Built for an agent

Audit one file, audit a folder, explain a rule, list checks, compare reports and render HTML — all local tools.

MCP in the loop

The agent calls a tool. The document never leaves the machine.

Ask an MCP client to audit a PDF. The server returns the findings and, when asked, writes a self-contained HTML report. No upload, no provider account, no model spend.

A terminal showing an MCP audit_pdf call and the start of its Markdown report: status fail, score 55 out of 100, 39 pages, two critical and two serious findings, no language and no tags.
Actual output from the example MCP client against a 39-page public report, trimmed to the first 30 lines. Open the image for the full-size view.

The report

Readable by a person. Useful to a reviewer.

The score is a summary, not the product. The report leads with the highest-impact fixes, shows the evidence, and lists the manual checks that still need a human and a screen reader.

  • Severity counts and a document score
  • “What to fix first” with remediation steps
  • Every automated check, including skipped ones
  • Manual checklist and explicit limitations
  • Embedded JSON for your own pipeline

What the reviewer sees

55

out of 100 · 2 critical · 2 serious

  • “What to fix first”
  • Evidence and remediation
  • Manual checks and limits

Install

Run it locally in a minute.

From source

git clone https://github.com/Veduis/pdf-a11y-audit.git
cd pdf-a11y-audit
npm install

node bin/cli.js ./2024-annual-report.pdf \
  --format html --out report.html

The npm package is pending release. The source install is available now.

MCP client

{
  "mcpServers": {
    "pdf-a11y-audit": {
      "command": "node",
      "args": ["/absolute/path/to/pdf-a11y-audit/bin/mcp.js"]
    }
  }
}

Works with any MCP client that supports stdio servers. The server never opens a network connection.

The honest boundary

It is an audit, not a certificate.

Automated rules cannot judge colour contrast, alt-text quality, OCR accuracy or whether the reading order makes sense to a person. The report says so and lists the manual checks. Do not publish a conformance claim just because the score passes.

Free by design

No hosted service, no per-document fee, no inference bill, no account. The package is MIT licensed and runs on your machine.

Evidence over theatre

No “AI-powered” score. Each finding is tied to a rule and a standard, with the page when it applies and a fix that a document author can act on.

Need the whole site covered?

Remediate hosts, remediates and maintains the reader.

Use the local audit to find the work. Use Remediate when you want the transcript, tables, translation, embeds and accessibility requests handled for every published PDF.

Talk to our team