mcpField
C
Czech PII Anonymizer & NLP

Czech PII Anonymizer & NLP

ローカル
github.comセキュリティ411 週間前に更新

Czech PII Anonymizer & NLP について

anonymize-mcpは、LINDAT / ÚFALのNLPツールをMCPサーバーとして提供し、チェコ語や多言語テキストを扱うチーム向けです。PIIの匿名化に加え、ローカルのゼロエグレスモードも備えています。

主な機能

  1. 0180種類以上のPIIパターンによる匿名化
  2. 0235言語の固有表現・形態素解析
  3. 038言語間の翻訳
  4. 04チェコ語の可読性・スペルチェック
  5. 05ローカルのゼロエグレス処理

活用シーン

  1. 01AIレビュー前の法律・医療文書の匿名化
  2. 02多言語文書から人物や組織を抽出
  3. 03形態素解析やチェコ語のスペル確認
  4. 04端末外へ送信せずに機密テキストを処理

MCP 対応

stdio通信のMCPサーバーとして、6種類のテキスト処理ツールをMCPクライアントに公開します。通常は公開LINDAT APIを使い、ローカルモードでは匿名化と固有表現抽出をオフラインで実行できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"buggy1111-anonymize": {
"command": "uvx",
"args": [
"anonymize-mcp"
]
}
}
}
起動コマンドuvx anonymize-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypianonymize-mcp0.10.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

anonymize-mcp

CI PyPI Python License: MIT

LINDAT / ÚFAL MFF UK の NLP ツールをラップする MCP サーバーです。多言語 NER + 形態論(35 言語を自動検出)、9 セクターと国際対応(US/UK/DE/FR/IT/ES/PL/RU/IN、EU VAT 28 か国、IBAN 30 か国以上、暗号資産、API トークン)にわたる 80 種類以上の PII パターンを備えた、本番環境対応の匿名化、8 言語間の翻訳(17 の直接ペア + EN 経由の自動翻訳)、可読性分析、校正を提供します。

🔒 新機能(v0.10.0):zero-egress ローカルモード — 完全オフラインで匿名化でき、テキストがマシンの外に送信されることはありません。GDPR 対応の法務・医療データ向けです。有効化するには、ANONYMIZE_MCP_LOCAL=1 を設定します。

🌐 インストール不要で試したい場合は、無料でオンライン利用できます → anonymizace.js.org — 匿名化、NER、形態論、チェコ語の校正・翻訳をブラウザーで直接利用できます。この MCP サーバーの関連ウェブサイトです。

非商用利用のみ。 NameTag および UDPipe のモデルは CC BY-NC-SA ライセンスです。LINDAT API は学術・個人利用の場合、無料です。商用導入については、ツールの作者および [email protected] にお問い合わせください。

非公式のコミュニティプロジェクトです — ÚFAL MFF UK による運営・承認は受けていません。独立した開発者による公開 LINDAT API のラッパーです。名称の変遷:ufal-mcp → wrapper-mcp(v0.8.0、ÚFAL の要請による)→ anonymize-mcp(v0.9.0)。非推奨の wrapper-mcp パッケージをインストールしている場合は、pip install anonymize-mcp に切り替えてください。同じプロジェクトです。

できること

ツールバックエンド用途
extract_entitiesNameTag 3CZ(豊富な CNEC 2.0 タグセット)+ その他 34 言語(UNER PER/ORG/LOC)の NER、自動検出対応
anonymizeMasKIT + NameTag本番環境対応の仮名化:正規表現による事前処理で 80 種類以上の PII パターンを検出 — CZ + 国際対応(IBAN 30 か国以上、EU VAT 28 か国、US SSN/EIN、DE/UK/FR/IT/ES/PL/RU/IN の ID、暗号資産、API トークン)。オプションの placeholder_mode(決定的な OSOBA1/MESTO1)。🔒 zero-egress ローカルモード(ANONYMIZE_MCP_LOCAL=1)— 完全オフライン、詳細はこちら。
analyze_morphologyUDPipeトークン化、レンマ化、品詞タグ付け、係り受け解析 — 35 言語を自動検出
check_readabilityPONKチェコ語の可読性 — 4 つの特徴セット:指標 + ルール + 語彙的意外性 + 発話行為
correct_textKorektorチェコ語スペルチェッカー + ダイアクリティカルマークの自動追加・削除
translate_textCharles Translator8 言語間の翻訳(CZ/EN/FR/DE/PL/RU/UK/HI)、17 の直接ペア + EN 経由の自動翻訳
対応言語 — NER + 形態論(35 言語、自動検出)
  • 🇨🇿 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

