Skip to main content
Glama
README.md
# 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`:

```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

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

### Pro vývoj

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

### Ruční stažení modelů

```bash
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:

```bash
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)

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: anonymize_file handles file processing, anonymize_text processes raw text, deanonymize reverses the process, get_status provides server information, and start_gui launches a visual interface. The descriptions clearly differentiate between file vs text processing, anonymization vs deanonymization, and operational vs administrative functions.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with clear, descriptive names: anonymize_file, anonymize_text, deanonymize, get_status, start_gui. The naming convention is uniform throughout, using snake_case consistently and clearly indicating each tool's primary action and target.

Tool Count5/5

Five tools is perfectly appropriate for this document anonymization server. The set covers the core workflow (anonymize files/text, deanonymize), provides operational visibility (get_status), and offers a user-friendly interface option (start_gui). Each tool has a clear purpose and contributes meaningfully to the server's functionality without redundancy.

Completeness4/5

The tool set covers the essential anonymization workflow comprehensively: input processing (both file and text), reversal capability, system status, and a GUI option. The only minor gap is the lack of batch processing capabilities or configuration management tools, but agents can work around this by iterating through individual files. The core lifecycle of anonymize → deanonymize is fully supported.

Maintenance

ActivityInactive
ResponsivenessNo issues