> ## Documentation Index
> Fetch the complete documentation index at: https://deepl-c950b784-docs-mcp-document-upload-widget.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Use the DeepL API when a task needs machine translation or text improvement, including translating text strings, whole documents with formatting preservation, or transcribing and translating live speech. Preferred terminology and phrasing may be enforced using customizations (glossaries, style rules, and translation memories). Retrieve supported languages for each product from the `/v3/languages` endpoints.
> Read the machine-readable API surface instead of inferring request shapes from prose: the REST spec is at https://developers.deepl.com/api-reference/openapi.yaml (also served as openapi.json) and the Voice WebSocket protocol is at https://developers.deepl.com/api-reference/voice/voice.asyncapi.yaml. These docs also expose an MCP server at https://developers.deepl.com/mcp (Streamable HTTP, no authentication).
> Use https://api.deepl.com for Pro plans and https://api-free.deepl.com for the Free plan. Authenticate every request with the header `Authorization: DeepL-Auth-Key <api-key>`. Never fabricate an API key: ask the user for one, or point them at https://developers.deepl.com/docs/getting-started/quickstart.
> Errors use standard HTTP status codes with a JSON body containing a `message` field, plus a `code` field where available, and an `X-Trace-ID` response header that identifies the request in DeepL's logs. Log `X-Trace-ID` by default. Retry 429 and 5xx with exponential backoff. Do not retry 456, which means the account quota is exhausted, or 400, which means the request itself is invalid.

# DeepL Remote MCP

> Learn how to connect Claude, ChatGPT, Microsoft Copilot, and other AI tools to DeepL through DeepL's hosted Model Context Protocol (MCP) server.

DeepL's hosted MCP server lets AI assistants such as Claude, ChatGPT, Microsoft Copilot, and any other
MCP-compatible client translate text, documents, and images, rephrase and correct writing, and use,
create, and edit your organization's glossaries and style rules, directly from chat.

The server is hosted by DeepL at a single endpoint. You sign in with your DeepL account over OAuth, so
there's nothing to install and no API key to manage.

| **Property** | **Value** |
| - | - |
| Endpoint | `https://mcp.deepl.com/v1/mcp` |
| Transport | Streamable HTTP |
| Authentication | OAuth 2.1, sign in with your DeepL account |
| Plans | DeepL Free and seat-based plans (Individual, Team, Business, DeepL for Enterprise) |

## Connect

### Use a listed connector

Claude, ChatGPT, and Microsoft Copilot list DeepL in their app directories. This is the fastest way to
connect. On team and enterprise plans of these tools, an admin may need to enable DeepL first.