対象となる方(業界+ユースケース)

9つの業界でストレステストを実施し、12.7KBの業界横断型文書を処理した結果、1回の呼び出しで固有のPIIを94/94件検出しました。さらに、国際コーパスは17/17件(US/UK/DE/FR/IT/ES/PL/RU/IN+暗号資産+学術+フリート)です。

業界ユースケースMCP が処理できる PII
⚖️ 法律AI レビュー前の文書の匿名化、GDPR コンプライアンス氏名、国民識別番号、住所、文書番号、事件番号、IBAN、ID カード、データボックス
🏥 医療研究用の退院サマリー、入院統計国民識別番号、医療提供者識別番号、被保険者番号、医師の連絡先 — 臨床コード MKN-10 は保持
🎓 科学/学術査読、出版物の引用ORCID、Researcher ID、同僚のメールアドレス、助成金
💳 銀行コンプライアンス、AI 用の明細書、報告口座番号、カード、IBAN、VS/KS/SS、明細書ヘッダー
🏠 不動産/地籍KN 登記簿謄本、契約書の匿名化LV、地番、地籍区域、所有者+国民識別番号+住所
🚗 保険会社保険金請求処理、AI 分析VIN、ナンバープレート、保険証券番号、車両登録証、ID カード、被保険者の国民識別番号
📜 公証人AI 要約用の公正証書NZ、ID カード、公証人のデータボックス、事件番号
📚 学生課在学証明書、学生統計学生番号、在学番号、ISIC、学生の連絡先
🔬 研究/NGO研究倫理審査用コーパスの匿名化上記すべて+臨床/法律コードの保持

さらに、マルチリンガルスタックで35言語に対応しています(法律文書では SK/EN/DE/PL/UK/RU/FR/HI/ES/IT/AR+その他24言語をNER+形態論でテスト済み。直接の Charles ペア以外の翻訳では自動で英語を経由します)。CJK の名前(中国語/日本語)は v0.8.4 からマスキングされます。

業界 #10 — 国際
ユースケースMCP が処理できる PII
🌍 US/UK/DE/FR/IT/ES/PL/RU/IN の文書SSN、NIN、Steuer-ID、NIR、Codice Fiscale、DNI、PESEL、Aadhaar、PAN、パスポート(8言語)— lang= パラメーターなしで自動処理
💰 暗号資産/Web3 のアウトリーチ、スマートコントラクトBitcoin(Legacy/P2SH/Bech32/Taproot)、Ethereum、Monero、XRP、TRON
🔐 DevOps ログ/API キー漏えい検出OpenAI、Anthropic、OpenRouter、GitHub PAT、AWS、Google、Slack、Stripe のトークン
🏢 国境を越えた B2B外国企業(SARL/SAS/GmbH/AG/Ltd/LLC/Inc/SpA/SL/Sp. z o.o.)+EU VAT(28か国)+IBAN(30か国以上)

インストール

PyPI から(推奨):

pip install anonymize-mcp

またはソースから:

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

MCP クライアントへの登録

anonymize-mcp は標準の MCP サーバー(stdio トランスポート)です。登録してクライアントを再起動すると、6つのツールを利用できます。

  • mcp__anonymize__extract_entities — 多言語 NER(35言語を自動検出)
  • mcp__anonymize__anonymize — 本番環境向けの高品質な CZ 擬似匿名化(正規表現の事前処理+ストップリスト+プレースホルダーモード)
  • mcp__anonymize__analyze_morphology — 35言語の形態論を自動検出(UDPipe のモデル961種)
  • mcp__anonymize__check_readability — CZ の読みやすさチェック(4つの特徴セット)
  • mcp__anonymize__correct_text — CZ のスペルチェック+ダイアクリティカルマーク
  • mcp__anonymize__translate_text — 8言語間の翻訳
