RatedWithAI accessibility checker
Scan a live web page for WCAG 2.1/2.2 AA issues with axe-core: score, grade, failing rules.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"accessibility-checker": {
"url": "https://ratedwithai.com/api/mcp"
}
}
}Remote endpoints
https://ratedwithai.com/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (2)
🟢scan_accessibility(url)
Use this when the user wants a public website or web page checked for accessibility (WCAG 2.1/2.2 AA, ADA, EAA, Section 508): it loads the live page in a real browser, runs axe-core on it and up to two more same-site pages, and returns a 0-100 score, a letter grade and the failing rules with example elements. Takes 15-40 seconds. Do not use it for pages that need a login, for localhost or private-network addresses, or for pasted HTML.
Input Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Public website address, e.g. example.com or https://example.com/about"
}
},
"required": [
"url"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The URL that was scanned, after normalisation."
},
"score": {
"type": "number",
"description": "0-100, weighted by violation severity."
},
"grade": {
"type": "string",
"enum": [
"A",
"B",
"C",
"D",
"F"
]
},
"pagesScanned": {
"type": "integer"
},
"failingRuleCount": {
"type": "integer"
},
"affectedElementCount": {
"type": "integer"
},
"needsReviewCount": {
"type": "integer",
"description": "Checks axe could not decide automatically; a human must confirm them."
},
"rulesOmitted": {
"type": "integer",
"description": "Failing rules not listed because the response is capped."
},
"violations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"type": "string"
},
"impact": {
"type": "string"
},
"summary": {
"type": "string"
},
"wcag": {
"type": "array",
"items": {
"type": "string"
}
},
"elementCount": {
"type": "integer"
},
"examples": {
"type": "array",
"items": {
"type": "object",
"properties": {
"selector": {
"type": "string"
},
"html": {
"type": "string"
}
},
"required": [
"selector",
"html"
]
}
}
},
"required": [
"ruleId",
"impact",
"summary",
"wcag",
"elementCount",
"examples"
]
}
},
"scannedAt": {
"type": "string"
},
"moreInfoUrl": {
"type": "string",
"description": "Informational page on scheduled re-scans and fix help for this kind of result."
}
},
"required": [
"url",
"score",
"grade",
"pagesScanned",
"failingRuleCount",
"affectedElementCount",
"needsReviewCount",
"rulesOmitted",
"violations",
"scannedAt",
"moreInfoUrl"
]
}🟢explain_accessibility_issue(rule_id)
Use this when the user asks what an axe-core accessibility rule means or how to fix it — typically a ruleId returned by scan_accessibility, such as color-contrast, image-alt, label or link-name. Returns plain-English steps and a code example. Do not use it to scan a site; use scan_accessibility for that.
Input Schema
{
"type": "object",
"properties": {
"rule_id": {
"type": "string",
"description": "axe-core rule id, e.g. color-contrast"
}
},
"required": [
"rule_id"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"ruleId": {
"type": "string"
},
"known": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"steps": {
"type": "array",
"items": {
"type": "string"
}
},
"codeExample": {
"type": "string"
},
"referenceUrl": {
"type": "string"
}
},
"required": [
"ruleId",
"known",
"summary",
"steps",
"referenceUrl"
]
}Community
Evidence