Skip to content
Intento home
InboxAsk a human

Intento Translate MCP: User Guide

Updated by Victoriia

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.

  1. In Claude, open Customize → Connectors (or click Search and tools in a chat and choose Add connectors), then Browse connectors.

  2. Find Intento Translate and press Connect.

  3. 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.

  4. 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.

  1. Create or copy an API key in the Intento Console.

  2. Add the server with an apikey header 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

translate

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"

translate_document

Submits a file for translation with its layout preserved and returns an operation ID

"Translate the attached contract.docx into French"

get_document_translation_result

Fetches the translated file once the job is done (Claude handles this for you)

"Get the translated file for that job"

list_providers

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?"

list_routing_tables

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:

  1. 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".

  2. 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).

  3. Let the tool run without asking. In the connector's tool settings in Claude, allow translate to 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

PDF

DOCX

BMP, JPG, JPEG, PNG (images of text)

DOCX

How it works and limits:

  • Document translation runs as a job: translate_document returns an operation ID and get_document_translation_result fetches 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_credentials work 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_disabled error.

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 intento-mcp, leave the secret blank, then Reconnect

"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 client_secret_post while the secret is empty

In Advanced OAuth settings set it to none, keep client ID intento-mcp, create again

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 https://mcp.inten.to/v1/mcp (mcp.eu.inten.to for EU accounts) and the key, then restart the client

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

Version 1.2 · 27 October 2026