Claude Code(ターミナル)
claude mcp add anonymize -s user -- anonymize-mcp
Claude Desktop

旧バージョンの Claude Desktop(anthropic.com の Mac .app、Windows の .exe インストーラー):

~/Library/Application Support/Claude/claude_desktop_config.json(Mac) または %APPDATA%\Claude\claude_desktop_config.json(Windows)を編集します。

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

新しい Claude Desktop(Microsoft Store/appx パッケージ、「Cowork」UI):2026年5月時点では、HTTP URL 経由のリモート MCP サーバーのみをサポートしています。anonymize-mcp のようなローカルの stdio MCP サーバーは、ここには追加できません。

Windows では、anonymize-mcp.exe が PATH に含まれていない場合があります(通常は C:\Python\Python3xx\Scripts\anonymize-mcp.exe)。その場合は、設定でフルパスを指定してください。

OpenAI Codex CLI (作者未テスト)

~/.codex/config.toml を編集します。

[mcp_servers.anonymize]
command = "anonymize-mcp"
Cursor (作者未テスト)

プロジェクト内の .cursor/mcp.json(またはグローバルの ~/.cursor/mcp.json)を編集します。

{
  "mcpServers": {
    "anonymize": {
      "command": "anonymize-mcp"
    }
  }
}
Windsurf、Cline、Zed、VS Code Copilot Agent (作者未テスト)

同じ mcpServers JSON 形式です。各クライアントのドキュメントを参照してください。command: "anonymize-mcp"(必要に応じて絶対パス)を指定します。

使用方法

Claude Code では、たとえば次のように入力するだけです。

dokument.md のテキストを placeholder_mode で匿名化して、クリーンなバージョンを返してください。

ドキュメントからすべての人物、裁判所、事件番号を抽出してください。

クライアントがウクライナ語のドキュメントを持ってきました。チェコ語に翻訳し、エンティティを見つけて形態論を分析してください。

私の申立書を PONK にかけて、適用された文法規則を返してください。

クライアントから携帯電話で入力したダイアクリティカルマークなしのテキストが送られてきました。Korektor でダイアクリティカルマークを補ってください。

作者

anonymize-mcp は、チェコ共和国を拠点とする独立系開発者の Michal Bürgermeister(@Buggy1111, [email protected])が作成しました。

優れた ÚFAL MFF UK のツールを包むラッパーです。NameTag、MasKIT、UDPipe、PONK、Korektor、Charles Translator がなければ、この MCP サーバーは実現しませんでした。チェコ語向けの本番環境で使える NLP ツールを長年開発してきた ÚFAL チーム全員(Jana Straková、Milan Straka、Jiří Mírovský、Barbora Hladká、Silvie Cinková ほか)に感謝します。

Issue、PR、フィードバックは github.com/Buggy1111/anonymize-mcp で歓迎します。

ライセンス

このツールは MIT ライセンスです(LICENSE を参照)。

その下には、各自のライセンスを持つ4つの独立したツールがあります。

コンポーネント作者ソフトウェアライセンスモデルライセンス
NameTag 3Jana Straková, Milan StrakaMPL 2.0CC BY-NC-SA(非商用)
UDPipeMilan Straka, Jana StrakováMPL 2.0CC BY-NC-SA(非商用)
MasKITJiří Mírovský, Barbora HladkáMPL 2.0(ルールベース)
PONKJiří Mírovský, Silvie Cinková, Barbora Hladká + サブアプリケーションの作者:Ivan Kraus, Arnold Stanovský, Jan Černý, Ivana Kvapilíková, Tomáš Polák, Silvie CinkováMPL 2.0(ルールベース + UDPipe → CC BY-NC-SA)

