Scan any URL
scan_url Local dev servers, staging, production or a file on disk.
- Focus on one component with a CSS selector
- Wait for client-rendered content
- Desktop and mobile viewports
- Optional screenshot of the scanned area
New in Agora · MCP server
Agora’s built-in MCP server gives Claude Code, Cursor, GitHub Copilot and any other MCP-capable agent a real accessibility testing tool. Your agent scans the page it just built, sees exactly what fails and why, fixes the code and scans again to prove it - before the pull request even exists.
Animated example of a coding session: a developer asks their AI agent to check localhost:3000/checkout for accessibility issues and fix them. The agent calls Agora’s scan_url tool and gets a score of 58 out of 100 with four issues: a button without a name, an image without alternative text, low-contrast text and an unlabelled input. It fixes the code in three files, scans again and reaches 100 out of 100.
Works with
The gap in AI-written UI
Coding agents learned from the web, and most of the web is inaccessible: icon-only buttons, missing labels, low-contrast text. Without a way to test, your agent cannot tell whether the component it just generated works for a keyboard or screen reader user. Now it can check, with the same engine your accessibility team already trusts.
Set up in a minute
The MCP server starts together with Agora and only listens on your computer. The AI Agents page shows its status and the address to use.
Copy one command or config snippet from Agora, or use one-click install for Cursor and VS Code.
“Scan localhost:3000 and fix what you find.” Your agent calls Agora, applies the fixes and verifies them.
Inside a tool call
No vague scores. Agora returns every violation with its WCAG criterion, the exact element, its HTML and a concrete fix, in a format an agent can act on immediately.
Agent → Agora
{ "method": "tools/call", "params": { "name": "scan_url", "arguments": { "url": "localhost:3000/checkout", "selector": "#payment-form", "viewports": ["desktop", "mobile"] } }} Agora → agent
http://localhost:3000/checkout
3 issues · 5 elements · WCAG 2.2 AA
button-name WCAG 4.1.2 Buttons must have discernible text
button.pay-apple
<button class="pay-apple"><svg …/></button> How to fix: Element does not have inner text that is visible to screen readers; aria-label attribute does not exist or is empty
label WCAG 4.1.2 Form elements must have labels
#card-cvc
<input id="card-cvc" placeholder="CVC"> How to fix: Element does not have an explicit <label>; aria-label attribute does not exist or is empty
color-contrast WCAG 1.4.3 Elements must meet minimum color contrast ratio thresholds
.total__hint
<p class="total__hint">Taxes included</p> How to fix: Element has insufficient color contrast of 2.9 (foreground color: #a3a3a3, background color: #ffffff). Expected contrast ratio of 4.5:1
Agent → Agora
{ "method": "tools/call", "params": { "name": "scan_html", "arguments": { "html": "<nav class=\"tabs\">…</nav>", "baseUrl": "http://localhost:3000/", "mode": "component" } }} Agora → agent
HTML component (2.4 KB)
3 issues · 4 elements · WCAG 2.2 AA
aria-required-children WCAG 1.3.1 Certain ARIA roles must contain particular children
nav.tabs > ul[role="tablist"]
<ul role="tablist">…</ul> How to fix: Element has children which are not allowed: li[tabindex]
aria-valid-attr-value WCAG 4.1.2 ARIA attributes must conform to valid values
#tab-billing
<a id="tab-billing" aria-controls="billing"> How to fix: Invalid ARIA attribute value: aria-controls="billing"
heading-order Best Practice Heading levels should only increase by one
.panel > h4
<h4>Billing address</h4> How to fix: Heading order invalid
Four tools, every workflow
scan_url Local dev servers, staging, production or a file on disk.
scan_html Audit a component before it is wired into a page, with no server needed.
validate_attributes Scanners find missing names. This checks whether the names that are there actually make sense.
simulate_screen_reader Hear a page or component the way blind users do, straight from Chrome’s accessibility tree.
Accessible by default
Instead of a separate audit weeks later, testing happens inside the same loop your agent already runs for types, tests and linting.
Build
Your agent writes or changes UI.
Scan
It calls Agora on the page or component.
Fix
It applies the fixes Agora points to.
Verify
It scans again until the issues are gone.
Why teams choose it
The server only accepts connections from your own machine, and pages are rendered and scanned locally inside Agora.
axe-core with WCAG 2.0, 2.1 and 2.2 A and AA rules, plus optional AAA checks: the same rules as every other Agora scan.
Pages render in Chrome, so styles, scripts and client-side rendering are all part of the test.
Dev servers with self-signed certificates, file:// paths and pages behind basic auth you saved in Agora all just work.
A shared, warm browser keeps scans quick, so your agent can check after every change.
Claude Code, Cursor, VS Code with GitHub Copilot, Windsurf, Claude Desktop, Codex CLI and Gemini CLI, with setup steps for each inside Agora.
Start a free trial of Agora, connect your coding agent in a minute and watch it fix accessibility issues before they reach code review.