Auditra

officiel

Un serveur MCP pour les audits de plugins WordPress.

Que pouvez-vous faire avec Auditra MCP ?

  • Évaluer les vulnérabilités des plugins — Demandez « lesquels de mes plugins sont vulnérables ? » et obtenez des réponses fondées sur les données en direct de WPVulnerability via le serveur MCP.
  • Identifier l’encombrement de la table des options — Demandez ce qui alourdit votre table wp_options et obtenez une attribution aux plugins propriétaires avec des niveaux de confiance.
  • Découvrir les données orphelines de plugins — Demandez ce que les plugins supprimés ont laissé derrière eux, le serveur mappant les options, tables et hooks résiduels à leurs propriétaires d’origine.
  • Inventorier le parc de plugins — Demandez un inventaire complet des plugins avec le contexte du site, les options autochargées, les tâches cron et les détails des tables de base de données en une seule réponse.
  • Vérifier le support du cycle de vie des plugins — Demandez si les exigences PHP, MySQL ou MariaDB de vos plugins sont toujours prises en charge, à l’aide des données de cycle de vie intégrées.

Documentation

Auditra

Un plugin WordPress qui transforme le site sur lequel il est installé en serveur MCP en lecture seule, afin que tout client IA compatible MCP (connecteurs personnalisés Claude, et autres) puisse inspecter et raisonner sur l'état des plugins de ce site en langage naturel.

Demandez « lesquels de mes plugins sont vulnérables ? », « qu'est-ce qui alourdit ma table d'options ? » ou « qu'ont laissé derrière eux les plugins supprimés ? » — et obtenez des réponses fondées sur l'état réel du site.

Comment ça fonctionne

Trois couches dans un seul plugin, une route REST, aucune dépendance d'exécution :

  • TransportPOST /wp-json/auditra/v1/mcp/{token} parlant MCP sur JSON-RPC 2.0 (réponses JSON simples, sans état). Les deux générations de protocole sont servies, décidées par requête : révision 2026-07-28 (métadonnées par requête, validation d'en-tête server/discover, Mcp-*) et les révisions de poignée de main initialize / 2025-11-25 / 2025-06-18 / 2025-03-26. Authentification par jeton dans le chemin derrière une interface interchangeable, validation de l'origine, limitation de débit, journalisation des échecs d'authentification.
  • Collecteurs — lisent WordPress directement : inventaire, contexte du site, options chargées automatiquement, cron, tables de base de données, utilisation des fonctionnalités de contenu, et un moteur d'attribution à trois niveaux qui mappe options/tables/hooks vers les plugins propriétaires avec des niveaux de confiance explicites (high = organisé, medium = dérivé, ou visiblement non attribué).
  • Enrichissement — deux services externes, wordpress.org et WPVulnerability, tous deux sans clé, tous deux mis en cache, tous deux se dégradant silencieusement avec un rapport de couverture par source et un backoff progressif (15 min → 24 h) en cas d'échec. Les dates de cycle de vie pour PHP, MySQL et MariaDB ne sont pas du tout récupérées : elles sont incluses dans includes/data/lifecycle.json, compilées à partir de la politique publiée de chaque fournisseur.

Neuf outils ; chaque réponse porte _meta (totaux, troncature, sources indisponibles, horodatages) et reste dans un budget de 20 Ko. Le serveur rapporte des faits, jamais des verdicts — la notation et les conseils sont délibérément absents, car c'est le travail du client IA. L'enregistrement complet de la conception se trouve dans docs/DECISIONS.md.

Connectez-le à un client IA

  1. Outils → Auditra dans wp-admin : activez le point de terminaison, générez un jeton, copiez l'URL de connexion.
  2. Dans Claude : Paramètres → Connecteurs → Ajouter un connecteur personnalisé, collez l'URL (doit être https://).
  3. Posez des questions. Commencez par « que pouvez-vous me dire sur les plugins de ce site ? »

Le site doit être accessible publiquement via HTTPS avec des permaliens personnalisés activés. Les clients sur la révision 2026-07-28 reçoivent un indice de fraîcheur de 24 heures sur tools/list, de sorte qu'un outil ajouté par une mise à jour de plugin apparaît dans la journée par lui-même ; les révisions plus anciennes n'ont pas de signal d'expiration, alors reconnectez le connecteur après la mise à jour pour récupérer les nouveaux outils.

Contribuer

La contribution la plus simple et réellement utile est une pull request sur includes/data/prefix-overrides.json — la carte organisée des slugs de plugins vers les préfixes d'options/tables qu'ils utilisent réellement (Contact Form 7 → wpcf7_). Chaque entrée améliore la précision de l'attribution pour chaque utilisateur. Voir CONTRIBUTING.md.

Développement

composer install   # dev-only: PHPCS + WordPress Coding Standards (pinned)
composer lint
php tests/mcp-client.php https://example.com/wp-json/auditra/v1/mcp/{token}

tests/mcp-client.php est le harnais CLI qui exerce le point de terminaison sans client IA dans la boucle ; tests/seed-conditions.sh construit un site de test volontairement désordonné (et teardown-conditions.sh l'inverse exactement). CI exécute une matrice de lint PHP (7.4–8.4), PHPCS, et une porte grep qui fait échouer la construction si une opération d'écriture apparaît jamais dans le code du plugin.

Sécurité

Voir SECURITY.md pour les versions prises en charge et comment signaler une vulnérabilité en privé.

Licence

GPL-2.0-or-later.