重要:このツールはローカルインストールではなく、公開 API サービス(lindat.mff.cuni.cz、quest.ms.mff.cuni.cz)を呼び出します。学術目的および個人利用は無料です。大量のトラフィック、有料利用、本番環境での利用には、作者および API 運営者の明示的な同意が必要です。

セキュリティ

  • クラウドモードでは、テキストが外部サーバー(quest.ms.mff.cuni.cz、lindat.mff.cuni.cz)に送信されます。機密データを送信する前に、必ずテキストを anonymize にかけてください。
  • 完全にプライベートな処理には、以下の ゼロエグレスのローカルモードを使用してください。テキストがマシンの外に出ることはありません。

ゼロエグレス/オンプレミスモード 🔒

完全にローカルで匿名化します。外部 API の呼び出しはなく、テキストがマシンの外に出ることもありません。機密情報を外部に送信できない、GDPR/法律/医療関連のデータ向けです。

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

Claude Code では、登録時に環境変数を追加するだけです。

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

仕組み: anonymize は MasKIT API をスキップし、ローカルの正規表現による事前処理(80 種類以上のパターン)と、プロセス内で実行される NameTag NER(ufal.nametag + CNEC 2.0 モデル)で匿名化します。名前、都市、機関、電話番号、会社 ID、個人識別番号、文書番号などを、ネットワーク呼び出しを一切行わずにプレースホルダー(OSOBA1、MESTO1、TELEFON1 など)に置き換えます。

設定(env):

変数意味
ANONYMIZE_MCP_LOCAL=1ゼロエグレスモードを有効にします
ANONYMIZE_MCP_NAMETAG_MODEL=/cesta/model.nerモデルのカスタムパス(指定しない場合は ~/.cache/anonymize-mcp/models/ に自動ダウンロード)
ANONYMIZE_MCP_NO_DOWNLOAD=1自動ダウンロードを無効にします(モデルは手動で用意する必要があります)
ANONYMIZE_MCP_LOCAL_ALLOW_CLOUD=1ローカルモードでもクラウドツールを明示的に許可します(それ以外の場合は拒否されます。詳細は以下を参照)

ローカルモードでローカル実行される機能(v0.10.1): anonymize と extract_entities は完全オフラインで実行されます(ローカルの CNEC 2.0 NER を使用します。多言語モデルには API が必要で、その場合はツールが警告を表示します)。その他のツール(translate_text、correct_text、check_readability、analyze_morphology)はテキストを ÚFAL API に送信するため、ゼロエグレスモードでは説明付きのエラーで拒否されます。ANONYMIZE_MCP_LOCAL_ALLOW_CLOUD=1 を設定すると、明示的に許可できます。

強化されたセットアップ(エアギャップ/監査対象のマシン): モデルを事前にダウンロードし(python -m anonymize_mcp.local_backend — SHA-256 を検証します)、ANONYMIZE_MCP_NO_DOWNLOAD=1 を設定してサーバーをデプロイしてください。これにより、プロセスがネットワーク接続を開くことはありません。

トレードオフ: ローカルの NameTag 1(CNEC 2.0、CC BY-NC-SA、非商用)はクラウド版の NameTag 3 よりもやや機能がシンプルで、MasKIT のルールエンジンも使用しません。その代わり、エグレスはゼロです。

使用する API(LINDAT REST エンドポイント 6 件)

  • POST https://lindat.mff.cuni.cz/services/nametag/api/recognize — NER
  • POST https://lindat.mff.cuni.cz/services/udpipe/api/process — 形態論
  • POST https://lindat.mff.cuni.cz/services/korektor/api/correct — スペルチェック
  • POST https://lindat.mff.cuni.cz/services/translation/api/v2/models/{src-tgt} — 翻訳
  • POST https://quest.ms.mff.cuni.cz/maskit/api/process — 匿名化
  • POST https://quest.ms.mff.cuni.cz/ponk/api/process — 可読性

開発

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

# Testy (272 offline testů; síťové: pytest -m network)
pip install -e ".[test]"
pytest -m "not network"

リリースプロセス

PyPI への公開は 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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。