GDPR Guardian
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@GDPR GuardianAnonymise client-list.csv before I upload it to the AI"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Gardien RGPD · GDPR Guardian
L'anonymisation intelligente des documents avant leur passage dans une IA. Smart anonymisation of documents before they reach an AI.
Un seul logiciel, deux noms : Gardien RGPD en français, GDPR Guardian en anglais. One piece of software, two names: Gardien RGPD in French, GDPR Guardian in English.
Gardien RGPD retire les données personnelles d'un document (noms, identifiants nationaux, coordonnées
bancaires, téléphones, adresses, secrets…) de façon irréversible, tout en conservant le sens :
chaque personne devient [PERSONNE_1], [PERSONNE_2]… de manière cohérente dans tout le document.
Un LLM peut alors résumer, analyser ou comparer le contenu sans jamais savoir de qui il s'agit.
Offert gratuitement par Flow Line Intégration · conçu par Guillaume CLEMENT, CTO Data & IA · Licence MIT. Offered free of charge by Flow Line Intégration · designed by Guillaume CLEMENT, CTO Data & AI · MIT licence. Version 1.0.0, en phase de recherche et développement / in research and development.
Vidéo / Video (muette, 2 min 40 / silent) : lancement en français · launch in English ; sur le site / on the site : https://gardienrgpd.fr/#video, https://gdprguardian.com/#video.
Pourquoi Gardien RGPD
🔒 Irréversible, par conception | Une clé aléatoire est créée pour chaque document puis détruite. Aucune table de correspondance n'existe : ni vous, ni nous, ni l'IA ne pouvons retrouver les noms d'origine. |
🧠 Cohérent pour l'IA | « M. Dupont », « Jean Dupont », « J. Dupont » et « DUPONT Jean » deviennent la même |
🇫🇷 Expert des identifiants européens | NIR (y compris Corse, DOM, NIA), SIREN/SIRET (exception La Poste), TVA, RIB, IBAN de 89 pays, CNI, passeport, permis, RPPS, FINESS… validés par leurs clés de contrôle officielles, et pas seulement par des expressions régulières. |
🌍 Packs pays |
|
⚡ Rapide, sur CPU | Aucun GPU, aucun appel à un LLM. Noyau optionnel en Rust (sans GIL) aux résultats identiques au moteur Python : un message de 2 Ko est traité en moins d'une milliseconde. |
📄 Documents et tableurs | PDF, Word, PowerPoint, HTML, e-mails, Excel et CSV sont convertis en Markdown anonymisé, prêt pour l'IA. Feuilles masquées, commentaires et métadonnées ne fuient pas. |
🤖 Fait pour Claude et les agents | Serveur MCP en ligne ou sur votre poste (plugins Claude pour Claude Code, Claude Desktop et Cowork ; VS Code, Cursor…), même logiciel et même version, et deux skills Claude, légère (service public, rien à installer) ou lourde (moteur embarqué, rien ne quitte la machine) : Claude fait anonymiser le document sans le lire et ne lit que le Markdown anonymisé. |
💻 Sur votre poste, sans rien envoyer | Pour les plus prudents : installation locale, aucune connexion réseau pendant le traitement (vérifié à chaque version), ou conteneur Docker sans réseau. Voir docs/LOCAL.md. |
🧩 Vos règles en plus | Chaque organisation ajoute ses règles dans l'appel (références internes à masquer, numéros de commande à conserver, projets confidentiels), exécutées par un moteur d'expressions à temps linéaire, jamais conservées. |
🔎 Explicable |
|
🛡️ Privacy by design | Traitement en mémoire uniquement, un processus neuf par document converti, aucun contenu journalisé, hébergement européen, sortie nettoyée des vecteurs d'injection (caractères invisibles, images distantes). |
Related MCP server: privacyscrubber-mcp
Exemple
Entrée : M. Jean Dupont (jean.dupont@exemple.fr, 06 12 34 56 78), NIR 1 85 05 78 006 084 91,
IBAN FR76 3000 6000 0112 3456 7890 189. M. Dupont rappellera Mme Claire Martin.
Sortie : M. [PERSONNE_1] ([EMAIL_1], [TEL_1]), NIR [NIR_1],
IBAN [IBAN_1]. M. [PERSONNE_1] rappellera Mme [PERSONNE_2].Service en ligne, gratuit et sans clé / free online service, no key
API REST |
|
MCP en ligne |
|
Page et essai |
curl -s https://api.gardienrgpd.fr/v1/anonymize/text -H 'Content-Type: application/json' \
-d '{"text": "Contactez Jean Dupont au 06 12 34 56 78."}'Aucune clé, aucun compte, aucun cookie. Traitement en mémoire, un processus neuf par requête, rien n'est conservé ni journalisé ; un résultat différé est effacé dès sa lecture complète ou après 10 minutes.
Limites par client, tenues en mémoire sous un pseudonyme renouvelé chaque jour : quelques documents de 10 Mo d'affilée puis un toutes les 8 secondes, des centaines de petits textes par minute, 50 Mo au plus par fichier et 1 million de caractères par texte ; au-delà,
429ou503avecRetry-After. Détails : deploy/README.md.Documents très sensibles (santé, RH, dossier judiciaire, secret professionnel) : sur le service en ligne, nous sommes un tiers, sans contrat de traitement ; préférez la version locale, où rien ne quitte le poste (docs/LOCAL.md).
EN. REST and MCP at https://api.gdprguardian.com and https://api.gardienrgpd.fr (MCP on /mcp), no key, no
account, no cookie; in-memory processing, nothing kept or logged; per-client limits (a few 10 MB documents in a
row, then one every 8 seconds; hundreds of small texts per minute; 50 MB per file; 429 or 503 with Retry-After
beyond). For very sensitive documents, use the local version: nothing leaves your computer.
Skills Claude : légère ou locale / Claude skills: light or local
Claude n'ouvre jamais le document : il le fait anonymiser, puis ne lit que le Markdown anonymisé. Deux skills,
archives prêtes à téléverser dans skills/ ; installées ensemble, la locale passe d'abord,
et la légère n'envoie un document qu'après l'accord de l'utilisateur.
Skill | Ce qu'elle fait | Archive | Plugin |
| envoie le document au service public gratuit (MCP ou API REST), rien à installer |
|
|
| anonymise là où elle tourne, moteur complet embarqué, sans réseau, Python 3.11 à 3.14 |
|
|
claude.ai et Claude Desktop : Personnaliser > Plugins > Ajouter > Ajouter une marketplace
FlowLineIntegration/GDPRGuardian>gdprguardian-online, puis onglet Connecteurs du plugin ; ou Personnaliser > Skills > « + » > Créer une skill > Téléverser une skill (exécution de code activée).Claude Code :
claude plugin marketplace add FlowLineIntegration/GDPRGuardian, puisclaude plugin install gdprguardian-online@gdprguardianouclaude plugin install gdprguardian@gdprguardian; ou dézipper une archive dans~/.claude/skills/. Le plugin local exige le paquetgdprguardiansur PyPI ; sans lui, les archives.Explications sur demande (règle et raison de chaque balise, jamais la valeur), limites et mode d'emploi :
integrations/claude/README.md. Dans claude.ai, un fichier joint à la conversation est déjà parti chez Anthropic : pour qu'il ne quitte pas le poste, Claude Code ou Cowork.
EN. Claude never opens the document: it has it anonymised, then reads only the anonymised Markdown. Two
skills, as ready-to-upload archives in skills/; installed together, the local one comes
first, and the light one sends a document only once the user agrees. The light gdprguardian-online uses the free
public service through MCP or REST, nothing to install (plugin gdprguardian-online, for claude.ai, Claude Desktop,
Cowork and Claude Code). The heavy gdprguardian-local bundles the full engine and runs with no network, Python 3.11
to 3.14: gdprguardian-local.zip (Linux) for claude.ai and the Claude Desktop chat, even on Windows or a Mac, and for
Linux and WSL; gdprguardian-local-windows-macos.zip only for Claude Code running directly on Windows or
Apple-silicon macOS; plugin gdprguardian (local MCP server and guardrail) for Claude Code and Cowork, which needs the
gdprguardian package on PyPI. claude.ai and Claude Desktop: Customize > Plugins > Add > Add marketplace, then the
plugin's Connectors tab, or Customize > Skills > "+" > Create skill > Upload a skill (code execution on); Claude
Code: claude plugin marketplace add FlowLineIntegration/GDPRGuardian, then install either plugin, or unzip an
archive into ~/.claude/skills/. Details and limits: integrations/claude/README.md.
Indice de confiance : nous nous notons en public / confidence index: we rate ourselves in public
Part des documents dont aucun identifiant direct ne reste lisible (pas un seul caractère alphanumérique d'une
mention annotée), mesurée par le vrai service, sept familles à poids égal, intervalle de confiance à 95 %. La
campagne envoie plus d'un million de documents, mais le volume n'achète aucun poids : cinq septièmes de l'indice
reposent sur les 3 164 documents notés des moitiés test des corpus réels, dont 6 seulement pour MAPA FR (un
document MAPA FR déplace l'indice de 2,4 points). Définitions, garde-fous, limites et commandes pour tout rejouer,
écrits avant la campagne : docs/PROTOCOLE.md. Chiffres publiés sur le site et dans
benchmarks/results/protocol-<date>.md ; tant que la campagne n'a pas tourné, le site affiche « pas encore mesuré ».
Share of documents in which no direct identifier stays readable (not one alphanumeric character of an annotated
mention), measured through the real service, seven families equally weighted, with a 95% interval. The campaign
sends over a million documents, but volume buys no weight: five sevenths of the index rest on the 3,164 scored
documents of the real corpora's test halves, only 6 of them MAPA FR (one MAPA FR document moves the index by 2.4
points). Pre-registered protocol in docs/PROTOCOLE.md; until the campaign has run, the site
shows "not measured yet".
Démarrage rapide
pip install "gdprguardian[all]" # bibliothèque, convertisseurs, API et MCP en ligne
pip install "gdprguardian[local]" # ou seulement l'usage sur le poste : convertisseurs et MCP localLe noyau Rust (gdprguardian-core) s'installe de lui-même sous Windows x64, macOS et Linux (x86-64, ARM64) ;
ailleurs, le moteur Python donne les mêmes résultats, plus lentement. Claude Code, Claude Desktop, Cowork,
VS Code, Cursor : voir docs/LOCAL.md.
from gdprguardian import anonymize
result = anonymize("Contactez Jean Dupont au 06 12 34 56 78.")
print(result.text) # Contactez [PERSONNE_1] au [TEL_1].
print(result.report) # entités remplacées, pays retenus, temps de traitement…Comment ça marche
document ──► conversion Markdown ──► normalisation (homoglyphes, caractères invisibles)
──► mots-clés de contexte (1 passage) ──► motifs + clés de contrôle (packs pays)
──► noms, adresses, organisations ──► fusion, propagation, coréférence
──► balises cohérentes ([PERSONNE_1]…) ──► clé détruite ──► Markdown anonymiséChaque identifiant a un niveau de confiance :
A : clé de contrôle forte (NIR, IBAN…), masqué sans condition ;
B : clé faible (Luhn…), masqué si le contexte le confirme ;
C : sans clé, masqué uniquement en présence de contexte.
Gardien RGPD est une première barrière : automatique, mesurée, explicable et réglable, pas une promesse de « zéro fuite ». La cartographie complète des règles, le format des règles d'organisation et le glossaire des raisons sont dans docs/REGLES.md.
from gdprguardian import Anonymizer
rules = {"rules": [{"label": "CLIENT_ID", "pattern": "CLT-[0-9]{6}"}], "deny": {"PROJET": ["Opération Phénix"]}}
result = Anonymizer(countries="FR", rules=rules, explain=True).anonymize("Client CLT-204518, Opération Phénix.")
print(result.text) # Client [CLIENT_ID_1], [PROJET_1].
print(result.report["explain"]) # [{'tag': '[CLIENT_ID_1]', 'rule': 'CUSTOM_1_CLIENT_ID', 'reason': 'custom_rule', ...}]Performances
Mesures d'octobre 2026, sur un corpus de 1 000 documents fictifs de 1,9 Ko en moyenne (moteur : un cœur ; service : 16 cœurs sous Linux).
Mesure | Résultat |
Document de 2 Ko, noyau Rust | 0,45 ms sous Windows (4,2 Mo/s), 0,48 ms sous Linux |
Même corpus, moteur Python seul | 3,9 ms sous Windows, 3,7 ms sous Linux |
Texte de 10 Mo | 2 s |
Service, texte de 2 Ko de bout en bout | médiane 5,2 ms, 99 % des requêtes sous 8,6 ms |
Service, 100 PDF de 10 Mo envoyés ensemble | tous traités en 8,7 s |
Service, 100 fichiers de 10 Mo (Word, PDF, Excel, texte) | tous traités en 34,8 s |
Les temps du service comprennent l'isolement de chaque requête dans un processus neuf. Le noyau Rust donne des résultats identiques au moteur Python, qui reste la référence. Méthode et détails : docs/ARCHITECTURE.md et deploy/README.md.
Nous écrire / Contact us
FR. Demandes d'évolution, problèmes de performance, identifiants mal traités ou autres problèmes : ouvrez une issue. Ne collez jamais de données personnelles réelles dans une issue : reproduisez le problème avec un exemple fictif. Une faille de sécurité se signale en privé (voir SECURITY.md). Contribuer : CONTRIBUTING.md.
EN. Feature requests, performance problems, mishandled identifiers or other problems: open an issue. Never paste real personal data into an issue: reproduce the problem with a fictitious example. Report security vulnerabilities privately (see SECURITY.md). Contributing: CONTRIBUTING.md.
Un outil offert, remerciements / A gift, acknowledgements
FR. Chacun peut l'utiliser, s'en inspirer, le reprendre, sans rien imposer. Merci à Flow Line Intégration, qui fournit gratuitement le service en ligne. Conçu par Guillaume CLEMENT, CTO Data & IA. Données, polices et composants de tiers, avec leurs licences et attributions : THIRD_PARTY.md.
EN. Anyone may use it, learn from it, build on it, with nothing imposed. Thanks to Flow Line Intégration, which provides the online service free of charge. Designed by Guillaume CLEMENT, CTO Data & AI. Third-party data, fonts and components, with their licences and attributions: THIRD_PARTY.md.
Avertissement / Disclaimer
FR. Logiciel fourni « en l'état », sans garantie d'aucune sorte, expresse ou implicite. Guillaume CLEMENT et Flow Line Intégration déclinent toute responsabilité quant à son utilisation, notamment en cas de donnée personnelle non détectée. Aucune détection automatique n'est exhaustive : des éléments de contexte (fonction, lieu, date, événement rare) peuvent permettre une ré-identification indirecte. Gardien RGPD n'est ni une certification de conformité RGPD ni un conseil juridique ; chaque responsable de traitement reste seul responsable de sa conformité.
EN. Software provided "as is", without warranty of any kind, express or implied. Guillaume CLEMENT and Flow Line Intégration accept no liability for its use, including for undetected personal data. No automated detection is exhaustive: contextual details (role, place, date, rare event) may allow indirect re-identification. GDPR Guardian is neither a GDPR compliance certification nor legal advice; each controller remains solely responsible for its own compliance.
Feuille de route et choix techniques : docs/PLAN.md. Architecture (noyau Rust, contrat de parité avec la référence Python, service à un processus par requête) : docs/ARCHITECTURE.md. Déploiement : deploy/README.md. Sur le poste : docs/LOCAL.md. Publication d'une version : docs/PUBLISHING.md. Protocole public d'auto-évaluation : docs/PROTOCOLE.md ; corpus réels : docs/CORPUS_REELS.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
Detect and redact PII and secrets (API keys, tokens) in text, HTML or PDF before it reaches an LLM.
Convert PDF, Word, Excel and scanned documents to Markdown, tables and RAG chunks. OCR.
Detect and redact PII and secrets before text reaches an LLM, with reversible placeholders.
Convert PDF, Word, Excel, PowerPoint, e-mails and web pages to clean Markdown for LLMs.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides local anonymization of Czech legal documents by replacing sensitive entities with pseudonyms to ensure privacy during LLM interactions. It allows users to safely process documents like contracts and judgments by keeping original data offline and facilitating local deanonymization.55MIT
- AlicenseAqualityAmaintenanceSanitizes text and files by removing PII, secrets, and custom patterns locally before sending to LLMs, with optional reverse-scrubbing.3303 npm124 PyPI2MIT
- AlicenseAqualityAmaintenancePrivacy layer for healthcare AI agents. Pseudonymises patient identifiers (NHS numbers, names, dates of birth, addresses; UK and US) into labelled tokens locally before text reaches an agent, then restores the originals afterwards, keeping the token map out of agent context.78MIT No Attribution
- AlicenseAqualityCmaintenanceEnables local, in-memory de-identification of PII, PHI, and credentials with deterministic reversible surrogate tokens before LLM transmission, then restores originals from volatile session mappings and audits for exposures without network egress or disk writes.547 npmApache 2.0