EuroA11y
Accessibility audit of a web page (WCAG 2.2 AA, RGAA) and European Accessibility Act scope check
Que pouvez-vous faire avec EuroA11y ?
scan_pageloads one public page in a headless Chromium browser, runs axe-core against WCAG 2.2 level AA and returns the failures grouped by WCAG success criterion, most severe first, with the failing elements and how to fix them. Parameters:url(re...check_eaa_scopeapplies the scope rules of Directive (EU) 2019/882, applicable since 28 June 2025, to the service, headcount and turnover given, including the exemption for microenterprises. It returns a verdict (in_scope,terminals_only, `exempt_...- Check the accessibility of https://www.gov.uk on mobile
- Which RGAA criteria does my home page fail? https://example.fr
- I run an online shop with 6 employees. Does the EAA apply to me?
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
claude mcp add --transport http euroa11y 'https://euroa11y.com/mcp'
{
"mcpServers": {
"euroa11y": {
"type": "http",
"url": "https://euroa11y.com/mcp"
}
}
}
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
EuroA11y
EuroA11y is a free remote MCP server for ChatGPT, Claude and other MCP clients. It has two read-only tools: an automated accessibility scan of one public web page (WCAG 2.2 level AA, with axe-core) and a check of whether the European Accessibility Act (EAA) applies to a business. No account, no authentication.
- Connector URL (Streamable HTTP, no authentication):
https://euroa11y.com/mcp - Website and setup steps for Claude and ChatGPT: euroa11y.com, documentation
- Published by Antoine Olivier (France). Independent, not affiliated with the European Union or any EU institution.
Tools
scan_pageloads one public page in a headless Chromium browser, runs axe-core against WCAG 2.2 level AA and returns the failures grouped by WCAG success criterion, most severe first, with the failing elements and how to fix them. Parameters:url(required),viewport(desktopormobile),include_rgaa(adds the related criteria of RGAA 4.1.2, the French framework),include_best_practices,max_examples(1 to 5),fresh(scan again instead of reusing a recent result). A scan usually takes 5 to 30 seconds.check_eaa_scopeapplies the scope rules of Directive (EU) 2019/882, applicable since 28 June 2025, to the service, headcount and turnover given, including the exemption for microenterprises. It returns a verdict (in_scope,terminals_only,exempt_microenterprise,out_of_scope,public_sector_other_laworneed_more_info) with its reasons and legal sources. No network access, nothing stored. Information, not legal advice.
Example prompts:
- Check the accessibility of https://www.gov.uk on mobile
- Which RGAA criteria does my home page fail? https://example.fr
- I run an online shop with 6 employees. Does the EAA apply to me?
Limits
- Automated tools detect only part of accessibility issues. A scan with no failure does not mean the page is accessible or compliant; a conformance claim or an accessibility statement needs a manual audit.
- One public page per call, main document only (no iframe), no login, no form submission. Pages behind bot protection may refuse the scan.
- Fair-use limits keep the hosted service free: for each ChatGPT account or network address, one scan at a time and 40 a day.
- The raw result of a scan, which includes the page address, is kept up to 24 hours, encrypted, to answer the same request again. Logs hold no page address and no argument. Details: privacy policy.
Development
Requires Node.js (see engines in package.json).
npm ci
npm run check
node src/cli.ts https://www.gov.uk --rgaa
npm run checkruns the type checks and the tests.git config core.hooksPath .githooksruns it before each commit.npm run mcp:httpstarts the MCP server over HTTP on this machine, with Node.- The hosted service is a Cloudflare Worker (
src/worker/,wrangler.jsonc) that scans in Cloudflare Browser Run, which needs the Workers Paid plan. To deploy your own copy, change the route inwrangler.jsoncto your domain.node scripts/smoke.mjs <base URL>checks the Worker's routes without running a scan.
Safeguards in the code: private, local and reserved addresses are refused for the page and each redirect, the scan is bounded in time and requests, the daily browser time has a global budget, and only rules from the bundled axe-core catalogue are kept in a report, since the scanned page can tamper with axe's results.
Data and credits
- axe-core by Deque Systems (MPL-2.0) runs the WCAG checks.
data/rgaa-4.1.2-wcag.jsonmaps RGAA 4.1.2 criteria to WCAG references, from the source repository of accessibilite.numerique.gouv.fr (RGAA/criteres.jsonand the criteria annexes). RGAA 4.1.2 follows WCAG 2.1: criteria new in WCAG 2.2 have no RGAA equivalent.- Fonts: Atkinson Hyperlegible Next and Mono (SIL Open Font License, files in
assets/fonts/).
License
MIT, see LICENSE. Contact: contact@euroa11y.com
Questions fréquentes
Qu'est-ce que EuroA11y ?
Accessibility audit of a web page (WCAG 2.2 AA, RGAA) and European Accessibility Act scope check
Comment installer EuroA11y ?
Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http euroa11y 'https://euroa11y.com/mcp'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour EuroA11y ?
Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.
EuroA11y est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient EuroA11y ?
Il est publié par antoine-olivier. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.