Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Piloter des audits RGAA 4.1 sur Ara, référentiel embarqué. Non officiel.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
ARA_AUTH_TOKEN, ARA_USERNAME, ARA_PASSWORD, ARA_BASE_URLAls geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"ara-rgaa": {
"command": "npx",
"args": [
"-y",
"ara-rgaa-mcp"
],
"env": {
"ARA_AUTH_TOKEN": "your-value",
"ARA_USERNAME": "your-value",
"ARA_PASSWORD": "your-value",
"ARA_BASE_URL": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add ara-rgaa --env ARA_AUTH_TOKEN=your-value --env ARA_USERNAME=your-value --env ARA_PASSWORD=your-value --env ARA_BASE_URL=your-value -- npx -y ara-rgaa-mcpTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"ara-rgaa": {
"command": "npx",
"args": [
"-y",
"ara-rgaa-mcp"
],
"env": {
"ARA_AUTH_TOKEN": "your-value",
"ARA_USERNAME": "your-value",
"ARA_PASSWORD": "your-value",
"ARA_BASE_URL": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"ara-rgaa": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"ara-rgaa-mcp"
],
"env": {
"ARA_AUTH_TOKEN": "your-value",
"ARA_USERNAME": "your-value",
"ARA_PASSWORD": "your-value",
"ARA_BASE_URL": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
ARA_USERNAME envARA_BASE_URL envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 9. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto DavidPivert bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Das musst du eintragen: ARA_AUTH_TOKEN, ARA_PASSWORD
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (2.5.0) kam vor 3 Monaten in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Toggl 2.0
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Toggl 2.0 MCP server for tasks, projects, time entries, and workspace operations.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
Serveur MCP (Model Context Protocol) qui expose les opérations CRUD sur les audits d'accessibilité RGAA de la plateforme Ara. Permet de piloter un audit Ara entièrement depuis Claude Code, Codex ou tout client MCP compatible — sans login manuel dans le navigateur.
Projet communautaire, non officiel. Ce serveur est un client tiers de l'API d'Ara, le service d'audit d'accessibilité de la DINUM. Il n'est ni édité ni maintenu par la DINUM.
English — An MCP server for Ara, the French government platform for RGAA 4.1 accessibility audits. It exposes 17 tools to create, fill in, publish and export accessibility audits from any MCP client. Requires an account on ara.numerique.gouv.fr. Documentation is in French, matching the audience of the RGAA. Unofficial community project.
1. Se connecter, une fois :
npx ara-rgaa-mcp login
Une page s'ouvre dans votre navigateur, sur votre propre ordinateur. Vous y saisissez vos identifiants Ara ; le jeton est enregistré dans ~/.config/ara-rgaa-mcp/credentials.json, en permissions 600. Votre mot de passe n'est jamais enregistré.
2. Déclarer le serveur — sans aucun secret dans la configuration :
{
"mcpServers": { "ara-rgaa": { "command": "npx", "args": ["-y", "ara-rgaa-mcp"] } } }
Prérequis : Node.js ≥ 18 et un compte sur ara.numerique.gouv.fr.
Pour Claude Code, le fichier est ~/.claude/claude_desktop_config.json. Pour Codex ou Cursor, même format dans leurs réglages MCP respectifs.
Le renouvellement est automatique. Les jetons d'Ara durent 24 h, mais le serveur en demande un neuf à chaque démarrage : un usage régulier ne redemande jamais de se connecter. Après plus de 24 h sans usage, le serveur vous dit de relancer login.
| Commande | |
|---|---|
npx ara-rgaa-mcp login | Se connecter et enregistrer le jeton |
npx ara-rgaa-mcp status | Compte, instance, âge du jeton |
npx ara-rgaa-mcp logout | Supprimer le jeton enregistré |
Sécurité de la page de connexion
Une page locale qui réclame des identifiants ressemble à du hameçonnage : le serveur prend donc quatre précautions.
Votre mot de passe ne transite que du navigateur vers ce processus local, puis vers ara.numerique.gouv.fr. Il n'est écrit nulle part.
Si vous n'avez pas lancé la commande vous-même, fermez la page.
Alternative à login, pour l'automatisation ou les environnements sans navigateur.
| Variable | Défaut | Description |
|---|---|---|
ARA_AUTH_TOKEN | — | Jeton JWT. ⚠️ Valable 24 h seulement |
ARA_USERNAME | — | Email, pour l'authentification au démarrage |
ARA_PASSWORD | — | Mot de passe, pour l'authentification au démarrage |
ARA_BASE_URL | https://ara.numerique.gouv.fr/api | URL de base de l'API Ara |
Les identifiants ne sont jamais acceptés en paramètres d'outil. Un paramètre d'outil transite par le contexte du modèle et se retrouve conservé dans les transcripts de conversation. Ils sont donc lus uniquement depuis l'environnement du processus ou depuis le fichier écrit par login.
⚠️ `ARA_AUTH_TOKEN` expire au bout de 24 heures. Les jetons d'Ara sont signés avec
expiresIn: "24h": un jeton collé à la main cesse de fonctionner le lendemain. Ne l'utilisez que pour une intégration automatisée qui sait le renouveler. Pour un usage quotidien, préférezloginci-dessus, ou à défautARA_USERNAME/ARA_PASSWORD— qui suppose en revanche d'écrire un mot de passe en clair dans un fichier de configuration.
L'outil auth_refresh rejoue l'authentification en cours de session, si un jeton a expiré.
Chaque outil porte des annotations (readOnlyHint, destructiveHint, idempotentHint) qui permettent à votre client MCP de demander confirmation avant les opérations sensibles.
| Outil | Nature | Description |
|---|---|---|
get_audit_method | 📖 référentiel | Plan de travail : quels critères exigent quoi |
list_rgaa_criteria | 📖 référentiel | Index des critères RGAA (numéro + intitulé), filtrable |
get_rgaa_criterion | 📖 référentiel | Un critère, ses tests et ce qu'il faut pour le vérifier |
auth_refresh | ↻ | Rejoue l'authentification depuis l'environnement |
create_audit | ✚ additif | Créer un nouvel audit |
duplicate_audit | ✚ additif | Dupliquer un audit pour un retest, fiche comprise (la source n'est pas touchée) |
get_audit | 🔒 lecture seule | Récupérer un audit complet |
get_audit_progress | 🔒 lecture seule | Avancement : ce qui reste à évaluer, par page |
compare_audits | 🔒 lecture seule | Retest : taux avant/après, critères et résultats qui ont changé |
get_audit_results | 🔒 lecture seule | Résultats de critères, filtrables par page et par statut |
get_report | 🔒 lecture seule | Rapport complet avec taux de conformité |
export_csv | 🔒 lecture seule | Export CSV des résultats |
update_audit | ⚠️ destructif | Mise à jour complète — remplace les métadonnées |
patch_audit_notes | ⚠️ destructif | Remplace les notes de l'audit |
update_audit_results | ⚠️ destructif | Remplace l'évaluation des critères visés |
update_statement | ⚠️ destructif | Remplace ET publie la déclaration d'accessibilité |
publish_audit | ⚠️ destructif | Rend l'audit public — irréversible (voir ci-dessous) |
delete_audit | ⚠️ destructif | Suppression (410 ensuite) — ne dépublie pas |
Le cycle conseillé : audit initial, correctifs, copie de l'audit, retest des critères touchés, déclaration depuis la copie.
copyMetadata: false pour s'en tenir à la copie d'Ara. Si cette seconde étape échoue, la copie existe quand même : ses identifiants sont renvoyés avec un avertissement.order (celui de get_audit), sinon l'échantillon est réordonné dans le rapport.update_audit_results envoie les résultats à Ara par paquets de 20 (batchSize, de 1 à 100). Ara répond parfois 500 à un paquet dont chaque résultat passe seul (constaté sur des paquets de 23 à 36 résultats des thématiques 10 et 12). Le serveur coupe alors le paquet en deux, jusqu'au résultat isolé :
echecs ;Chaque envoi remplace l'évaluation visée : renvoyer un paquet est sans effet de bord.
Le serveur embarque le référentiel RGAA 4.1 complet — 13 thématiques, 106 critères, et les tests de chacun. Sans lui, un agent ne manipule que des numéros (topic: 6, criterium: 1) sans savoir ce qu'il évalue.
list_rgaa_criteria(auditType: "FAST") → les 25 critères de l'audit rapide (~5 Ko)
get_rgaa_criterion(topic: 6, criterium: 1) → « Chaque lien est-il explicite (hors cas particuliers) ? » + ses 5 tests (~2 Ko)
Le geste attendu pendant un audit : get_rgaa_criterion pour lire le critère et ses tests, puis update_audit_results pour poser le verdict. Juger plutôt que deviner.
Les données proviennent de rgaa.json du projet Ara, publié par la DINUM sous [Licence Ouverte 2.0](https://github.com/DISIC/Ara/blob/main/LICENCES.md). Elles sont embarquées dans le paquet — le serveur fonctionne donc hors ligne, sans appel réseau pour la partie référentiel. Régénération : node scripts/build-rgaa-data.mjs.
À noter : les types d'audit
FASTetCOMPLEMENTARYcouvrent 25 critères chacun et sont disjoints ; c'est la méthodologie complète (rapide + complémentaire) qui en couvre 50.
Sur les 106 critères du RGAA, 40 seulement se tranchent en lisant le HTML — et 6 sur les 25 d'un audit rapide. Les autres exigent la page rendue, une navigation clavier réelle, l'arbre d'accessibilité, ou un jugement éditorial.
C'est le piège de l'audit assisté par IA : un agent lit du balisage, y trouve des réponses plausibles, et remplit un audit qui ne repose sur rien. Trois mécanismes s'y opposent.
`get_audit_method(auditType)` — le plan de travail avant de commencer : quels critères relèvent du source, du rendu, du clavier, de la restitution, du jugement.
`get_rgaa_criterion` joint à chaque critère un bloc verification : sourceSuffit, les besoins, et comment s'y prendre.
`update_audit_results` refuse un verdict non fondé. Déclarer CONFORME ou NON CONFORME sur un critère qui exige davantage, sans renseigner le champ evidence correspondant, produit une erreur explicite :
Verdict refusé sur 1 critère(s) : le code source ne suffit pas à les trancher,
et la vérification correspondante n'a pas été déclarée.
10.7 — exige : clavier (…) ; rendu (…)
Effectuez réellement ces vérifications, puis renseignez le champ "evidence". Si vous ne pouvez pas les faire, utilisez le statut NOT_TESTED plutôt qu'un verdict non fondé.
NOT_TESTED et NOT_APPLICABLE en sont dispensés : ils n'affirment rien. Et evidence reste déclaratif — un agent peut mentir, mais plus par omission.
Cette classification est une guidance de ce serveur, déduite du vocabulaire des tests puis corrigée à la main. Le RGAA dit quoi vérifier, pas avec quel outil.
Ara n'offre aucune dépublication, et supprimer un audit ne retire pas son rapport publié :
Après publish_audit puis delete_audit | |
|---|---|
GET /audits/:editUniqueId | 410 Gone — l'audit disparaît de votre liste |
GET /reports/:consultUniqueId | `200` — le rapport reste publiquement lisible |
Le rapport devient alors inaccessible depuis l'interface d'Ara : vous ne pouvez plus ni le consulter, ni le corriger, ni le retirer. Seul votre nom d'auditeur disparaît du rapport public ; le contenu de l'audit demeure.
Deux conséquences pratiques :
Ara affiche les commentaires de critère en texte riche : un écrit tel quel est interprété comme une balise et disparaît du commentaire rendu — l'API répond 200, le constat perd sa substance, et rien ne le signale.
Depuis la 2.2.1, update_audit_results **éc
Nur der Anfang wird gezeigt; den Rest findest du im Repo