Install
$ agentstack add mcp-alwayssany-deepl-fastmcp-python-server ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
DeepL MCP Server
A Model Context Protocol (MCP) server that provides translation capabilities using the DeepL API using python and fastmcp.
Working Demo
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
Installation
Standard (Local) Installation
- Clone the repository:
``bash git clone https://github.com/AlwaysSany/deepl-fastmcp-python-server.git cd deepl-fastmcp-python-server ``
- Install uv (recommended) or use pip:
With pip,
``bash pip install uv ``
With pipx, ``bash pipx install uv ``
- Install dependencies:
``bash uv sync ``
- Set your environment variables:
Create a .env file or export DEEPL_AUTH_KEY in your shell.You can do this by running the following command and then update the .env file with your DeepL API key:
``bash cp .env.example .env ``
Example .env file,
``bash DEEPL_AUTH_KEY=your_deepl_api_key ``
- Run the server:
Normal mode:
``bash uv run python main.py --transport stdio ``
To run with Streamable HTTP transport (recommended for web deployments):
``bash uv run python main.py --transport streamable-http --host 127.0.0.1 --port 8000 ``
To run with SSE transport:
``bash uv run python main.py --transport sse --host 127.0.0.1 --port 8000 ``
Development mode:
``bash uv run mcp dev main.py ``
It will show some messages in the terminal like this:
> Spawned stdio transport Connected MCP client to backing server transport
> Created web app transport
> Set up MCP proxy
> 🔍 MCP Inspector is up and running at http://127.0.0.1:6274
MCP Inspector,
Dockerized Installation
- Build the Docker image:
``bash docker build -t deepl-fastmcp-server . ``
- Run the container:
``bash docker run -e DEEPL_AUTH_KEY=your_deepl_api_key -p 8000:8000 deepl-fastmcp-server ``
Docker Compose
- Create a
.envfile in the project root:
`` DEEPL_AUTH_KEY=your_deepl_api_key ``
- Start the service:
``bash docker compose up --build `` This will build the image and start the server, mapping port 8000 on your host to the container.
Configuration
DeepL API Key
You'll need a DeepL API key to use this server. You can get one by signing up at DeepL API. With a DeepL API Free account you can translate up to 500,000 characters/month for free.
Required environment variables:
DEEPL_AUTH_KEY(required): Your DeepL API key.DEEPL_SERVER_URL(optional): Override the DeepL API endpoint (default:https://api-free.deepl.com).
MCP Transports
This server supports the following MCP transports:
- Stdio: Default transport for local usage.
- SSE (Server-Sent Events): Ideal for real-time event-based communication.
- Streamable HTTP: Suitable for HTTP-based streaming applications.
To configure these transports, ensure your environment supports the required protocols and dependencies.
Usage
Use with Cursor IDE,
Click on File > Preferences > Cursor Settings > MCP > MCP Servers > Add new global MCP server
and paste the following json:
{
"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 Cursor IDE, 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.
For example,
"mcpServers": {
"deepl-fastmcp": {
"type": "sse",
"url": "http://127.0.0.1:8000/sse"
}
}
and then run mcp server from terminal uv run main.py --transport sse --host 127.0.0.1 --port 8000
Cursor Settings,
Use with Claude Desktop
This MCP server integrates with Claude Desktop to provide translation capabilities directly in your conversations with Claude.
Configuration Steps
- Install Claude Desktop if you haven't already
- 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
- Add the DeepL MCP server configuration:
{
"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 languagerephrase_text: Rephrase text in the same or different languagebatch_translate: Translate multiple texts in a single requesttranslate_document: Translate a document file using DeepL APIdetect_language: Detect the language of given textget_translation_history: Get recent translation operation historyanalyze_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 asget_translation_historytool)usage://patterns: Usage pattern analysis (same asanalyze_usage_patternstool)
Available Prompts
The following prompt is available for LLMs:
summarize: Returns a message instructing the LLM to summarize a given text.
Example usage: ``python @mcp.prompt("summarize") def summarize_prompt(text: str) -> str: return f"Please summarize the following text:\n\n{text}" ``
Tool Details
🖼️ Click to see the tool details
translate_text
Translate text between languages using the DeepL API.
- Parameters:
text: The text to translatetarget_language: Target language code (e.g., 'EN', 'DE', 'FR', 'ES', 'IT', 'JA', 'ZH')source_language(optional): Source language codeformality(optional): Controls formality level ('less', 'more', 'default', 'preferless', 'prefermore')preserve_formatting(optional): Whether to preserve formattingsplit_sentences(optional): How to split sentencestag_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 rephrasetarget_language: Language code for rephrasingformality(optional): Desired formality levelcontext(optional): Additional context for better rephrasing
batch_translate
Translate multiple texts in a single request.
- Parameters:
texts: List of texts to translatetarget_language: Target language codesource_language(optional): Source language codeformality(optional): Formality levelpreserve_formatting(optional): Whether to preserve formatting
translate_document
Translate a document file using DeepL API.
- Parameters:
file_path: Path to the document filetarget_language: Target language codeoutput_path(optional): Output path for translated documentformality(optional): Formality levelpreserve_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
gettranslationhistory
- No parameters required. See tool output for details.
analyzeusagepatterns
- No parameters required. See tool output for 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
Deploy on server
To deploy on a server(render.com), you need to compile your pyproject.toml to requirements.txt because it doesn't support uv right now. So to do that, you can use the following commands:
uv pip compile pyproject.toml > requirements.txt
then, create a runtime.txt file with the python version,
echo "python-3.13.3" > runtime.txt
finally, set the environment variable PORT, DEEPL_SERVER_URL and DEEPL_AUTH_KEY with your DeepL API key on render.com workspace before you set the entry point,
python main.py --transport sse --host 0.0.0.0 --port 8000
````
---
## Deployment
The MCP server is live and accessible on Render.com.
**Live Endpoint:**
[https://deepl-fastmcp-python-server.onrender.com/sse](https://deepl-fastmcp-python-server.onrender.com/sse)
You can interact with the API at the above URL.
[](https://deepl-fastmcp-python-server.onrender.com/sse)
---
## 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](https://github.com/AlwaysSany/deepl-fastmcp-python-server/blob/main/CONTRIBUTING.md)
## Contact
- Author: [Sany Ahmed](https://github.com/sany2k8)
- Email: sany2k8@gmail.com
## Links
- [DeepL API Documentation](https://www.deepl.com/docs-api?utm_source=github&utm_medium=github-mcp-server-readme)
- [Model Context Protocol Documentation](https://modelcontextprotocol.io/docs/)
## Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- **Author:** [AlwaysSany](https://github.com/AlwaysSany)
- **Source:** [AlwaysSany/deepl-fastmcp-python-server](https://github.com/AlwaysSany/deepl-fastmcp-python-server)
- **License:** MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.