anonymize-mcp

anonymize-mcp

Anonymize PII and redact text for GDPR using real NLP, not just regex. Czech-first, built on ÚFAL/LINDAT (MasKIT + NameTag NER) with 80+ PII patterns. Also multilingual NER across 35+ languages, morphology (UDPipe), machine translation, and spellcheck. 6 tools. Non-commercial use only. Install: pip install anonymize-mcp

Category
Visit Server

README

anonymize-mcp

<!-- mcp-name: io.github.Buggy1111/anonymize-mcp -->

CI PyPI Python License: MIT

MCP server obalující NLP nástroje LINDAT / ÚFAL MFF UK — multilingvální NER + morfologie (35 jazyků auto-detect), production-grade anonymizace s 80+ PII patterny napříč 9 sektory + mezinárodním pokrytím (US/UK/DE/FR/IT/ES/PL/RU/IN, EU VAT 28 zemí, IBAN 30+ zemí, crypto, API tokeny), překlad mezi 8 jazyky (17 přímých párů + auto EN-pivot), čitelnost a korektura.

🔒 Nově (v0.10.0): zero-egress lokální mód — plně offline anonymizace, žádný text neopustí stroj. Pro GDPR / právní / zdravotnická data. Zapnutí: ANONYMIZE_MCP_LOCAL=1.

Pouze pro nekomerční použití. Modely NameTag a UDPipe jsou pod CC BY-NC-SA. LINDAT API je bezplatné pro akademické a osobní použití. Pro komerční nasazení kontaktujte autory nástrojů a ufal@ufal.mff.cuni.cz.

Dříve ufal-mcp — přejmenováno na žádost ÚFAL MFF UK (v0.8.0).

Co umí

Tool Backend K čemu
extract_entities NameTag 3 NER pro CZ (bohatý CNEC 2.0 tagset) + 34 dalších jazyků (UNER PER/ORG/LOC) s auto-detekcí
anonymize MasKIT + NameTag Production-grade pseudonymizace: regex pre-pass přes 80+ PII patternů — CZ + international (IBAN 30+ zemí, EU VAT 28, US SSN/EIN, DE/UK/FR/IT/ES/PL/RU/IN ID, crypto, API tokeny). Opt-in placeholder_mode (deterministické OSOBA1/MESTO1). 🔒 Zero-egress lokální mód (ANONYMIZE_MCP_LOCAL=1) — plně offline, viz níže.
analyze_morphology UDPipe Tokenizace, lemmatizace, POS tagging, závislostní parse — auto-detect 35 jazyků
check_readability PONK Čitelnost CZ — 4 feature sety: metrics + rules + lexical surprise + speech acts
correct_text Korektor CZ spell checker + auto-doplnění/odstranění diakritiky
translate_text Charles Translator Překlad mezi 8 jazyky (CZ/EN/FR/DE/PL/RU/UK/HI), 17 přímých párů + auto EN-pivot

Podporované jazyky — NER + morfologie (35 jazyků, auto-detect)

  • 🇨🇿 CZ · 🇸🇰 SK · 🇬🇧 EN · 🇩🇪 DE · 🇫🇷 FR · 🇮🇹 IT · 🇪🇸 ES · 🇵🇹 PT · 🇳🇱 NL
  • 🇵🇱 PL · 🇭🇺 HU · 🇷🇴 RO · 🇸🇮 SL · 🇧🇬 BG · 🇬🇷 EL · 🇭🇷 HR · 🇷🇸 SR · 🇺🇦 UK · 🇷🇺 RU
  • 🇫🇮 FI · 🇱🇹 LT · 🇱🇻 LV · 🇪🇪 ET · 🇩🇰 DA · 🇸🇪 SV · 🇳🇴 NO (Bokmål + Nynorsk)
  • 🇨🇳 ZH · 🇦🇪 AR · 🇹🇷 TR · 🇻🇳 VI · 🇮🇳 HI · 🇮🇱 HE · 🇯🇵 JA · 🇰🇷 KO · 🇹🇭 TH

Pro koho je tohle (sektory + use cases)

Stress-tested napříč 9 sektory na 12.7KB cross-sektorovém spisu — výsledek 94/94 unique PII chyceno v jednom volání. Plus international corpus 17/17 (US/UK/DE/FR/IT/ES/PL/RU/IN + crypto + akademické + fleet):

