@rgaaudit/mcp-server
v0.11.0
Published
MCP Server RGAA 4.1 — Audit d'accessibilité pour Claude Code, Cursor, Copilot
Maintainers
Readme
@rgaaudit/mcp-server
Serveur MCP (Model Context Protocol) pour auditer l'accessibilite web selon le referentiel francais RGAA 4.1, directement depuis votre IDE.
Compatible Claude Code, Cursor, Copilot, Windsurf.
Installation rapide
npx @rgaaudit/mcp-serverConfiguration
1. Obtenir une cle API
- Creez un compte sur rgaaudit.fr
- Choisissez un plan Freelance ou superieur (le plan Decouverte ne donne pas acces a l'API)
- Allez dans Parametres > API
- Generez une cle API (prefixe
rga_)
2. Configurer Claude Code
Ajoutez dans .mcp.json a la racine de votre projet :
{
"mcpServers": {
"rgaaudit": {
"command": "npx",
"args": ["-y", "@rgaaudit/mcp-server"],
"env": {
"RGAA_API_KEY": "rga_votre_cle_ici"
}
}
}
}3. Configurer Cursor / Copilot
Ajoutez la meme configuration dans les parametres MCP de votre IDE.
Outils disponibles
| Outil | Description | Quota |
|-------|-------------|-------|
| rgaa_audit | Audit complet RGAA 4.1 avec non-conformites, patterns, composants et suggestions | 1 audit |
| rgaa_score | Score de conformite rapide (0-100%) | 1 audit |
| rgaa_check | Verifier un critere RGAA specifique (ex: 1.1, 3.2, 11.1) | 1 audit |
| rgaa_explain | Expliquer un critere RGAA avec exemples de code | Gratuit |
| rgaa_fix | Code de correction par framework (HTML, Vue, React) | Gratuit |
| rgaa_remediate | Plan de correction autonome : audit + priorisation + code fix | 1 audit |
| rgaa_recheck | Re-audit apres corrections pour mesurer l'amelioration | 1 audit |
| rgaa_report | Rapport JSON structure pour CI/CD (diagnostics inclus par defaut) | 1 audit |
| rgaa_diagnostics | Sante du site : liens casses (404), pages en erreur, zones partagees, corrections | 1 audit |
| rgaa_visual_check | Checklist de tests visuels guides pour inspection manuelle | Gratuit |
Parametres rgaa_audit
| Parametre | Type | Defaut | Description |
|-----------|------|--------|-------------|
| url | string | — | URL du site web a auditer |
| authenticated | boolean | false | Inclure les pages protegees par authentification (necessite Chrome avec --remote-debugging-port=9222) |
| diagnostics | boolean | false | Inclure les diagnostics : liens casses, pages en erreur, zones partagees, corrections |
| seedUrls | string[] | — | URLs specifiques a auditer (bypasse la decouverte). Utile pour les SPAs |
| maxViolations | number | 15 | Nombre max de non-conformites detaillees. Les autres sont resumees en tableau compact. 0 = tout afficher |
| groupBy | enum | "impact" | Tri des non-conformites : "impact" (critique a mineur), "page" (groupees par URL), "criteria" (groupees par critere RGAA) |
Modes de groupement (groupBy)
impact (defaut) — Trie par gravite : critique → serieux → modere → mineur. Ideal pour prioriser les corrections.
page — Groupe par page. Les non-conformites des zones partagees (header/nav/footer) apparaissent en premier dans une section dediee. Ideal pour un dev qui corrige page par page.
criteria — Groupe par critere RGAA (1.1, 3.3, 6.2...). Trie par nombre de non-conformites. Ideal pour un auditeur qui verifie critere par critere.
Patterns et composants
Chaque non-conformite peut etre liee a un pattern (probleme recurrent) et un composant (element UI reutilise) :
- Pattern : meme regle violee N fois avec le meme selecteur CSS (ex: "Contraste dans le header — 14 occurrences"). 1 correction = N elements corriges.
- Composant : element UI detecte automatiquement (ex: "Navigation principale", "Champ newsletter"). Peut regrouper plusieurs patterns de regles differentes.
Exemple dans la sortie :
| Composant | **Navigation principale** |
| Pattern | Contraste dans le header (14 occurrences — 1 correction = 14 elements corriges) |Diagnostics
Le champ diagnostics retourne des donnees de sante du site :
- Liens casses (404) — URLs qui retournent une erreur 404, avec la raison et la profondeur de crawl
- Pages en erreur — Pages bloquees (Cloudflare, captcha, timeout, rate-limit) avec le detail de l'erreur
- Zones partagees — Detail des non-conformites par zone (header, nav, footer) avec les criteres RGAA concernes
- Corrections — Nombre de corrections appliquees/en attente et date de derniere correction
Dans
rgaa_report(CI/CD), les diagnostics sont inclus par defaut. Dansrgaa_audit, ajoutezdiagnostics: truepour les activer.
Auditer une app en local (localhost)
Le site rgaaudit.fr ne peut pas atteindre votre machine : c'est pour ça que le MCP est indispensable pour auditer http://localhost:3000, http://127.0.0.1:4200 etc.
Prerequis : Google Chrome installe sur votre machine (telecharger). Le MCP le detecte automatiquement. Si Chrome est absent, le MCP telecharge automatiquement Chromium au premier audit local (~150 MB, mis en cache dans ~/.cache/rgaaudit-mcp/).
Ce qui se passe quand vous lancez rgaa_audit http://localhost:3000 :
- Le MCP lance Chrome (ou se connecte a un Chrome existant sur le port CDP 9222)
- Il navigue vers votre URL locale, attend l'hydration (SPA OK : Vue, React, Svelte, Next, Nuxt, Angular...)
- Crawl auto : si vous ne fournissez pas de
seedUrls, le MCP suit les liens internes et capture jusqu'a 5 pages - Il capture le HTML rendu de chaque page
- Il l'envoie a rgaaudit.fr qui applique le pipeline complet (axe-core + regles custom RGAA + mapping critieres + pattern detection cross-pages)
- L'audit apparait sur votre tableau de bord avec toutes les non-conformites, patterns et suggestions
Consomme 1 audit du quota de votre plan, comme un audit normal — meme pour un audit multi-pages.
Re-audit apres corrections (rgaa_recheck)
Pour un audit localhost, rgaa_recheck <auditId> recapture votre app en local et calcule le delta (score + nouvelles/resolues non-conformites). Permet de mesurer vos corrections sans setup CI complet. Cache local dans ~/.cache/rgaaudit-mcp/local-audits.json.
Specifier les pages a auditer
Plutot que le crawl auto, vous pouvez fournir des URLs precises :
> Audite http://localhost:3000 avec seedUrls ["/dashboard", "/admin/users", "/profile"]Utile pour les SPAs avec routes proteges ou pages non liees depuis l'index.
Auditer des pages protegees par auth en local
Si votre app locale a un login, lancez Chrome avec le port de debug, connectez-vous, puis laissez Chrome ouvert :
# Windows
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222
# macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
# Linux
google-chrome --remote-debugging-port=9222Puis dans Claude Code :
> Audite http://localhost:3000 avec les pages authentifiees
> Audite http://localhost:3000 avec seedUrls ["/dashboard", "/admin/users"]Le MCP extrait vos cookies de session Chrome et les injecte dans la capture.
Exemples d'utilisation
Dans Claude Code, demandez simplement :
> Audite l'accessibilite de https://monsite.fr
> Audite http://localhost:3000 (votre app en dev)
> Audite https://monsite.fr avec les pages authentifiees
> Audite https://monsite.fr groupBy page
> Quel est le score RGAA de https://monsite.fr ?
> Verifie le critere 3.2 (contrastes) sur https://monsite.fr
> Explique le critere RGAA 11.1
> Corrige la regle image-alt en Vue
> Genere un plan de correction pour https://monsite.fr en React
> Montre les liens casses et erreurs de https://monsite.frVariables d'environnement
| Variable | Requis | Description |
|----------|--------|-------------|
| RGAA_API_KEY | Oui | Cle API RGAAudit (format rga_...) |
| RGAA_API_URL | Non | URL de l'API (defaut: https://rgaaudit.fr) |
| RGAA_CDP_PORT | Non | Port Chrome DevTools Protocol pour l'audit authentifie (defaut: 9222) |
Licence
MIT
