Labsco
AlwaysSany logo

DeepL

β˜… 4

from AlwaysSany

Translate text using the DeepL API.

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedAccount requiredAdvanced setup

DeepL MCP Server

A Model Context Protocol (MCP) server that provides translation capabilities using the DeepL API using python and fastmcp.

Working Demo

<video src="https://private-user-images.githubusercontent.com/3911298/452408725-04acb3c8-f37b-43a9-8b6f-249843a052ed.webm?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NDkyMzI2NzYsIm5iZiI6MTc0OTIzMjM3NiwicGF0aCI6Ii8zOTExMjk4LzQ1MjQwODcyNS0wNGFjYjNjOC1mMzdiLTQzYTktOGI2Zi0yNDk4NDNhMDUyZWQud2VibT9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTA2MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwNjA2VDE3NTI1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM5NTJiMjhjMWVlODM0ZDVlMzMyNzgzNGE5NmRhZTI0YjQ5OGI5NzUzMWFkZTkxNzU0MDJkNDRmZWMwYTk1Y2ImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Kp9OyvzESVW_ml5tQhg1U5Fh_rFar78HDv0uXPaVAkU" controls width="100%"></video>

Features

  • Translate text between numerous languages
  • Rephrase text using DeepL's capabilities
  • Access to all DeepL API languages and features
  • Automatic language detection
  • Formality control for supported languages
  • Batch translation and document translation
  • Usage and quota reporting
  • Translation history and usage analysis
  • Support for multiple MCP transports: stdio, SSE, and Streamable HTTP

Use with Claude Desktop

This MCP server integrates with Claude Desktop to provide translation capabilities directly in your conversations with Claude.

Configuration Steps

  1. Install Claude Desktop if you haven't already

  2. Create or edit the Claude Desktop configuration file:

    • On macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • On Windows: %AppData%\Claude\claude_desktop_config.json
    • On Linux: ~/.config/Claude/claude_desktop_config.json
  3. Add the DeepL MCP server configuration:

Copy & paste β€” that's it
{
  "mcpServers": {
    "deepl-fastmcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/yourdeepl-fastmcp-python-server/.venv",
        "run",
        "--with",
        "mcp",
        "python",
        "/path/to/your/deepl-fastmcp-python-server/main.py",
        "--transport",
        "streamable-http",
        "--host",
        "127.0.0.1",
        "--port",
        "8000"
      ]
    }
  }
}

Note: To use Streamable HTTP or SSE transports with Claude Desktop, change the "--transport", "stdio" line to "--transport", "streamable-http", "--host", "127.0.0.1", "--port", "8000" or "--transport", "sse", "--host", "127.0.0.1", "--port", "8000" respectively, and adjust the host and port as needed.


Available Tools

This server provides the following tools:

  • translate_text: Translate text to a target language
  • rephrase_text: Rephrase text in the same or different language
  • batch_translate: Translate multiple texts in a single request
  • translate_document: Translate a document file using DeepL API
  • detect_language: Detect the language of given text
  • get_translation_history: Get recent translation operation history
  • analyze_usage_patterns: Analyze translation usage patterns from history

Available Resources

The following resources are available for read-only data access (can be loaded into LLM context):

  • usage://deepl: DeepL API usage info.
  • deepl://languages/source: Supported source languages.
  • deepl://languages/target: Supported target languages.
  • deepl://glossaries: Supported glossary language pairs.
  • history://translations: Recent translation operation history (same as get_translation_history tool)
  • usage://patterns: Usage pattern analysis (same as analyze_usage_patterns tool)

Available Prompts

The following prompt is available for LLMs:

  • summarize: Returns a message instructing the LLM to summarize a given text.

    Example usage:

    Copy & paste β€” that's it
    @mcp.prompt("summarize")
    def summarize_prompt(text: str) -> str:
        return f"Please summarize the following text:\n\n{text}"

Tool Details

<details> <summary>πŸ–ΌοΈ Click to see the tool details</summary>

translate_text

Translate text between languages using the DeepL API.

  • Parameters:
    • text: The text to translate
    • target_language: Target language code (e.g., 'EN', 'DE', 'FR', 'ES', 'IT', 'JA', 'ZH')
    • source_language (optional): Source language code
    • formality (optional): Controls formality level ('less', 'more', 'default', 'prefer_less', 'prefer_more')
    • preserve_formatting (optional): Whether to preserve formatting
    • split_sentences (optional): How to split sentences
    • tag_handling (optional): How to handle tags

rephrase_text

Rephrase text in the same or different language using the DeepL API.

  • Parameters:
    • text: The text to rephrase
    • target_language: Language code for rephrasing
    • formality (optional): Desired formality level
    • context (optional): Additional context for better rephrasing

batch_translate

Translate multiple texts in a single request.

  • Parameters:
    • texts: List of texts to translate
    • target_language: Target language code
    • source_language (optional): Source language code
    • formality (optional): Formality level
    • preserve_formatting (optional): Whether to preserve formatting

translate_document

Translate a document file using DeepL API.

  • Parameters:
    • file_path: Path to the document file
    • target_language: Target language code
    • output_path (optional): Output path for translated document
    • formality (optional): Formality level
    • preserve_formatting (optional): Whether to preserve document formatting

detect_language

Detect the language of given text using DeepL.

  • Parameters:
    • text: Text to analyze for language detection

get_translation_history

  • No parameters required. See tool output for details.

analyze_usage_patterns

  • No parameters required. See tool output for details.
</details>

Supported Languages

The DeepL API supports a wide variety of languages for translation. You can use the get_source_languages and get_target_languages tools, or the deepl://languages/source and deepl://languages/target resources, to see all currently supported languages.

Some examples of supported languages include:

  • English (en, en-US, en-GB)
  • German (de)
  • Spanish (es)
  • French (fr)
  • Italian (it)
  • Japanese (ja)
  • Chinese (zh)
  • Portuguese (pt-BR, pt-PT)
  • Russian (ru)
  • And many more

Debugging

For debugging information, visit the MCP debugging documentation.

Error Handling

If you encounter errors with the DeepL API, check the following:

  • Verify your API key is correct
  • Make sure you're not exceeding your API usage limits
  • Confirm the language codes you're using are supported

License

MIT

TODOs

  • Add more test cases
  • Add more features
  • Add more documentation
  • Add more security features
  • Add more logging
  • Add more monitoring
  • Add more performance optimization

Contributing

Contributions are welcome! If you have suggestions for improvements or new features, please open an issue or submit a pull request.

See more at Contributing

Contact

Links