
pagetranslate-mcp
io.github.catorch/pagetranslate-mcp
Translate PDF, scanned PDF, DOCX and EPUB files into 70+ languages with the layout kept.
Documentation
PageTranslate MCP server: a PDF translator and document translator for AI agents
Ask your agent to translate a PDF and you usually get the words back in a chat window. The pages, tables, footnotes and images are gone, and a scanned PDF may not be readable at all.
PageTranslate MCP gives the agent a document translator. It sends the file to PageTranslate, which translates the whole document into any of 70+ languages and rebuilds it in the original layout. A PDF comes back as a PDF, a DOCX as a DOCX, an EPUB as an EPUB.
You say "translate contract.pdf into German", approve the price, and the German PDF is saved next to the original.
- Files: PDF, scanned PDF, DOCX, EPUB, and images (PNG, JPG, WEBP, TIFF, BMP, GIF). Up to 100 MB and 1,000 PDF pages.
- Scans and photos are read with OCR, then translated onto the page. See how to translate a scanned PDF.
- Whole books: a 150,000-word novel is one upload, not 300 chat messages. It works the same way as the EPUB translator on the site.
- The price comes first. Uploading is free and returns the exact price. The agent cannot spend money: you pay in your browser, or the job runs on words you already bought.
The package ships an MCP server and four Agent Skills, for Claude Code, Claude Desktop, Cursor, Codex, Gemini CLI, Pi, Hermes, OpenClaw and other agents. From the makers of pagetranslate.ai.
Set up
- Create a free account at pagetranslate.ai, verify your email, and create an API key under Dashboard → API Keys.
- Add the server to your client. It needs Node.js 20 or newer.
Claude Code
claude mcp add pagetranslate -e PAGETRANSLATE_API_KEY=pt_live_YOUR_KEY -- npx -y pagetranslate-mcp
Or install it as a plugin, which adds the skills too:
/plugin marketplace add Caravaca-Labs/pagetranslate-mcp
/plugin install pagetranslate@pagetranslate
Codex
codex mcp add pagetranslate --env PAGETRANSLATE_API_KEY=pt_live_YOUR_KEY -- npx -y pagetranslate-mcp
Gemini CLI
gemini mcp add pagetranslate npx -e PAGETRANSLATE_API_KEY=pt_live_YOUR_KEY -- -y pagetranslate-mcp
Claude Desktop, Cursor, VS Code, Windsurf, Cline and other clients take this block in their MCP settings file:
{
"mcpServers": {
"pagetranslate": {
"command": "npx",
"args": ["-y", "pagetranslate-mcp"],
"env": { "PAGETRANSLATE_API_KEY": "pt_live_YOUR_KEY" }
}
}
}
Claude Desktop, without a config file: download
pagetranslate.mcpb
and open it. Claude Desktop asks for your API key and installs the server.
Then ask: "Translate /Users/me/Documents/manual.pdf into Spanish."
Use it from Claude, ChatGPT or Grok
Chat assistants cannot start a local server, so PageTranslate hosts one. Add its address as a custom connector and sign in with your PageTranslate account when the assistant asks. There is nothing to install and no API key to copy.
https://pagetranslate.ai/mcp
- Claude: Settings → Customize → Connectors → Add → Add custom connector.
- Grok: Settings → Connect Apps → Add a custom connector.
- ChatGPT: use
https://pagetranslate.ai/mcp/chatgpt. It also takes a file attached in the chat, and it only starts translations that your account's word balance already covers.
An assistant cannot read a file on your computer. Give it a public link to the document, or upload the file on pagetranslate.ai and ask the assistant to find it. It tells you the word count and the exact price. If your word balance covers the document, it starts the translation when you agree; if not, it gives you a payment link. When the file is ready it returns a download link that works for one hour.
What a translation costs
8¢ per 1,000 words, with a $3.99 minimum per document. A 20,000-word report is $3.99; an 80,000-word novel is $6.40. The Pro plan is $10 a month for 500,000 words. The site explains how much it costs to translate a book and has a translation cost calculator.
upload_document is free and returns the exact price for that file. If your account's word balance
covers it, the agent can start it. If not, the agent gives you a payment link, you pay by card on
pagetranslate.ai, and the translation starts by itself.
Tools
| Tool | What it does |
|---|---|
upload_document | Uploads a local file and returns the job id, word count, exact price and next step. Free. |
start_translation | Starts a job from the account's word balance. Without a balance it charges nothing and returns the payment link. |
get_translation | Status, progress and payment state of one job. |
list_translations | Recent jobs on the account. |
download_translation | Saves the finished file to a folder. Never overwrites an existing file. |
Agent skills
Four Agent Skills ship in skills/ and inside the npm package. Each
teaches an agent the whole flow for one kind of file: ask for the target language, show the price,
wait for payment, poll, download. They use the MCP tools when those are installed and plain curl
when they are not, so they also work in agents that have no MCP support.
| Skill | Use it for | Online version |
|---|---|---|
pagetranslate-pdf-translator | PDFs, with the layout kept | PDF translator |
pagetranslate-scanned-pdf-translator | Scanned PDFs and photos of pages | How to translate a scanned PDF |
pagetranslate-book-translator | EPUBs, novels and manuscripts | Translate a book |
pagetranslate-document-translator | Word documents and business files | Document translation software |
Claude Code, Cursor, Codex and other skills.sh agents install them from GitHub:
npx skills add Caravaca-Labs/pagetranslate-mcp --skill '*' --yes
Pi loads them straight from npm:
pi install npm:pagetranslate-mcp
Hermes installs one skill at a time from the repository:
hermes skills install Caravaca-Labs/pagetranslate-mcp/skills/pagetranslate-pdf-translator
OpenClaw installs them from ClawHub:
clawhub install pagetranslate-pdf-translator
Each skill's frontmatter carries openclaw and hermes metadata (the curl binary, the
PAGETRANSLATE_API_KEY variable, tags) next to the standard fields.
Online versions
Prefer a browser?
- PageTranslate PDF translator
- PageTranslate EPUB translator
- PageTranslate DOCX translator
- Translate a book
- Document translation software
- AI novel translator
- Translate a large PDF
Guides and free tools:
- How much does it cost to translate a book
- Translation cost calculator
- How to translate a scanned PDF
- How to open EPUB on Kindle
- Translation software for legal documents
- Translate English to Spanish documents
- EPUB merger and other free tools for authors
Registries
The server is published as
io.github.catorch/pagetranslate-mcp
in the official MCP Registry and on npm as
pagetranslate-mcp. The skills are on
skills.sh and, for OpenClaw, on
ClawHub. Glama
builds and scores the server. The registry entry also lists the hosted server,
https://pagetranslate.ai/mcp.
Pi also has a PageTranslate package page. The four OpenClaw listings are PDF, scanned PDF, books, and documents.
Other integrations
For workflows outside an MCP client, use the RapidAPI listing or the remixable Replit document translator. Both use your own PageTranslate API key. The Replit demo runs on time-limited free hosting. Native connector source and current publication status are in PageTranslate integrations.
Configuration
| Variable | Required | Meaning |
|---|---|---|
PAGETRANSLATE_API_KEY | yes | Your key, pt_live_.... |
PAGETRANSLATE_API_URL | no | API origin. Default https://api.pagetranslate.ai. |
Privacy
The server runs on your computer. It reads only the file you name and writes only the file you download. Your API key and documents go to PageTranslate's API over HTTPS, under your own account, and nowhere else. There is no telemetry. What PageTranslate does with uploaded documents is in its privacy policy.
Support
Problems with this server: open an issue. Questions about a translation, a payment or your account: pagetranslate.ai/contact.
Development
npm install
PAGETRANSLATE_API_KEY=pt_live_... E2E_EXPECT=payment npm test
npm test runs test/e2e.mjs: a real MCP client drives the server over stdio against the real
API and writes every tool call to test-artifacts/<time>/transcript.json. E2E_EXPECT=payment is
for an account with no word balance: the job must stop at a payment link, so nothing is charged.
E2E_EXPECT=completed is for an account whose balance covers the 56-word sample: it must
translate, download, and match the API's file byte for byte.
The four skills are generated from scripts/build-skills.mjs; edit that file, not the SKILL.md
files. npm version <patch|minor> rebuilds them and updates the version in every manifest.
node scripts/build-mcpb.mjs builds the Claude Desktop bundle from the published npm package.
License
MIT
pagetranslate-mcpnpm install pagetranslate-mcp