mcpField
C
Czech PII Anonymizer & NLP

Czech PII Anonymizer & NLP

本地服务
github.com安全411 周前更新

关于 Czech PII Anonymizer & NLP

anonymize-mcp 将 LINDAT / ÚFAL 的 NLP 工具作为 MCP 服务提供,面向处理捷克语及多语言文本的团队。它支持 80 多种 PII 模式的脱敏,并可在本地零外发模式运行。

主要功能

  1. 01覆盖 80 多种 PII 模式的脱敏
  2. 0235 种语言的实体识别与形态分析
  3. 038 种语言互译
  4. 04捷克语可读性分析与拼写校正
  5. 05本地零外发处理模式

适用场景

  1. 01将法律或医疗文档脱敏后用于 AI 审阅
  2. 02识别多语言文档中的人物与机构
  3. 03分析文本形态或检查捷克语拼写
  4. 04在不发送文本出设备时处理敏感信息

MCP 相关

这是一个通过 stdio 传输的 MCP 服务,向 MCP 客户端提供 6 种文本处理工具。默认模式使用公开的 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 个行业的 80 多种 PII 模式 + 国际范围(US/UK/DE/FR/IT/ES/PL/RU/IN、28 个国家的 EU VAT、30 多个国家的 IBAN、加密货币、API 令牌)、8 种语言之间的翻译(17 个直接语对 + 自动 EN 中转)、可读性分析和文本校对。

🔒 新增(v0.10.0):零外传本地模式——完全离线匿名化,文本不会离开设备。适用于 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 的 NER(丰富的 CNEC 2.0 标注集)+ 另外 34 种语言(UNER PER/ORG/LOC),支持自动检测
anonymizeMasKIT + NameTag生产级假名化:使用正则表达式预处理,覆盖 80 多种 PII 模式——捷克语 + 国际范围(30 多个国家的 IBAN、28 个国家的 EU VAT、US SSN/EIN、DE/UK/FR/IT/ES/PL/RU/IN 身份证件、加密货币、API 令牌)。可选启用 placeholder_mode(确定性生成 OSOBA1/MESTO1)。🔒 零外传本地模式(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(书面挪威语 + 新挪威语)
  • 🇨🇳 ZH · 🇦🇪 AR · 🇹🇷 TR · 🇻🇳 VI · 🇮🇳 HI · 🇮🇱 HE · 🇯🇵 JA · 🇰🇷 KO · 🇹🇭 TH

适用对象(行业 + 使用场景)

在 9 个行业中经过压力测试,使用 12.7KB 跨行业档案——结果是单次调用捕获 94/94 个唯一 PII。另有 国际语料库 17/17(US/UK/DE/FR/IT/ES/PL/RU/IN + 加密货币 + 学术 + 车队):

行业使用场景MCP 可处理的 PII
⚖️ 法律在 AI 审查前匿名化档案,满足 GDPR 合规要求姓名、个人识别号、地址、案件编号、案号、IBAN、身份证、数据邮箱
🏥 医疗用于研究的出院报告、住院统计个人识别号、医疗机构识别号、保险号、医生联系方式——保留 MKN-10 临床代码
🎓 科学 / 学术同行评审、出版物引用ORCID、Researcher ID、同事的电子邮件、资助项目
💳 银行合规、将银行对账单交给 AI 处理、报送银行账户、银行卡、IBAN、可变/常量/特定符号、对账单表头
🏠 房地产 / 地籍匿名化地籍登记摘录、合同土地登记编号、地块、地籍区、所有者 + 个人识别号 + 地址
🚗 保险公司理赔、AI 分析VIN、车牌号、保单号、车辆登记证、身份证、被保险人的个人识别号
📜 公证人用于 AI 摘要的公证文书公证文书、身份证、公证人的数据邮箱、案号
📚 教务处在读证明、学生统计学生编号、学号、ISIC、学生联系方式
🔬 研究 / NGO匿名化用于研究伦理审查的语料库以上所有内容 + 保留临床/法律代码

多语言技术栈还支持 35 种语言(法律文档 SK/EN/DE/PL/UK/RU/FR/HI/ES/IT/AR + 另外 24 种已测试 NER 和形态分析;翻译不在 Charles 直接配对范围内时自动以 EN 为中转语言)。从 v0.8.4 起支持屏蔽 CJK 姓名(中文/日文)。

行业 #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

或从 source 安装:

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 种语言的形态分析(961 个 UDPipe 模型)
  • 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 package,“Cowork” UI):截至 05/2026,仅支持通过 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 中只需输入例如:

使用 placeholder_mode 匿名化 dokument.md 中的文本,并返回干净版本。

从文档中提取所有人物、法院和案号。

客户带来了一份乌克兰语文档——帮我把它翻译成捷克语,查找实体并分析形态。

用 PONK 处理我的诉状——返回已触发的语法规则。

客户从手机发来了一段没有变音符号的文本——用 Korektor 补上变音符号。

作者

anonymize-mcp 由 Michal Bürgermeister(@Buggy1111,[email protected])编写——一位来自捷克共和国的独立开发者。

这是一个围绕 ÚFAL MFF UK 优秀工具的封装——没有 NameTag、MasKIT、UDPipe、PONK、Korektor 和 Charles Translator,这个 MCP 服务就不可能存在。感谢整个 ÚFAL 团队(Jana Straková、Milan Straka、Jiří Mírovský、Barbora Hladká、Silvie Cinková 等人)多年来为捷克语打造生产级 NLP 工具。

欢迎在 github.com/Buggy1111/anonymize-mcp 提交 Issue、PR 和反馈。

许可证

本工具采用 MIT 许可证(参见 LICENSE)。

它底层使用四个独立工具,每个工具都有自己的许可证:

组件作者软件许可证模型许可证
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、个人 ID、案号等会被替换为占位符(OSOBA1、MESTO1、TELEFON1……),不会进行任何网络调用。

配置(环境变量):

变量含义
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(6 个 LINDAT REST 端点)

  • 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。