Sektor Use case PII které MCP zvládne
⚖️ Právo Anonymizace spisu před AI review, GDPR compliance Jména, RČ, adresy, č.j., sp.zn., IBAN, OP, datovky
🏥 Medicína Propouštěcí zprávy pro výzkum, statistika hospitalizací RČ, IČZ, č. pojištěnce, kontakty lékaře — klinické kódy MKN-10 zachované
🎓 Věda / akademie Peer review, citace v publikaci ORCID, Researcher ID, e-maily kolegů, granty
💳 Bankovnictví Compliance, výpisy do AI, vykazování Č.ú., karta, IBAN, VS/KS/SS, header výpisu
🏠 Reality / katastr Anonymizace výpisů z KN, smluv LV, parcely, k.ú., vlastník + RČ + adresa
🚗 Pojišťovny Likvidace škod, AI analýza VIN, SPZ, č. pojistky, TP, OP, RČ pojištěného
📜 Notáři Notářské zápisy pro AI summary NZ, OP, datovka notáře, sp. zn.
📚 Studijní oddělení Potvrzení o studiu, statistika studentů UČO, studijní č., ISIC, kontakty studenta
🔬 Výzkum / NGO Anonymizace korpusu pro etiku výzkumu Vše výše + zachování klinických/právních kódů

Plus 35 jazyků v multilingvální stack (legal docs SK/EN/DE/PL/UK/RU/FR/HI/ES/IT/AR + 24 dalších otestovány na NER+morfologii, auto EN-pivot pro překlad mimo přímé Charles páry). CJK jména (čínská/japonská) maskována od v0.8.4.

Sektor #10 — International

Use case PII které MCP zvládne
🌍 US/UK/DE/FR/IT/ES/PL/RU/IN dokumenty SSN, NIN, Steuer-ID, NIR, Codice Fiscale, DNI, PESEL, Aadhaar, PAN, cestovní pasy (8 jazyků) — auto bez lang= parametru
💰 Crypto/Web3 outreach, smart contracts Bitcoin (Legacy/P2SH/Bech32/Taproot), Ethereum, Monero, XRP, TRON
🔐 DevOps logs / API key leak detection OpenAI, Anthropic, OpenRouter, GitHub PAT, AWS, Google, Slack, Stripe tokeny
🏢 Cross-border B2B Foreign companies (SARL/SAS/GmbH/AG/Ltd/LLC/Inc/SpA/SL/Sp. z o.o.) + EU VAT (28 zemí) + IBAN (30+ zemí)

Instalace

Z PyPI (doporučeno):

pip install anonymize-mcp

Nebo ze source:

git clone https://github.com/Buggy1111/anonymize-mcp.git
cd anonymize-mcp
pip install -e .

Registrace v MCP klientovi

anonymize-mcp je standardní MCP server (stdio transport). Po registraci a restartu klienta máš k dispozici 6 nástrojů:

  • mcp__anonymize__extract_entities — multilingvální NER (35 jazyků auto-detect)
  • mcp__anonymize__anonymize — production-grade pseudonymizace CZ (regex pre-pass + stop-list + placeholder mode)
  • mcp__anonymize__analyze_morphology — morfologie 35 jazyků auto-detect (UDPipe 961 modelů)
  • mcp__anonymize__check_readability — čitelnost CZ (4 feature sety)
  • mcp__anonymize__correct_text — spell check + diakritika CZ
  • mcp__anonymize__translate_text — překlad mezi 8 jazyky

Claude Code (terminál)

claude mcp add anonymize -s user -- anonymize-mcp

Claude Desktop

Starší Claude Desktop (Mac .app z anthropic.com, Windows .exe installer):

Edituj ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) nebo %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "anonymize": {
      "command": "anonymize-mcp"
    }
  }
}

Nová Claude Desktop (Microsoft Store / appx package, "Cowork" UI): k 05/2026 podporuje pouze remote MCP servery přes HTTP URL. Lokální stdio MCP servery jako anonymize-mcp zde přidat nelze.

Na Windows může být anonymize-mcp.exe mimo PATH (typicky C:\Python\Python3xx\Scripts\anonymize-mcp.exe). V configu pak použij plnou cestu.

OpenAI Codex CLI (autorem netestováno)

Edituj ~/.codex/config.toml:

[mcp_servers.anonymize]
command = "anonymize-mcp"

Cursor (autorem netestováno)

Edituj .cursor/mcp.json v projektu (nebo globálně ~/.cursor/mcp.json):

{
  "mcpServers": {
    "anonymize": {
      "command": "anonymize-mcp"
    }
  }
}

Windsurf, Cline, Zed, VS Code Copilot Agent (autorem netestováno)

Stejný mcpServers JSON formát — viz dokumentace daného klienta. command: "anonymize-mcp" (případně absolutní cesta).

Použití

V Claude Code stačí napsat například:

Anonymizuj text z dokument.md v placeholder_mode a vrať mi čistou verzi.

Vytáhni z dokumentu všechny osoby, soudy a č.j.

Klient přinesl ukrajinský dokument — přelož mi ho do češtiny, najdi entity a zanalyzuj morfologii.

Projeď moje podání přes PONK — vrať aktivovaná gramatická pravidla.

Klient mi posílá text bez diakritiky z mobilu — doplň diakritiku přes Korektor.

Autor

anonymize-mcp napsal Michal Bürgermeister (@Buggy1111, michalbugy12@gmail.com) — nezávislý vývojář z ČR.

