PDF翻译服务器

使用pdf2zh-next作为PDF处理后端,为Claude Desktop设计的PDF翻译服务器,能够保持术语一致性和上下文连贯性。

  • by JaeHyeon-KAIST
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 JaeHyeon-KAIST/pdf2zh-next-mcp

使用说明

pdf2zh下一个mcp

用于PDF翻译的MCP服务器 pdf2zh下一页 作为PDF处理后端。专为 克劳德桌面版.

该服务器一次提取所有段,并让LLM一起翻译,而不是独立翻译每个段(这会丢失上下文),从而在整个文档中保持术语的一致性和上下文。

使用克劳德代码? 结账 pdf2zh下一个技能 --一种轻量级的基于技能的方法,没有MCP开销。通过利用Claude Code的直接文件I/O和自动延续,它可以更好地处理大型PDF。

运作原理

┌─────────────────────────────────────────────────┐
│  Claude Desktop                                  │
│                                                  │
│  1. extract_segments  ──→  segments + formulas   │
│  2. LLM translates all segments at once          │
│  3. assemble_translated  ──→  final PDF          │
└─────────────────────────────────────────────────┘

LLM在翻译之前会看到每个片段,因此术语保持一致,跨页句子自然流畅,公式占位符得到正确保留。

先决条件

pdf2zh下一页 必须单独安装:

uv tool install pdf2zh-next

验证安装:

pdf2zh_next --version

你需要 紫外线 安装pdf2zh-next和此服务器。

安装

来自PyPI(推荐)

uv tool install pdf2zh-next-mcp

来自GitHub

uv tool install git+https://github.com/JaeHyeon-KAIST/pdf2zh-next-mcp

来源

git clone https://github.com/JaeHyeon-KAIST/pdf2zh-next-mcp
cd pdf2zh-next-mcp
uv sync

设置

添加到您的Claude Desktop MCP配置中:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json

如果从PyPI或GitHub安装:

{
  "mcpServers": {
    "pdf-translate": {
      "command": "uvx",
      "args": ["pdf2zh-next-mcp"]
    }
  }
}

如果从源代码运行:

{
  "mcpServers": {
    "pdf-translate": {
      "command": "uv",
      "args": [
        "run",
        "--directory", "/path/to/pdf2zh-next-mcp",
        "python", "-m", "pdf2zh_next_mcp.main"
      ]
    }
  }
}

提示: 如果克劳德桌面找不到 uvx使用绝对路径(例如。, /opt/homebrew/bin/uvx 在macOS上, C:\Users\you\.local\bin\uvx.exe 在Windows上)。

用法

只要问:

“将此PDF翻译成韩语:/path/to/paper.PDF”

幕后:

  1. extract_segments 分析PDF布局并返回所有文本段
  2. LLM一次翻译所有内容(具有完整的上下文)
  3. assemble_translated 注入翻译并生成最终PDF

输出文件:

  • *-mono.pdf --翻译PDF
  • *-dual.pdf --双语并排
  • *-glossary.json --术语表

局限性

  • 大型PDF(约30+页): Claude Desktop有每圈输出令牌限制。对于包含许多段的文档,翻译可能会在过程中失败,并显示“无法完全生成响应”。对于大型PDF,请使用 pdf2zh下一个技能 用克劳德代码代替。
  • MCP工具结果大小: 分段被分页,以保持在Claude Desktop每个工具响应的25K令牌限制范围内。这是自动处理的。

故障排除

BabeldocError: cannot unpack non-iterable NoneType object

BabelDOC需要CMap文件进行字体字符映射。如果自动下载超时,请手动安装:

cd ~/Downloads
curl -L https://github.com/funstory-ai/BabelDOC-Assets/archive/refs/heads/main.zip -o BabelDOC-Assets.zip
unzip BabelDOC-Assets.zip
mkdir -p ~/.cache/babeldoc/cmap
cp BabelDOC-Assets-main/cmap/*.json ~/.cache/babeldoc/cmap/

这是一次性设置。缓存路径在所有平台上都是相同的。

许可证

麻省理工学院