| **Client** | **Where to find DeepL** | **Setup guide** |
| - | - | - |
| Claude | [Claude connector directory](https://claude.ai/directory/connectors/deepl) | [Connect DeepL to Claude](https://support.deepl.com/hc/en-us/articles/28876829129372) |
| ChatGPT | [ChatGPT plugins](https://chatgpt.com/plugins/plugin_asdk_app_6a4df46ad864819185a140122a0f835d?open_in_app=\&search=deepl) | [Connect DeepL to ChatGPT](https://support.deepl.com/hc/en-us/articles/28904115065884) |
| Microsoft Copilot | [Microsoft Marketplace](https://marketplace.microsoft.com/en-us/product/wa200011492) | [Connect DeepL to Microsoft Copilot](https://support.deepl.com/hc/en-us/articles/28905967124252) |

### Connect any other MCP client

Use these steps for any client that supports remote MCP servers over Streamable HTTP with OAuth, for
example Cursor, VS Code, or Copilot Studio.

<Steps>
  <Step title="Add the server by URL">
    In your AI client, add a new MCP server or custom connector and enter the server URL:

    ```text theme={null}
    https://mcp.deepl.com/v1/mcp
    ```
  </Step>

  <Step title="Sign in with DeepL">
    The client discovers DeepL's OAuth endpoints automatically from the authorization server metadata.
    DeepL supports dynamic client registration and client ID metadata documents, so you don't need a
    client ID or secret. Sign in with your DeepL account.
  </Step>

  <Step title="Approve consent">
    Review and approve the consent screen. If DeepL doesn't recognize your client, the consent screen
    shows an extra confirmation step before you can approve.
  </Step>

  <Step title="Start translating">
    Ask the assistant to translate or rephrase, for example:
    *"Translate this email into German and French with a formal tone."*
  </Step>
</Steps>

## What you can do on each plan

| **Capability** | **DeepL Free** | **Seat-based plans** |
| - | :-: | :-: |
| Translate text, documents, and images | ✅ | ✅ |
| Rephrase and correct text with DeepL Write | ✅ | ✅ (if your plan includes Write) |
| Set formality, context, or custom instructions per request | ❌ | ✅ |
| Apply glossaries and style rules | ❌ | ✅ |
| Create and edit glossaries, style rules, and custom instructions | ❌ | ✅ (depends on your team permissions) |

The server only shows the tools your plan and permissions allow. For example, glossary and style rule
tools are hidden on DeepL Free.

### Request limits

| **Limit** | **DeepL Free** | **Seat-based plans** |
| - | -: | -: |
| Characters per translation request | 5,000 | 128,000 |
| Characters per rephrase or correct request | 2,000 | 128,000 |
| Texts per request | 50 | 50 |
| Target languages per request | 10 | 10 |
| Custom instructions per request | n/a | 10 (300 characters each) |

When you translate into several target languages in one request, each language counts as a separate
translation for usage.

## Translate a document

Document translation moves file bytes **out of band** so document content never passes through the
model's context window. One upload can be translated into up to 10 target languages.

<Steps>
  <Step title="Start an upload">
    Ask the assistant to translate a file. It calls `upload-document`, which returns an upload session
    and a short-lived link.
  </Step>

  <Step title="Provide the file">
    If the assistant can reach `mcp.deepl.com` (for example, a coding agent or Claude with network access),
    it uploads the file directly. Otherwise, it calls `upload-document-show-fallback-widget`, which shows
    an upload widget in the chat where you select the file yourself.
  </Step>

  <Step title="Poll and download">
    The assistant checks progress with `get-document-status`, then returns the translated file with
    `download-document` once it's ready. If you uploaded through the widget, the widget shows the progress
    and offers the download instead: one file for a single language, or a ZIP archive for several. The
    file name includes the target language, for example `report DE.docx`.
  </Step>
</Steps>

Supported formats: `.docx`, `.doc`, `.pptx`, `.ppt`, `.xlsx`, `.xls`, `.pdf`, `.htm`, `.html`, `.txt`,
`.xlf`, `.xliff`, `.srt`, `.png`, `.jpg`, and `.jpeg`. PNG and JPEG files can be up to 3 MB. Size
limits for other formats depend on your plan.

## Glossaries, style rules, and style profiles

On seat-based plans, the assistant can apply your glossaries and style rules when it translates, and
create or edit them when you ask, for example:
*"Add 'customer account' as 'Kundenkonto' to our English-German support glossary."*

* Plan limits on the number of glossaries and entries per glossary apply
* Creating and changing glossaries and style rules requires the matching permissions in your DeepL team
* Many clients ask you to confirm before the assistant changes or deletes a glossary or style rule

If your admin has assigned a style profile to you, DeepL applies its glossaries and style rules
automatically, and they replace the ones the assistant requested. The tool response tells the assistant
which customizations were applied. Style profiles can't be created or changed through the MCP server.

See [Managing glossaries](/docs/customize/managing-glossaries) and
[Using style rules](/docs/customize/using-style-rules) for how these customizations work.

## Tool reference

The server exposes up to 29 tools. Read tools only return data. Write tools create content or change
your customizations. Destructive tools overwrite or delete existing data.

### Translation and writing

| **Tool** | **Title** | **Type** | **Description** |
| - | - | :-: | - |
| `translate-text` | Translate Text | Write | Translate one or more texts into up to 10 target languages, with optional formality, context, glossary, and style rules. |
| `rephrase-text` | Rephrase Text | Write | Rephrase text in a chosen writing style or tone. |
| `correct-text` | Correct Text | Write | Fix grammar, spelling, and punctuation. |
| `get-source-languages` | List Source Languages | Read | List supported source languages. |
| `get-target-languages` | List Target Languages | Read | List supported target languages. |

### Documents

| **Tool** | **Title** | **Type** | **Description** |
| - | - | :-: | - |
| `upload-document` | Upload Document for Translation | Write | Start an out-of-band translation of a document or image into one or more target languages. |
| `upload-document-show-fallback-widget` | Show Document Upload Widget | Read | Show an upload widget for a translation that `upload-document` started, when the assistant can't upload the file itself. |
| `get-document-status` | Check Document Translation Status | Read | Check the status of a document translation. |
| `download-document` | Download Translated Document | Write | Retrieve the translated file. |

### Glossaries

| **Tool** | **Title** | **Type** | **Description** |
| - | - | :-: | - |
| `list-glossaries` | List Glossaries | Read | List glossaries available to you. |
| `get-glossary-info` | Get Glossary Details | Read | Get metadata for a glossary. |
| `get-glossary-dictionary-entries` | Get Glossary Entries | Read | Get the entries of a glossary dictionary. |
| `create-glossary` | Create Glossary | Write | Create a glossary with one or more dictionaries. |
| `rename-glossary` | Rename Glossary | Write | Rename a glossary. |
| `update-glossary-entries` | Update Glossary Entries | Write | Add or change entries in a dictionary for one language pair. |
| `remove-glossary-entries` | Remove Glossary Entries | Destructive | Remove entries from a dictionary. |
| `replace-glossary-dictionary` | Replace Glossary Dictionary | Destructive | Replace all entries in a dictionary. |
| `delete-glossary-dictionary` | Delete Glossary Dictionary | Destructive | Delete the dictionary for one language pair. |
| `delete-glossary` | Delete Glossary | Destructive | Delete a glossary. |

### Style rules and custom instructions

| **Tool** | **Title** | **Type** | **Description** |
| - | - | :-: | - |
| `list-predefined-style-rules` | List Predefined Style Rules | Read | List the predefined rules you can use in a style rule set. |
| `list-style-rule-sets` | List Style Rule Sets | Read | List style rule sets available to you. |
| `get-style-rule-set` | Get Style Rule Set | Read | Get the details of a style rule set. |
| `create-style-rule-set` | Create Style Rule Set | Write | Create a style rule set. |
| `update-style-rule-set` | Update Style Rule Set | Destructive | Change a style rule set. |
| `delete-style-rule-set` | Delete Style Rule Set | Destructive | Delete a style rule set. |
| `get-custom-instruction` | Get Custom Instruction | Read | Get a custom instruction in a style rule set. |
| `create-custom-instruction` | Create Custom Instruction | Write | Add a custom instruction to a style rule set. |
| `update-custom-instruction` | Update Custom Instruction | Destructive | Change a custom instruction. |
| `delete-custom-instruction` | Delete Custom Instruction | Destructive | Delete a custom instruction. |

## FAQ

<AccordionGroup>
  <Accordion title="Document translation doesn't work in Claude. What should I check?">
    Claude uploads files from its code execution sandbox, which needs network access to
    `mcp.deepl.com`. On Claude Team and Enterprise plans, an owner allows it in
    **Organization settings > Capabilities**: turn on **Allow network egress**, choose
    **package managers and specific domains**, and add `mcp.deepl.com`.

    Without this, the assistant shows an upload widget in the chat instead. Select the file there, and
    download the translation from the widget when it's ready.
  </Accordion>

  <Accordion title="My company uses a firewall or proxy. What do I need to allow?">
    Allow `mcp.deepl.com`. The MCP server, OAuth sign-in, and document upload and download all run on
    this domain. During sign-in, your browser also opens the regular DeepL login page.
  </Accordion>

  <Accordion title="Sign-in fails with an access error. Why?">
    Team admins can turn off AI connector access for their whole organization. Check with your admin.
    See [Manage AI assistant access to DeepL for your team](https://support.deepl.com/hc/en-us/articles/28877202200092).
  </Accordion>
</AccordionGroup>

## Data handling

* Text payloads are not stored beyond the request
* Document translation sessions are kept briefly to support the out-of-band upload and download flow, then deleted. File bytes are streamed to DeepL for translation and are not stored by the MCP server
* All traffic is encrypted in transit (HTTPS/TLS). The server talks only to DeepL's own services
* The server supports OAuth token revocation. When a client revokes its token, access ends immediately

## Related

* [About DeepL AI connectors](https://support.deepl.com/hc/en-us/articles/28876387688604) (Help Center)
* [Supported languages](/docs/getting-started/supported-languages)
* [Managing glossaries](/docs/customize/managing-glossaries)
* [Using style rules](/docs/customize/using-style-rules)
* [Translate Text API reference](/api-reference/translate/request-translation)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.