deepl-mcp-server
[!NOTE] For the best experience and the latest features check out the DeepL remote MCP server to use DeepL in your AI agent. No installation required, just add it to Claude, ChatGPT, Microsoft Copilot or any MCP client and sign in with your DeepL account.
Working in a terminal or with a coding agent? Try the DeepL CLI. It covers translation, documents, glossaries and i18n file sync with your API key.
A Model Context Protocol (MCP) server that exposes DeepL text translation, document translation, rephrasing, and glossary and style rule lookups as MCP tools.
Usage
You need Node.js 18 or newer and a DeepL API key. Pick an API plan and create a key in your DeepL account.
The server communicates over stdio, so it is normally started by an MCP client rather than by hand. To try it directly:
DEEPL_API_KEY=your-api-key npx -y deepl-mcp-server
It exits immediately if DEEPL_API_KEY is not set.
To work on the server itself:
git clone https://github.com/DeepL/deepl-mcp-server.git
cd deepl-mcp-server
npm install
Configuration
Register it as a stdio server with DEEPL_API_KEY in the server's environment. In Claude Code:
claude mcp add deepl --env DEEPL_API_KEY=your-api-key -- npx -y deepl-mcp-server
For clients configured through a JSON file:
{
"mcpServers": {
"deepl": {
"command": "npx",
"args": ["-y", "deepl-mcp-server"],
"env": {
"DEEPL_API_KEY": "your-api-key"
}
}
}
}
Where that file lives and how each client expects local stdio servers to be declared:
To run a local checkout instead of the published package, use node as the command and the absolute path to src/index.mjs as the argument.
Tools
Notes:
texttakes either a single string or an array of strings. Each entry is translated or rephrased independently.- Language codes are ISO 639-1, optionally with a region (
en-US). OmittingsourceLangCodetriggers automatic detection. A target code whose language requires a region gets a default applied:enbecomesen-US,ptbecomespt-BR,zhbecomeszh-Hans. - Glossary dictionaries are keyed by non-regional codes, so
get-glossary-dictionary-entriesdrops any region you pass. - Translating with a glossary requires an explicit
sourceLangCode. formalityacceptsless,more,default,prefer_less, andprefer_more. Theprefer_*values fall back to the default when the target language has no formality support.translate-documentreads and writes files on the machine running the server. WithoutoutputFile, the output path is derived from the input by appending the target language code, for examplereport_de.pdf. WithoutputFormat, the derived path uses that extension instead.- Style rules and custom instructions are read-only here. Create and edit them in your DeepL account.
License
MIT