Intento Translate MCP: User Guide
In this article, you will learn how to connect Intento Translate MCP to Claude and other AI assistants, translate text and documents with it, and fix the most common issues.
Overview
Intento Translate MCP connects AI assistants such as Claude to the Intento Enterprise Language Hub. Once connected, you translate text and documents directly in your chat, using the machine translation (MT) and GenAI engines, routing and language configuration your organization has set up in Intento.
The server is a remote MCP (Model Context Protocol) server hosted by Intento in two data centers: https://mcp.inten.to/v1/mcp (US) and https://mcp.eu.inten.to/v1/mcp (EU). It works with Claude (claude.ai, desktop and mobile apps), Claude Code, and other MCP clients such as ChatGPT, VS Code (GitHub Copilot) and Cursor.
What you can do:
Translate text between languages.
Translate documents (DOCX, PPTX, XLSX, PDF, TXT, HTML, images and more) and get the translated file back.
See which MT engines and routing tables are available to your account.
Who it is for: localization, customer support, sales, marketing and any team member who needs translations that follow company-approved engines and configuration.
Before you start
You need an Intento account with an active contract and at least one API key in the Intento Console, plus the login you use for the Console. The connector works with that key: the engines and routing tables you can use, and where usage is billed, are those of your key.
Account and key: every user signs in with their own Intento account; translations run under that user's own API key and appear in their Console usage. A user without an Intento account, or without an API key, is told so and cannot translate. Ask your Intento account manager for access.
Sign-in: Claude signs you in through OAuth at auth.inten.to (auth.eu.inten.to for EU-hosted accounts), the same login as the Console. You never paste an API key into Claude.
Data center: Intento runs a US and an EU data center, each with its own server (mcp.inten.to and mcp.eu.inten.to). Use the one that matches where your Intento account is hosted; your account manager can tell you which.
Claude plan: on Claude Team and Enterprise, an organization Owner enables the connector before members can connect it. On other plans you connect it yourself.
Connect from the Claude directory
Note: this option is available once Intento Translate is listed in the Claude connectors directory. Until then, connect it as a custom connector (see "Connect other clients" below).
Connecting takes about a minute: find Intento Translate in the Claude connectors directory, press Connect, and sign in with your Intento account.
In Claude, open Customize → Connectors (or click Search and tools in a chat and choose Add connectors), then Browse connectors.
Find Intento Translate and press Connect.
If Claude asks which server to use, pick your data center (US or EU). Sign in with your Intento account (the same login as the Intento Console). Review the permissions and approve. You are returned to Claude.
In a chat, open Search and tools and check that Intento Translate is switched on. Try: "Translate 'Meeting moved to Thursday' into German and Spanish."
Claude Team and Enterprise: an organization Owner adds the connector under Organization settings → Connectors; each member then connects with their own Intento login. Claude lets you decide, per tool, whether it may run automatically or must ask first; open the connector's settings in Claude to change this.
Disconnect: Customize → Connectors → Intento Translate → Disconnect. To revoke access on the Intento side, sign out of your Intento session at auth.inten.to.
Connect other clients
Any MCP client that supports the Streamable HTTP transport can use the same server URL, https://mcp.inten.to/v1/mcp (EU-hosted accounts: https://mcp.eu.inten.to/v1/mcp in every example below; a dedicated environment has its own URL, which your Intento contact provides). There are two ways to connect:
Sign in with your Intento account (recommended). The client opens the Intento sign-in in your browser and the server finds your API key for you. Nothing secret is stored in the client, and access ends when you sign out.
Send an API key. For clients that cannot sign in and only send fixed headers. You copy a key from the Intento Console into the client's configuration.
Both end up translating under your own API key, with the same engines, routing tables and billing.
Sign in with your Intento account
Every client below uses the pre-registered OAuth client ID intento-mcp with no secret, because Intento's sign-in service does not allow automatic client registration. Sign-in happens at auth.inten.to (auth.eu.inten.to for EU accounts), with the same login as the Intento Console.
Claude as a custom connector (for example before the directory listing is live): Customize → Connectors → Add custom connector. Name: Intento Translate. URL: https://mcp.inten.to/v1/mcp. Under OAuth client choose Use your own OAuth client, enter the client ID intento-mcp and leave the secret blank. Do not leave Register automatically selected, or you would see "Couldn't register with Intento Translate MCP's sign-in service". Click Connect and sign in.
Claude Code: run
claude mcp add --transport http --client-id intento-mcp --callback-port 8765 intento https://mcp.inten.to/v1/mcp
then start claude, open /mcp, choose intento and Authenticate; a browser window opens the Intento sign-in. The callback port is fixed at 8765 because the sign-in service registers exact redirect addresses.
ChatGPT: Settings → Apps & Connectors (Developer mode must be enabled) → Create / Add custom MCP server. Name: Intento Translate; Server URL: https://mcp.inten.to/v1/mcp; Authentication: OAuth. Under Advanced OAuth settings set Registration method to User-Defined OAuth Client, OAuth client ID intento-mcp, client secret empty, and Token endpoint auth method to none (the form pre-selects client_secret_post, which fails with "Some app settings were rejected" when the secret is empty). Keep the discovered endpoints and scopes, tick the risk acknowledgement, create the connector and sign in.
VS Code (GitHub Copilot): add the server to .vscode/mcp.json (workspace) or your user mcp.json (MCP: Open User Configuration), naming the pre-registered client so VS Code skips automatic registration:
{ "servers": { "intento": { "type": "http", "url": "https://mcp.inten.to/v1/mcp", "oauth": { "clientId": "intento-mcp" } } } }
Start the server from the MCP view; a browser window opens the Intento sign-in. The oauth block needs a 2026 release of VS Code; older versions connect with an API key instead (below).
Connect with an API key
Use this only when your client cannot sign in: Cursor, Claude Desktop configured through its config file, older VS Code releases, scripts. The client sends the key in an apikey header on every request.
Create or copy an API key in the Intento Console.
Add the server with an
apikeyheader to the client's configuration, then restart the client.
Cursor: ~/.cursor/mcp.json (Linux/macOS) or %USERPROFILE%\.cursor\mcp.json (Windows). Claude Desktop: the same url and headers block in claude_desktop_config.json.
{ "mcpServers": { "intento-translate": { "url": "https://mcp.inten.to/v1/mcp", "headers": { "apikey": "YOUR_INTENTO_API_KEY" } } } }
VS Code (older releases): in mcp.json, replace the oauth block with "headers": { "apikey": "YOUR_INTENTO_API_KEY" }.
Claude Code: claude mcp add --transport http intento https://mcp.inten.to/v1/mcp --header "apikey: YOUR_INTENTO_API_KEY".
Anyone with the key can translate on your account: keep it out of shared or committed files, and revoke it in the Console if it leaks. The server never logs it.
Tools and example prompts
The connector gives Claude five tools and one resource. You do not call them by name: describe what you want and Claude picks the tool. Language codes follow ISO 639 (es, de, ja, zh); Claude converts language names for you and can read the server's language-codes resource for the full mapping. Leave the source language out to let Intento detect it.
Tool | What it does | Example prompt |
|---|---|---|
| Translates text of up to 100,000 characters. Uses your key's default routing table unless you name a routing table or an engine | "Translate 'Meeting moved to Thursday' into German and Spanish" |
| Submits a file for translation with its layout preserved and returns an operation ID | "Translate the attached contract.docx into French" |
| Fetches the translated file once the job is done (Claude handles this for you) | "Get the translated file for that job" |
| Lists the MT engines (providers) available for your key, optionally filtered by language pair or name | "Which translation engines can I use for English to Japanese?" |
| Lists the routing tables available for your key, with name, description and ID | "What translation routing tables do I have access to?" |
Tips:
Ask for an engine only when you need a specific one ("with DeepL"). Otherwise let your routing table choose.
Name a routing table by name or ID: "use the best-web routing table".
A translation with a pinned engine ends with a line
(provider: <id>)naming the engine that served it.Depending on your Claude settings, Claude may ask for confirmation before a translation runs. Choose Always allow in the connector's tool settings to skip the prompt.
Make sure Claude translates with Intento
Claude can translate on its own, and for a short request it sometimes does, even with the connector switched on. That result is a model translation: it does not use your engines, routing tables or terminology. Three ways to make Intento the default, from the simplest to the most durable:
Say it in the prompt. Add "with Intento": "Translate this into German with Intento." Works everywhere, every time. If Claude has already answered without the connector, reply "redo that with Intento".
Set a standing instruction. Add this sentence where Claude reads instructions for every chat, and you no longer need to say it: For any translation or localization request, use the Intento Translate connector (its translate and translate_document tools) instead of translating yourself; translate yourself only if I explicitly ask for a draft without Intento. Where to put it: in your personal preferences in Claude's settings (applies to all your chats), or in a Claude Project's instructions (applies to every chat in that project; the right place for a team that shares a project for translation work).
Let the tool run without asking. In the connector's tool settings in Claude, allow
translateto run automatically; otherwise each call waits for your approval, and the extra step is a reason to skip it.
In all three cases the connector must be switched on for the chat: open Search and tools and check Intento Translate.
Document translation
Attach a file, say which language you want, and Claude submits it to Intento, waits for the job and returns the translated file. Layout, tables and slide formatting are preserved. Both document tools accept the same optional routing table or engine as text translation.
Input | Output |
|---|---|
DOCX, PPTX, XLSX | Same format |
TXT, HTML, HTM, XML, SRT | Same format |
DOCX | |
BMP, JPG, JPEG, PNG (images of text) | DOCX |
How it works and limits:
Document translation runs as a job:
translate_documentreturns an operation ID andget_document_translation_resultfetches the file when it is done. Claude makes both calls.The file travels inside the conversation (Claude base64-encodes it for you), so keep files small: a few pages work well, and very large files may fail or time out. The hard limit is 25 MiB; above it the server answers "Document is … MiB, over the 25 MiB limit". For large batches use the Intento Console or an Intento TMS connector.
Scanned PDFs and images are recognized (OCR) before translation; the result is an editable DOCX, not a PDF.
Translated files are kept in Intento's job storage for 30 days by default, then deleted.
Engines and routing tables
Intento does not run one translation engine. It connects more than 40 MT engines and LLMs, and a routing table decides which one handles each request based on the language pair, domain and your quality, cost and speed settings. Your routing tables carry the configuration set up for your account, so translations from Claude follow the same setup as your other Intento integrations.
Default routing: when you name nothing, the server uses the default routing table configured for your key, typically
best, which selects the highest-quality engine automatically.A specific routing table: say its name or ID. You can only use tables associated with your API key; asking for another returns an error.
A specific engine: say "translate this with DeepL", or ask which engines are available. A pinned engine bypasses routing for that request only, and the result names the engine. Engines listed with
requires_own_credentialswork only after your own vendor credentials are configured in the Intento Console.Fixed routing policy: some deployments disable engine selection; the engine list is then empty or returns a
dynamic_selection_disablederror.
To add engines, change routing or update your language configuration, use the Intento Console or contact your Intento account manager; the connector only reads this configuration.
Data handling and security
The MCP server is a thin gateway to the Intento Translation API: it receives the text or file in the tool call, forwards it to Intento under your own API key, and returns the result. It keeps no copy of your content, chat history or files.
What Claude sends: only the arguments of the tool call: the text or file, the language codes, and the routing table or engine you asked for. Claude never sends your conversation history or other files.
Who translates: the MT engines and LLMs selected by your routing, under Intento's agreements with those vendors. See Intento's privacy policy and your contract for the engines enabled on your account.
Where it runs: the data center of the server you connected to: US for mcp.inten.to, EU for mcp.eu.inten.to.
Sign-in tokens: the server validates your sign-in token on every request and looks up your API key in the Intento Console. The token is never forwarded to translation APIs and never logged. Access tokens expire after about 15 minutes and are refreshed automatically; sign out at auth.inten.to to revoke access. API keys sent in headers are never logged either.
Sessions: MCP sessions are held server-side and expire after a period of inactivity; your client reconnects automatically.
Retention: text translations are not stored by the MCP server; document jobs and their results are kept in encrypted job storage for 30 days by default.
Encryption: TLS 1.2 or higher in transit; AES-256 at rest with managed keys.
Certifications: the Enterprise Language Hub is ISO 27001:2022 certified; Intento's services are ISO 9001:2015 certified. See Security at Intento.
Policies: Privacy policy · Terms of service.
Troubleshooting
Message or symptom | Meaning | What to do |
|---|---|---|
"Couldn't register with Intento Translate MCP's sign-in service" (Claude, custom connector) | The connector is set to register automatically | Edit the connector, choose Use your own OAuth client, enter |
"Connection issue … Reconnect" right after adding a custom connector | A leftover of the failed automatic registration | Press Reconnect after setting the client ID |
"Some app settings were rejected" (ChatGPT) | Token endpoint auth method is still | In Advanced OAuth settings set it to none, keep client ID |
Sign-in works but translation says the account has no API key or no contract | Your Intento account needs an active contract and at least one API key in the Console | Ask your Intento account manager |
"Text is … characters, over the 100,000-character limit" | The text is too long for one call | Split it into smaller parts |
"Translation failed: requested routing table is invalid or unavailable for this key" | The table does not exist or is not associated with your key | Ask "What routing tables do I have?" and use one of them |
"Translation failed: provider '…' is not available for this account or language pair, or it requires your own provider credentials" | The pinned engine cannot serve this request | Pick another engine from the list, or add the vendor credentials in the Intento Console |
"Pass either provider or routing_table_selector, not both" | A request named a routing table and an engine | Keep one |
"Engine selection is disabled on this deployment" | This deployment always uses its own routing table | Ask again without naming an engine |
"Translation failed: Intento did not accept the API key for this request" | The key is invalid, revoked or not allowed to translate | Check the key in the Intento Console, or sign in again |
"Translation failed: Intento rejected the request" | Usually an unsupported language code | Check the source and target languages |
"Unsupported file_type" or "file_type … does not match the file content" | The file format is not supported, or the file is not what its extension says | Convert the file to a supported format, or attach the right file |
"Document is … MiB, over the 25 MiB limit" | The file is too large to send through the chat | Split it or compress its images; for large files use the Intento Console |
"Translation failed: the translation service is temporarily unavailable" | Temporary issue with the translation API; the server already retried with backoff | Retry after a moment |
Long text times out | The gateway must receive the full response within 2 minutes; very large texts can exceed this depending on engine and language pair | Send smaller pieces |
Tools do not show up | Wrong URL, invalid key, or the client was not restarted after saving | Check |
Session expired | Sessions expire after inactivity | Nothing to do; the client reconnects automatically |
Claude translates without using Intento | The connector is switched off for this chat | Open Search and tools and enable Intento Translate |
If the problem persists, send support@inten.to the time, the prompt you used and the error text.
Support
Support: support@inten.to, or the Intento Help Center. Service status: status.inten.to.
Security: Security at Intento.
Feature requests for the connector: tell your Intento account manager, or write to support@inten.to with "Intento Translate" in the subject.
Version 1.2 · 27 October 2026