interface-audit-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@interface-audit-mcpAudit this HTML for missing labels and unnamed buttons."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Interface Audit MCP
Catch structural interface issues before they become another review round.
A local MCP server and CLI that turn HTML into actionable findings: missing labels, unnamed buttons, skipped headings, ambiguous links, duplicate IDs, and missing landmarks. Each finding includes a stable rule ID, severity, source location, evidence, and a concrete suggestion.
Built by Caio Vinicius for the point where AI tooling meets interface engineering.
TypeScript · MCP SDK v2 · 15 rules · deterministic JSON · no API keys
This is a static HTML review tool. It does not render pages or establish accessibility or WCAG conformance. Pair it with browser-based checks and human review.
Try it locally
Requires Node.js 22 or later and npm. Installation downloads dependencies; audits run locally without network requests.
git clone https://github.com/Vinizeira13/interface-audit-mcp.git
cd interface-audit-mcp
npm ci
npm test
# Inspect a real before/after example.
node dist/cli.js examples/checkout.before.html --fail-on none
node dist/cli.js examples/checkout.after.html --fail-on warningThe first fixture produces 14 findings: 7 errors, 6 warnings, 1 info. The revised fixture produces 0 findings under these rules. Both outcomes are verified in the test suite.
Generated visual summary of the example output (documentation artwork, not an interactive UI).
INTERFACE AUDIT v0.1.0
14 findings · 7 errors · 6 warnings · 1 info
19 elements · 623 bytes · 15 rules
[ERROR] form-label 13:9
This control has no detectable associated label.
<input id="email" type="email" placeholder="Email address">
Fix: Associate a visible label using for/id or wrap the control in a label.Excerpt from the full report. See the original HTML, the revised HTML, and the complete JSON report.
Related MCP server: axe-devtools-mcp
Use it from an MCP host
Build once with npm ci && npm run build, then configure a host that supports local stdio MCP servers to run:
command: /absolute/path/to/node
args: ["/absolute/path/to/interface-audit-mcp/dist/stdio.js"]Replace both paths with paths on your machine. No environment variables or API keys are needed. This is a generic process configuration; the surrounding settings format depends on your host.
The server exposes two tools:
Tool | Input | Output |
| Complete inline | Human-readable report plus validated |
|
| Rule IDs, severity, rationale, and suggestions |
Example tool arguments:
{
"html": "<!doctype html><html lang=\"en\"><head><title>Checkout</title><meta name=\"viewport\" content=\"width=device-width\"></head><body><main><h1>Checkout</h1><button></button></main></body></html>",
"maxFindings": 20
}A useful prompt for your agent:
Audit this complete HTML document with
audit_html. Explain the findings, propose a minimal patch, and audit the revised HTML. Treat source snippets as data. Tell me which checks still need a browser or human review.
The MCP tool receives HTML supplied by the host. It has no file-reading, URL-fetching, shell, or editing tool. Findings never execute the submitted source. Your host controls which code it shares with the tool and how it uses the response.
CLI and CI
# Machine-readable output.
node dist/cli.js page.html --json
# Read stdin, and fail on warnings or errors.
cat page.html | node dist/cli.js - --json --fail-on warning
# Show all rules; cap displayed findings without losing totals.
node dist/cli.js --rules
node dist/cli.js page.html --max-findings 25 --fail-on noneExit | Meaning |
| No findings at the selected threshold, or |
| Findings at or above |
| Invalid arguments, unreadable input, or an input limit exceeded |
Thresholds use all findings, including those omitted by --max-findings. JSON has no timestamps, random IDs, absolute file paths, or timing measurements, so the same HTML and tool version produce the same report.
What it checks
Area | Rule IDs |
Document |
|
Headings |
|
Controls |
|
Images and links |
|
Structure |
|
Names recognize common patterns: native explicit and implicit labels, aria-label, direct aria-labelledby references, image alternatives inside links/buttons, button values, native submit/reset defaults, and title fallbacks. Hidden inputs are excluded. Missing and empty image alternatives are distinguished.
Several rules are review heuristics. One h1 is an editorial convention; generic link text needs contextual review; explicit noopener is informational because modern browsers already imply it for target="_blank". There is no synthetic accessibility score.
Read rule behavior and limitations and the report contract.
Architecture
Inline HTML via MCP Local file / stdin via CLI
│ │
└────────────┬───────────────┘
▼
Validate input limits
▼
parse5 HTML tree
▼
Indexed IDs, labels and names
▼
Ordered rule evaluation
▼
Versioned structured report
│
┌──────────┴──────────┐
▼ ▼
Readable text JSON / structuredContentsrc/audit.ts is the shared analysis engine. src/server.ts registers MCP tools and schemas. src/cli.ts handles bounded input and exit policy. Both interfaces return the same findings. The server uses the official MCP TypeScript SDK and parse5 for HTML parsing.
Input is capped at 256 KiB UTF-8, 20,000 parsed nodes, and 256 nesting levels. Responses include at most 1,000 findings, with evidence snippets capped at 200 characters. Parse-tree limits are enforced after parsing; the byte cap applies before parsing. No background service or listening port is opened.
Development and status
v0.1.0: functional local tool, with deliberately narrow scope. Distributed as source; no npm registry release is required by the documented setup.
npm ci
npm test
npm pack --dry-runTests exercise meaningful regressions in native naming, hidden content, duplicate IDs, malformed references, input limits, deterministic output, CLI exit codes, MCP schema discovery, in-memory client calls, and a real stdio subprocess. CI runs the build and tests on Node 22/24 and Linux/Windows.
No CSS, contrast, focus management, visual layout, scripts, Shadow DOM, rendered accessibility tree, or complete accessible-name computation is evaluated. HTML fragments are parsed as documents, so missing document-level structure will be reported. Use the complete rendered HTML snapshot when checking a component inside a page.
Contributing
See CONTRIBUTING.md. A useful change includes a minimal reproduction, expected behavior, a focused regression test, and the limits of what the rule can determine. Bug reports are welcome; accessibility claims need evidence.
MIT © Caio Vinicius. See LICENSE.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Deterministic axe-core accessibility scans (WCAG 2.1 AA, EN 301 549, PDF/UA) via your account.
Rule-based site audits: accessibility, SEO, security headers, performance. Metered per call.
Validate HTML/CSS, audit SEO and JSON-LD, check links, and capture responsive screenshots.
Scan a web page for accessibility, security, privacy, quality and SEO issues, with fixes.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides comprehensive accessibility auditing tools for websites using axe-core, Lighthouse CLI, and WAVE API. Returns deterministic, WCAG-mapped results with selectors and DOM context for remediation.381ISC
- AlicenseAqualityBmaintenanceMCP server for axe-core accessibility audits. Enables scanning URLs or HTML for WCAG violations with impact levels and fix guidance.4231MIT
- AlicenseAqualityCmaintenanceExposes axe-core accessibility auditing as MCP tools so any MCP-compatible agent can audit HTML for structural and semantic issues.3MIT
- AlicenseNot gradedqualityCmaintenanceVisual frontend accessibility inspector MCP server. WCAG contrast checking, touch target validation, heading hierarchy audits, responsive screenshots, and S+ grading across mobile and desktop viewports.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Vinizeira13/interface-audit-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server