Mcp Pdf Translate — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Pdf Translate (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Local MCP server for Claude Desktop that runs the full pdf-translate pipeline:
extract.py → parallel API translation → check.py → apply.py
cd D:\Internship\skill\pdf-translate-mcp
pip install -r requirements.txtParent scripts (extract.py, check.py, apply.py) live in D:\Internship\skill\ and are called automatically.
Edit %APPDATA%\Claude\claude_desktop_config.json — merge into existing mcpServers:
"pdf-translate": {
"command": "C:\\Users\\neelima\\Anaconda3\\python.exe",
"args": ["D:\\Internship\\skill\\pdf-translate-mcp\\server.py"],
"env": {
"ANTHROPIC_API_KEY": "sk-ant-YOUR_KEY_HERE"
}
}Fully quit Claude Desktop (tray → Exit), reopen, start a new chat.
| Tool | When to use |
|---|---|
start_translate_pdf_job | Recommended for 50-page PDFs. Returns job_id in <1s; poll with get_translate_pdf_job. |
get_translate_pdf_job | Poll every 15–30s until status is done or failed. |
translate_pdf_path | Small/fast one-shot jobs only (Desktop kills tools after ~4 min). |
translate_pdf_base64 | Tiny PDFs only (~<750KB raw). |
Callstart_translate_pdf_jobonC:\Users\neelima\Downloads\50_pages_french.pdfwithtarget_langen andoutput_pathC:\Users\neelima\Downloads\50_pages_french_en.pdf. Pollget_translate_pdf_jobevery 20 seconds until done. Reportstats.timing_sand wall-clock time.
Calltranslate_pdf_pathonC:\Users\neelima\Downloads\small.pdfwithtarget_langen.
Do not use translate_pdf_base64 for multi-page PDFs in Desktop. read_media_file and tool results are capped at 1MB; a 1.09 MB PDF becomes ~1.5M chars of base64 and fails before translation starts.
# Extract only (no API key)
python tests\test_pipeline_local.py --extract-only "C:\Users\neelima\Downloads\50_pages_french.pdf"
# Full pipeline (needs ANTHROPIC_API_KEY)
$env:ANTHROPIC_API_KEY = "sk-ant-..."
python tests\test_pipeline_local.py "C:\Users\neelima\Downloads\50_pages_french.pdf" -t enJob artifacts: pdf-translate-mcp/runs/<job_id>/
| Stage | ~seconds |
|---|---|
| extract | 2–5 |
| translate | 45–60 |
| check | <1 |
| apply | 35–45 |
| total | ~85–110 |
translate_pdf_pathYou are almost certainly in Cowork mode, not a local MCP chat.
| Mode | Where it runs | translate_pdf_path | C:\Users\... paths |
|---|---|---|---|
| Regular Desktop chat | Your PC | Yes (if MCP connected) | Yes |
| Cowork | Remote Linux VM | No | No |
Fix: In Claude Desktop, start a normal new chat (not Cowork). Cowork uses the pdf-translate skill in a VM; your MCP server only works in regular chat.
claude_desktop_config.json.%APPDATA%\Claude\logs\ for mcp-server-pdf-translate.log or [pdf-translate] in mcp.log.filesystem appears in logs, Desktop never started pdf-translate — fix JSON syntax or Python path.python server.py manually — should hang waiting on stdin (that’s normal).env block of Desktop config.Claude Desktop hard-kills any MCP tool call after ~4 minutes, even if the server is still working. Your 08:52 run proves this: the server was still translating when Desktop cancelled.
Use `start_translate_pdf_job` + `get_translate_pdf_job` for 50-page PDFs. The start call returns in under a second; poll until status is done.
If the MCP log shows asyncio.run() cannot be called from a running event loop, restart Claude Desktop after updating the server.
Use translate_pdf_path instead. Desktop caps tool payloads at ~1MB.
See PLAN.md for architecture notes.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.