文档匿名化服务器

用于匿名化捷克法律文档的本地服务器,可替换个人数据为伪名,确保数据不离开用户设备。

  • by Dbuzek
  • Python
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 Dbuzek/anonymix-mcp

使用说明

Anonymix MCP

MCP server pro anonymizaci českých právních dokumentů (smlouvy, rozsudky, žaloby).

Nahrazuje osobní údaje pseudonymy [OSOBA_1], [IČO_1] apod. — lokálně na vašem počítači, žádná data neopouštějí váš stroj.

Instalace

Požadavky

  • Python 3.10+
  • uv nebo pip

Krok 1: Přidat MCP server do Claude Code

Přidejte do ~/.claude/settings.json:

{
  "mcpServers": {
    "anonymix": {
      "command": "uvx",
      "args": ["anonymix-mcp"]
    }
  }
}

Krok 2: Přidat skill

Zkopírujte SKILL.md do vašeho projektu nebo do globálního .claude/ adresáře.

Krok 3: Restart Claude Code

Při prvním použití se automaticky stáhnou jazykové modely (~290 MB celkem):

  • NameTag CNEC 2.0 (~8 MB) — češtinový NER model ÚFAL
  • DistilBERT multilingual (~280 MB) — záložní NER model

Alternativní instalace

Přes pip

pip install anonymix-mcp
anonymix-mcp  # spustí MCP server

Pro vývoj

git clone https://github.com/dbuze/anonymix-mcp
cd anonymix-mcp
pip install -e ".[nametag,bert,gui]"
anonymix-mcp

Ruční stažení modelů

python scripts/download_models.py

Použití

Po instalaci jsou v Claude Code dostupné tyto MCP tools:

anonymize_text(text, depth="thorough")
  → anonymized_text, mapping_id, entity_count

anonymize_file(file_path, depth="thorough")
  → anonymized_path, mapping_id, entity_count

deanonymize(text, mapping_id)
  → original_text, replacements_made

get_status()
  → verze, dostupné modely, počet sessions

start_gui(port=8501)
  → URL Streamlit GUI pro vizuální review

Příklad workflow

  1. Uložte citlivý dokument jako smlouva.pdf
  2. V Claude Code: "Anonymizuj mi smlouva.pdf"
  3. Claude zavolá anonymize_file("smlouva.pdf") → vrátí smlouva_anonymized.txt + mapping_id
  4. Claude pracuje s anonymizovaným textem
  5. "Deanonymizuj výsledek" → Claude zavolá deanonymize(výsledek, mapping_id)

Bezpečnost

Anonymizace probíhá výhradně lokálně — Claude nikdy neuvidí originální data.

Pravidla:

  • mapping_id je pouze UUID odkaz, ne samotná data
  • Mapovací tabulky jsou v ~/.cache/anonymix-mcp/sessions/ — jen lokálně
  • Claude nesmí tyto soubory číst (viz CLAUDE.md)

Detekované entity

Typ Příklad Pseudonym
Osoba Jan Novák, Ing. Jana Procházková [OSOBA_1]
Organizace Firma s.r.o., Ministerstvo [ORGANIZACE_1]
Místo/adresa Praha, ul. Mánesova 5 [MÍSTO_1]
Rodné číslo 850101/1234 [RČ_1]
IČO 12345678 [IČO_1]
DIČ CZ12345678 [DIČ_1]
Bankovní účet 123456789/0800 [ÚČET_1]
Telefon +420 777 123 456 [TEL_1]
E-mail jan@firma.cz [EMAIL_1]
Datum 15. 3. 2024 [DATUM_1]
Částka 50 000 Kč [ČÁSTKA_1]
Spisová značka 12 C 345/2020 [SPIS_ZN_1]
Datová schránka ab12cde [DS_1]

GUI (volitelné)

Pro vizuální kontrolu a ruční úpravu entit:

pip install anonymix-mcp[gui]
streamlit run gui/app.py

Nebo přes MCP tool: start_gui() → URL v prohlížeči.


Licence

MIT License — viz LICENSE

Jazykové modely:

  • NameTag CNEC 2.0: CC BY-NC-SA (ÚFAL, MFF UK) — pouze pro nekomerční použití
  • DistilBERT: Apache 2.0 (Davlan / HuggingFace)