Wrapper kolem skvělých nástrojů ÚFAL MFF UK — bez NameTag, MasKIT, UDPipe, PONK, Korektor a Charles Translator by tenhle MCP server neexistoval. Díky celému ÚFAL týmu (Jana Straková, Milan Straka, Jiří Mírovský, Barbora Hladká, Silvie Cinková a další) za roky práce na production-grade NLP nástrojích pro češtinu.

Issues, PR a feedback jsou vítané na github.com/Buggy1111/anonymize-mcp.

Licence

Tento nástroj má MIT licenci (viz LICENSE).

Pod ním jsou čtyři samostatné nástroje, každý s vlastní licencí:

Komponenta Autoři Licence software Licence modelů
NameTag 3 Jana Straková, Milan Straka MPL 2.0 CC BY-NC-SA (NON-commercial)
UDPipe Milan Straka, Jana Straková MPL 2.0 CC BY-NC-SA (NON-commercial)
MasKIT Jiří Mírovský, Barbora Hladká MPL 2.0 (rule-based)
PONK Jiří Mírovský, Silvie Cinková, Barbora Hladká + autoři podaplikací: Ivan Kraus, Arnold Stanovský, Jan Černý, Ivana Kvapilíková, Tomáš Polák, Silvie Cinková MPL 2.0 (rule-based + UDPipe → CC BY-NC-SA)

Důležité: tento nástroj nevolá lokální instalaci, ale veřejné API služby (lindat.mff.cuni.cz, quest.ms.mff.cuni.cz). Bezplatné pro akademické a osobní použití. Hromadný / placený / produkční traffic vyžaduje explicitní souhlas autorů a provozovatele API.

Bezpečnost

  • V cloudovém módu posíláš text na externí server (quest.ms.mff.cuni.cz, lindat.mff.cuni.cz). Před odesláním citlivých dat nejdřív projeď text přes anonymize.
  • Pro plně privátní zpracování použij zero-egress lokální mód (níže) — žádný text neopustí tvůj stroj.

Zero-egress / on-prem mód 🔒

Anonymizace kompletně lokálně — žádné volání externího API, žádný text neopustí stroj. Pro GDPR / právní / zdravotnická data, kde citlivý obsah nesmí ven.

pip install "anonymize-mcp[local]"          # přidá ufal.nametag (lokální NER)
python -m anonymize_mcp.local_backend        # jednorázově stáhne model (~31 MB)
ANONYMIZE_MCP_LOCAL=1 anonymize-mcp          # spusť server v lokálním módu

V Claude Code stačí přidat env proměnnou k registraci:

claude mcp add anonymize -s user -e ANONYMIZE_MCP_LOCAL=1 -- anonymize-mcp

Jak to funguje: anonymize přeskočí MasKIT API a anonymizuje přes lokální regex pre-pass (80+ vzorů) + NameTag NER běžící v procesu (ufal.nametag + CNEC 2.0 model). Jména, města, instituce, telefony, IČO, RČ, č.j. atd. se nahradí placeholdery (OSOBA1, MESTO1, TELEFON1…) bez jediného síťového volání.

Konfigurace (env):

Proměnná Význam
ANONYMIZE_MCP_LOCAL=1 Zapne zero-egress mód
ANONYMIZE_MCP_NAMETAG_MODEL=/cesta/model.ner Vlastní cesta k modelu (jinak auto-download do ~/.cache/anonymize-mcp/models/)
ANONYMIZE_MCP_NO_DOWNLOAD=1 Zakáže auto-download (model musíš dodat ručně)

Tradeoff: lokální NameTag 1 (CNEC 2.0, CC BY-NC-SA, non-commercial) je o něco jednodušší než cloudový NameTag 3 a vynechává MasKIT rule-engine — výměnou za nulový egress. Ostatní nástroje (extract_entities, translate_text, …) v lokálním módu zatím volají cloud API; lokální je anonymize (killer feature).

Použité API (6 LINDAT REST endpointů)

  • POST https://lindat.mff.cuni.cz/services/nametag/api/recognize — NER
  • POST https://lindat.mff.cuni.cz/services/udpipe/api/process — morfologie
  • POST https://lindat.mff.cuni.cz/services/korektor/api/correct — spell check
  • POST https://lindat.mff.cuni.cz/services/translation/api/v2/models/{src-tgt} — překlad
  • POST https://quest.ms.mff.cuni.cz/maskit/api/process — anonymizace
  • POST https://quest.ms.mff.cuni.cz/ponk/api/process — čitelnost

Vývoj

python3 -m venv .venv
source .venv/bin/activate
pip install -e .

# Smoke test (volá živé API)
python test_live.py

Release proces

PyPI publish je automatický přes Trusted Publisher (OIDC).

# Bump version v pyproject.toml a src/anonymize_mcp/__init__.py
git commit -am "release: v0.X.0"
git tag v0.X.0
git push origin main --tags

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured