The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the MCP Local Translate listing page.
🍴 Inspired by shinpr/mcp-local-rag — original architecture patterns by Shinsuke Kagawa
AI 编程助手的本地翻译引擎。基于 NLLB-200 模型,支持 200+ 语言互译——完全离线,数据不离开你的机器。为多语言开发、文档阅读、代码注释翻译而生。
📖 English
200+ 语言互译 基于 Meta NLLB-200 蒸馏模型(600M 参数),覆盖全球绝大多数语言——从主流语言到低资源语言。
完全本地运行 无需 API Key,无需云服务。NLLB-200 模型在本地 CPU 上通过 Transformers.js 推理。数据从不离开你的机器。
智能语言解析
支持 FLORES-200 精确码(zho_Hans)、ISO 639-1 简码(zh)、语言名称(Chinese)、中文别名(中文)——自动映射到正确的模型输入。
长文本分块翻译 长文本在句子边界处自动分块(450 字符/块),每块独立翻译后拼接——突破 NLLB 的 512 token 限制。
零摩擦上手
一条 npx 命令搞定。无需 Docker、Python、GPU。可通过 MCP 或 CLI 使用。
三级镜像回退 自动探测 HF → hf-mirror.com → ModelScope 三级镜像链,国内网络环境下自动找到可用的模型下载源。
Cursor — 添加到 ~/.cursor/mcp.json:
Codex — 添加到 ~/.codex/config.toml:
Claude Code — 运行以下命令:
WorkBuddy — 打开「设置 → 自定义连接器 → 添加自定义连接器」:
⚠️ 首次添加后,必须在「自定义连接器」列表中点击「信任」按钮,否则 MCP 服务器不会启动。这是 WorkBuddy 的安全机制——未经信任的自定义连接器会被静默阻止。
重启工具后即可使用:
也可直接作为 CLI 使用——无需启动 MCP 服务器:
就这些。无需 Docker,无需 Python,无需配置服务器。
你的 AI 编程助手可以帮你写代码,但当你面对非母语的文档、注释、错误日志时,仍然需要跳出编程环境去复制粘贴到在线翻译工具。
隐私。 把代码片段或内部文档粘贴到 Google Translate 本质上是数据泄露。这个工具完全在本地运行——没有人能看到你的文本。
离线可用。 配置完成后无需联网即可使用——飞机上、咖啡店无 WiFi、空气间隙环境。
低资源语言。 NLLB-200 覆盖了 Google Translate 和 DeepL 不支持的小语言(如藏语、维吾尔语、高棉语等)。
成本。 无需为翻译 API 付费。只需一次模型下载(~600MB),然后无限使用。
mcp-local-translate 提供两种接口:MCP 服务器(供 AI 编程工具使用)和 CLI(供终端直接使用)。
MCP 服务器提供 2 个工具:translate 和 list_languages。
translate 工具接受:
| 参数 | 类型 | 说明 |
|---|---|---|
text | string | 待翻译文本 |
source_lang | string | 源语言代码(auto 自动检测) |
target_lang | string | 目标语言代码 |
语言代码支持三种格式:
zho_Hans(简体中文)、eng_Latn(英语)、jpn_Jpan(日语)zh、en、ja、fr、de中文、英语、日语、韩语使用 list_languages 工具,可选 query 参数进行关键词过滤。
所有 MCP 工具也可以通过 CLI 命令使用——无需启动 MCP 服务器:
⚠️ CLI 不会读取你的 MCP 客户端配置(
mcp.json、config.toml等)。通过命令行标志或环境变量配置 CLI,如下所示。
简要:
当你调用 translate 时:
语言解析:输入的语言代码经过三级解析——先尝试精确 FLORES-200 匹配(zho_Hans),再查 ISO 639-1 别名表(zh → zho_Hans),最后查中文别名表(中文 → zho_Hans)。如果全部失败,进行模糊搜索并给出建议。
文本预处理:超长文本(>450 字符)在句子边界处拆分(正则 /(?<=[.!?。!?\n])\s+/),确保不截断到句子中间。每块加上源语言和目标语言标记。
模型推理:每块通过 NLLB-200 蒸馏模型(Xenova/nllb-200-distilled-600M)翻译。模型通过懒加载初始化——首次翻译时下载并加载到内存,后续调用复用同一管道。
结果拼接:翻译结果按原始块顺序拼接,标记之间的段落和换行得以保留。
MCP 服务器仅通过环境变量配置——通过 MCP 客户端的 env 块传入。
| 环境变量 | 默认值 | 描述 |
|---|---|---|
CACHE_DIR | 系统默认 | 模型缓存目录。NLLB-200 模型(~600MB)自动下载到此。建议使用绝对路径。 |
HF_ENDPOINT | https://huggingface.co | HuggingFace 镜像端点。设置后跳过自动镜像检测。 |
HF_AUTO_MIRROR | true | 自动镜像检测开关。设为 false 禁用。默认开启,首次下载前自动探测三级镜像链:huggingface.co → hf-mirror.com → modelscope.cn。 |
HTTPS_PROXY | (未设置) | HTTP 代理地址,用于下载模型(如 http://127.0.0.1:7890)。通过 setGlobalDispatcher 全局生效。 |
TRANSLATE_DEVICE | cpu | 推理设备。直接传给 Transformers.js。目前仅推荐 cpu。 |
在 MacBook Pro M1(16GB RAM)、Node.js 22 上测试:
首次启动:
翻译速度:
内存:空闲 ~300MB,翻译峰值 ~1.2GB
症状:启动日志中出现 fetch failed 或模型加载超时。
原因与排查:
网络无法直连 HuggingFace — 如果你在中国大陆或受限网络环境中,直连 huggingface.co 会超时。
首选方案:不用配置 — mcp-local-translate 默认自动探测三级镜像链:huggingface.co → hf-mirror.com → modelscope.cn,逐级回退直到找到可用镜像。
备选方案:配置代理:
手动指定镜像:
模型文件未写入 CACHE_DIR — 首次运行时会下载约 600MB 的 ONNX 模型。确认 CACHE_DIR 目录存在且包含 Xenova/nllb-200-distilled-600M/ 子目录。如果之前用不同的 CACHE_DIR 下载过模型,更新路径指向已有缓存即可避免重复下载。
npx 缓存了旧版本 — 清除缓存后重启:
运行 list_languages 查看所有支持的语言及其代码。语言代码是 FLORES-200 格式(如 zho_Hans、eng_Latn),也可以使用 ISO 639-1 简码(如 zh、en)或中文别名(如 中文、英语)。
NLLB-200 在 CPU 上运行,翻译速度取决于你的硬件。长文本会被自动分块处理,每块约 2-3 秒。
这真的私密吗? 是的。在模型下载之后,没有任何数据离开你的机器。可用网络监控验证。
可以离线使用吗? 可以,只要 NLLB-200 模型已缓存到本地。
与 Google Translate / DeepL 相比如何? 云端服务翻译质量更高(更大模型、更多训练数据),但需要将数据发送到外部。这个工具用一些质量换取完全隐私和零成本。
支持哪些语言?
NLLB-200 支持 200+ 种语言。运行 list_languages 查看完整列表。
支持方言吗?
NLLB-200 覆盖部分方言变体(如巴西葡萄牙语 por_Latn、拉美西班牙语等),但不像主流语言那样广泛。具体取决于模型训练数据。
翻译质量怎么样? 对主流语言对(英↔中、英↔法、英↔西等),600M 蒸馏模型提供不错的翻译质量。对低资源语言,质量会下降——可读但不保证优雅。
多用户支持? 不支持。专为单用户本地访问设计。
Agent Skills 提供优化的提示词,帮助 AI 助手更有效地使用翻译工具:
Skills 包括:
欢迎贡献!参见 CONTRIBUTING.md 了解环境搭建和指南。
MIT License。免费用于个人和商业用途。
架构模式参考 mcp-local-rag by Shinsuke Kagawa。使用 Model Context Protocol by Anthropic 和 Transformers.js 构建。翻译模型:NLLB-200 by Meta AI。