关于 wrapper-mcp
anonymize-mcp 是封装 LINDAT / ÚFAL NLP 工具的 MCP 服务,面向需要处理多语言文本和敏感信息的工作。它提供实体识别、个人信息匿名化、形态分析、翻译及捷克语校对,并可启用零外发本地匿名化。
主要功能
- 0135 种语言实体识别与形态分析
- 02覆盖多类个人信息的匿名化
- 03支持离线零外发匿名化
- 048 种语言间翻译
- 05捷克语可读性、拼写与变音符号校正
适用场景
- 01将法律或医疗文档匿名化后用于审阅
- 02从多语言材料中提取人名、组织和地点
- 03分析文本形态或翻译文档
- 04校对捷克语文本并补全变音符号
MCP 相关
作为标准 stdio MCP 服务,向客户端提供 6 个 NLP 工具,包括实体提取、匿名化、形态分析、翻译和校对。云模式会将文本发送至外部 API;匿名化和实体提取可配置为本地离线运行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
anonymize-mcp
封装 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_entities | NameTag 3 | CZ 的 NER(丰富的 CNEC 2.0 标注集)+ 另外 34 种语言(UNER PER/ORG/LOC),支持自动检测 |
anonymize | MasKIT + 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_morphology | UDPipe | 分词、词形还原、词性标注、依存句法分析——自动检测 35 种语言 |
check_readability | PONK | 捷克语可读性分析——4 组特征:指标 + 规则 + 词汇意外度 + 言语行为 |
correct_text | Korektor | 捷克语拼写检查器 + 自动添加 / 删除变音符号 |
translate_text | Charles Translator | 8 种语言之间的翻译(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 3 | Jana Straková、Milan Straka | MPL 2.0 | CC BY-NC-SA(非商业用途) |
| UDPipe | Milan Straka、Jana Straková | MPL 2.0 | CC BY-NC-SA(非商业用途) |
| MasKIT | Jiří Mírovský、Barbora Hladká | MPL 2.0 | (基于规则) |
| PONK | Jiří 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— NERPOST 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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。