For the WebUI just open translateGemmaWebUI.html in a browser and point it to your llama.cpp endpoint running TranslateGemma.
A Model Context Protocol (MCP) server that provides high-quality text translation via the local TranslateGemma LLM API. Designed for low-latency, private, and secure on-device translation with full control over the underlying model.
- Local Translation Inference: Leverages TranslateGemma (or compatible OpenAI-like API) on your machine β no external data leaves your device.
- Multi-Language Support: Translate between any language pairs using standardized BCP-47 codes (
en,de-DE,fr-FR,ja-JP, etc.). - Automatic Retries & Rate Limiting: Built-in exponential backoff and 30 req/min rate limiting for stability.
- Robust Error Handling: Graceful failures with clear, actionable error messages.
- Browser/Client Friendly: CORS-enabled HTTP endpoint for direct integration.
- LLM-Ready Output: Clean, structured responses optimized for tool-use workflows.
- Python 3.9+
fastmcp,uvicorn,httpx, andstarlette- A local TranslateGemma-compatible server (e.g., running via
ollama,vllm, or custom server) exposing an OpenAI/v1/chat/completionsendpoint.
pip install fastmcp uvicorn httpx starlettegit clone https://github.com/woheller69/TranslateGemmaMCP.git
cd TranslateGemmaMCPEnsure your TranslateGemma API is accessible at http://127.0.0.1:8080/v1/chat/completions (or configure via --api-url).
llama-server -ngl 99 -m translategemma-27b-it.Q6_K.gguf -c 8000 --no-jinja
python3 server.py --host 0.0.0.0 --port 3000Or override the API endpoint:
python3 server.py --api-url http://192.168.1.100:8000/v1/chat/completionsThe server exposes an MCP-compatible HTTP endpoint at http://localhost:3000/mcp.
Translates text using TranslateGemma with intelligent language handling.
async def translate(
text: str,
source_lang_code: str,
target_lang_code: str,
ctx: Context,
max_retries: int = 2,
) -> str| Name | Type | Description |
|---|---|---|
text |
str |
Required. The text to translate (up to ~2k chars recommended). |
source_lang_code |
str |
Required. Source language code (e.g., "en", "auto", "zh-Hans"). |
target_lang_code |
str |
Required. Target language code (e.g., "de-DE", "fr-FR", "ja-JP"). |
ctx |
Context |
MCP context (auto-injected). Used for logging. |
max_retries |
int |
Retry attempts on transient failures (default: 2). |
- β Translated text (clean, trimmed)
- β Error message (prefixed with
β/β οΈ) on failure
| CLI Flag | Environment | Default | Description |
|---|---|---|---|
--host |
HOST |
127.0.0.1 |
Server host (use 0.0.0.0 for external access) |
--port |
PORT |
3000 |
Server port |
--api-url |
API_URL |
http://127.0.0.1:8080/v1/chat/completions |
TranslateGemma API endpoint |
- All translation is performed locally on your machine.
- No telemetry, external tracking, or data collection.
- CORS configured permissively (
*) for local dev β restrict origins in production.
MIT License β see LICENSE for details.
