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

A
Description quality
100%
Schema completeness
100%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~763Tokens (tool definitions)
~3.0 KBTypical response size
Moderate attention impact (0.60% of 128k context)

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-http

What it can do

Tool inventory

Tools (2)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded2 tools