J'ai donné un moteur de test de regex à mon assistant IA
Quand on demande une expression régulière à un assistant IA, il en écrit une qui a l’air juste. Il ne l’a pas exécutée. Il n’a pas vérifié qu’elle accepte vos cas valides et rejette les invalides, ni qu’elle ne peut pas bloquer un serveur sur une entrée bien choisie, ni qu’elle fonctionne dans le moteur que vous utilisez réellement. C’est ce vide que comble Rexact MCP.
Le problème, en trois cas concrets
- Elle n’est pas testée. Le motif
^\d{5}$pour un code postal français semble évident. Mais accepte-t-il75001et rejette-t-il7500et75 001? Tant que rien ne l’exécute, personne ne le sait. - Elle peut bloquer.
(a+)+$est le cas d’école du « backtracking catastrophique » : sur une chaîne deaterminée par un autre caractère, le temps d’exécution explose. C’est le risque ReDoS, et un assistant qui n’exécute pas le motif ne le voit pas. - Elle n’est pas portable. Une assertion
(?<=\d)€fonctionne dans certains moteurs et pas dans RE2, qui ne gère ni les assertions arrière ni les références arrière.
Ce que Rexact MCP apporte
Rexact MCP est un serveur MCP, c’est-à-dire un petit programme que l’assistant peut appeler comme un outil. Il est gratuit, sous licence MIT, et tourne en local et hors ligne, sans clé ni compte. Il expose cinq outils :
| Outil | À quoi il sert |
|---|---|
verify_regex |
Teste la regex contre vos cas valides et invalides |
check_redos |
Cherche les motifs à backtracking catastrophique |
explain_regex |
Explique la regex en clair, élément par élément |
check_compat |
Vérifie le comportement sur plusieurs moteurs |
generate_regex |
Génère une regex à partir d’une description |
Les moteurs couverts côté Rexact sont JavaScript, PCRE, Python, RE2, Java, .NET et grep.
Installation
Prérequis : Node.js 20 ou plus.
Avec Claude Code :
claude mcp add rexact -- npx -y rexact-mcp
Avec Claude Desktop, Cursor et les clients similaires, ajoutez ce bloc à la configuration mcpServers :
{
"mcpServers": {
"rexact": {
"command": "npx",
"args": ["-y", "rexact-mcp"]
}
}
}
À quoi ressemble l’usage
Voici un exemple de demande, donné à titre d’illustration :
Écris-moi une regex pour un code postal français et vérifie-la avec ces cas : 75001, 13008 valides ; 7500, 75 001, ABCDE invalides.
L’assistant propose un motif, appelle verify_regex avec vos cinq cas, et vous répond sur la base des résultats plutôt que sur l’impression que le motif lui donne. Même logique pour une regex que vous avez déjà : « passe celle-ci dans check_redos avant que je la mette en production ».
Confidentialité
Aucune regex n’est envoyée à Rexact. Seul generate_regex appelle un modèle, avec votre propre clé Anthropic, donc à votre charge. Les quatre autres outils restent entièrement locaux.
Pour aller plus loin
- La fiche de l’outil : Rexact MCP.
- Le banc d’essai en ligne, pour tester à la main : Rexact.
- Le paquet : rexact-mcp sur npm.