mcp-translate 1.0.1

Translation MCP server — translate text, detect languages, batch translate, translation memory (200+ languages, zero config)
Documentation

Translation MCP Server

Crates.io Docs.rs License ADK-Rust Enterprise Registry Ready

Multilingual translation for ADK-Rust Enterprise agents. Provides 5 MCP tools across 200+ languages — zero configuration, no API keys required.

Architecture

Key Principles

  • Zero configuration — works out of the box with no API keys or environment variables.
  • 200+ languages — covers every major language including African, Asian, and indigenous languages.
  • Translation memory — leverages millions of human-verified translations from MyMemory.
  • Quality scoring — every translation includes a confidence/quality score.
  • Batch support — translate into multiple languages in a single call.
  • Registry-ready — ships with mcp-server.toml for automatic ADK-Rust Enterprise onboarding.

Tools

Tool Purpose Risk Class
translate Translate text between any two languages Read-only
detect_language Detect the language of input text Read-only
batch_translate Translate text into multiple target languages at once Read-only
search_translation_memory Search human-verified translation memory Read-only
list_languages List supported languages with ISO 639-1 codes Read-only

Backends

Backend Purpose Rate Limit
MyMemory Primary translation engine 5,000 words/day (anonymous)
MyMemory (with email) Extended quota 30,000 words/day

Installation

From crates.io

cargo install mcp-translate

Build from source

git clone https://github.com/zavora-ai/mcp-translate
cd mcp-translate
cargo build --release

The binary is at target/release/mcp-translate.

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "translate": {
      "command": "mcp-translate"
    }
  }
}

Kiro

Add to your project's .kiro/settings/mcp.json:

{
  "mcpServers": {
    "translate": {
      "command": "mcp-translate"
    }
  }
}

Cursor

Add to .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "translate": {
      "command": "mcp-translate"
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "translate": {
      "command": "mcp-translate"
    }
  }
}

Codex (OpenAI)

Add to ~/.codex/config.json:

{
  "mcpServers": {
    "translate": {
      "command": "mcp-translate"
    }
  }
}

Open Code

Add to ~/.config/opencode/config.json:

{
  "mcp": {
    "translate": {
      "command": "mcp-translate"
    }
  }
}

Any MCP Client (Streamable HTTP)

mcp-translate --transport http --port 8080

Then connect your client to http://localhost:8080/mcp.

Docker

docker run -p 8080:8080 ghcr.io/zavora-ai/mcp-translate:latest

Quick Start

Translate text

{
  "name": "translate",
  "arguments": {
    "text": "The future of artificial intelligence is bright",
    "source": "en",
    "target": "sw"
  }
}

Response:

{
  "translation": "Mustakabali wa akili bandia ni mzuri",
  "source_lang": "en",
  "target_lang": "sw",
  "quality": 0.85,
  "alternatives": [
    {
      "translation": "Mustakabali wa akili bandia ni mzuri",
      "quality": "85",
      "source": "Machine Translation"
    }
  ]
}

Detect language

{
  "name": "detect_language",
  "arguments": {
    "text": "Bonjour le monde, comment allez-vous?"
  }
}

Response:

{
  "detected_language": "fr",
  "text_sample": "Bonjour le monde, comment allez-vous?"
}

Batch translate

{
  "name": "batch_translate",
  "arguments": {
    "text": "Hello world",
    "source": "en",
    "targets": ["fr", "de", "ja", "ar", "sw"]
  }
}

Response:

{
  "source": "en",
  "original": "Hello world",
  "translations": [
    { "language": "fr", "translation": "Bonjour le monde" },
    { "language": "de", "translation": "Hallo Welt" },
    { "language": "ja", "translation": "こんにちは、世界。" },
    { "language": "ar", "translation": "مرحبا بكم" },
    { "language": "sw", "translation": "Jambo dunia!" }
  ]
}

Search translation memory

{
  "name": "search_translation_memory",
  "arguments": {
    "text": "Terms and conditions",
    "source": "en",
    "target": "fr"
  }
}

Response:

{
  "query": "Terms and conditions",
  "langpair": "en|fr",
  "matches": 5,
  "results": [
    {
      "segment": "Terms and Conditions",
      "translation": "Termes et conditions",
      "quality": "100",
      "source": "European Commission",
      "last_updated": "2024-03-15"
    }
  ]
}

Configuration

Environment Variables

Variable Required Purpose
MYMEMORY_EMAIL No Increases daily quota from 5,000 to 30,000 words
RUST_LOG No Log level (default: info)

MCP Server Manifest

server_id = "mcp_translate"
display_name = "Translate"
version = "1.0.0"
domain = "translation"
risk_level = "low"
writes_allowed = "none"
transports = ["stdio"]
governance_gates = []

Supported Languages

Major Languages

Code Language Code Language Code Language
en English fr French de German
es Spanish pt Portuguese it Italian
nl Dutch ru Russian zh Chinese
ja Japanese ko Korean ar Arabic
hi Hindi bn Bengali ur Urdu
tr Turkish pl Polish uk Ukrainian
vi Vietnamese th Thai id Indonesian

African Languages

Code Language Code Language Code Language
sw Swahili am Amharic ha Hausa
yo Yoruba ig Igbo zu Zulu
af Afrikaans rw Kinyarwanda so Somali

Nordic Languages

Code Language Code Language Code Language
sv Swedish no Norwegian da Danish
fi Finnish et Estonian lv Latvian

Special Codes

Code Meaning
auto Autodetect source language

Full list of 200+ languages available via the list_languages tool or at mymemory.translated.net.

Use Cases

Multilingual Customer Support

Agent receives message in unknown language
→ detect_language → "sw" (Swahili)
→ translate (sw→en) → English for agent processing
→ translate (en→sw) → Reply in customer's language

Document Localization

Agent has English documentation
→ batch_translate (en → [fr, de, es, ja, zh])
→ 5 localized versions in one call

Legal/Compliance Translation

Agent needs official translation reference
→ search_translation_memory ("Terms and conditions", en→fr)
→ Returns EU Commission verified translation (quality: 100%)

Content Quality Assurance

Agent receives translation from external source
→ translate (same text, same pair)
→ Compare quality scores and alternatives
→ Flag discrepancies for human review

Testing

# Build
cargo build

# Run (zero config)
cargo run

# Test with MCP client
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0.1"}}}' | cargo run 2>/dev/null

Documentation

Document Description
mcp-server.toml ADK-Rust Enterprise registry manifest
CHANGELOG.md Version history
Rust Docs Generated API documentation

Contributing

Contributions welcome. Priority areas:

  • Additional translation backends (DeepL, Google Translate with API key)
  • Glossary/terminology management
  • Translation caching layer
  • Document-level translation with formatting preservation

Contributors

James Karanja Maina

License

Apache-2.0 — see LICENSE for details.


Part of the ADK-Rust Enterprise MCP server ecosystem.

Built with ❤️ by Zavora AI

Registry Compliance

This server implements the ADK MCP SDK contract:

  • HealthCheck — async health probe for registry monitoring
  • mcp-server.toml — manifest declaring tools, risk classes, and credentials
  • Structured tracingRUST_LOG env-filter for observability