DeepL exposes a formality setting on the languages that distinguish it, and that is the difference between a translation that reads correctly and one that reads rudely — worth setting explicitly rather than accepting the default. The usage resource is the other practical piece: a free tier that stops at a character cap is much easier to live with when the assistant can check the remaining budget itself.
A DeepL client covering more of the API than translation alone — it also rephrases, detects languages, translates whole document files, and reports your usage against the account quota.
- `translate_text` with a target language, an optional source language, formality control, formatting preservation, sentence splitting and tag handling
- `rephrase_text` rewrites text in the same or a different language, with formality and optional context
- `batch_translate` handles a list of texts in one request, and `translate_document` translates a file on disk to an output path
- `detect_language` identifies the language of a passage
- `get_translation_history` and `analyze_usage_patterns` look back at what has been translated
- Read-only resources you can load straight into context: `usage://deepl` for quota, `deepl://languages/source` and `deepl://languages/target` for supported languages, `deepl://glossaries` for glossary language pairs
- A `summarize` prompt for the common follow-on step
A DeepL API key in DEEPL_AUTH_KEY; the free tier covers 500,000 characters a month. DEEPL_SERVER_URL overrides the endpoint and defaults to the free API host. Install by cloning and running uv sync, then start with a transport flag — stdio, streamable-http or sse, with host and port for the latter two. A Dockerfile and compose file are provided. Published on PyPI as deepl-fastmcp-python-server, version 0.1.0.
