Multilingual translation for ADK-Rust Enterprise agents. Provides 5 MCP tools across 200+ languages — zero configuration, no API keys required.
- 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.tomlfor automatic ADK-Rust Enterprise onboarding.
| 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 |
| Backend | Purpose | Rate Limit |
|---|---|---|
| MyMemory | Primary translation engine | 5,000 words/day (anonymous) |
| MyMemory (with email) | Extended quota | 30,000 words/day |
cargo install mcp-translategit clone https://github.com/zavora-ai/mcp-translate
cd mcp-translate
cargo build --releaseThe binary is at target/release/mcp-translate.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"translate": {
"command": "mcp-translate"
}
}
}Add to your project's .kiro/settings/mcp.json:
{
"mcpServers": {
"translate": {
"command": "mcp-translate"
}
}
}Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"translate": {
"command": "mcp-translate"
}
}
}Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"translate": {
"command": "mcp-translate"
}
}
}Add to ~/.codex/config.json:
{
"mcpServers": {
"translate": {
"command": "mcp-translate"
}
}
}Add to ~/.config/opencode/config.json:
{
"mcp": {
"translate": {
"command": "mcp-translate"
}
}
}mcp-translate --transport http --port 8080Then connect your client to http://localhost:8080/mcp.
docker run -p 8080:8080 ghcr.io/zavora-ai/mcp-translate:latest{
"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"
}
]
}{
"name": "detect_language",
"arguments": {
"text": "Bonjour le monde, comment allez-vous?"
}
}Response:
{
"detected_language": "fr",
"text_sample": "Bonjour le monde, comment allez-vous?"
}{
"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!" }
]
}{
"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"
}
]
}| Variable | Required | Purpose |
|---|---|---|
MYMEMORY_EMAIL |
No | Increases daily quota from 5,000 to 30,000 words |
RUST_LOG |
No | Log level (default: info) |
server_id = "mcp_translate"
display_name = "Translate"
version = "1.0.0"
domain = "translation"
risk_level = "low"
writes_allowed = "none"
transports = ["stdio"]
governance_gates = []| 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 |
| Code | Language | Code | Language | Code | Language |
|---|---|---|---|---|---|
sw |
Swahili | am |
Amharic | ha |
Hausa |
yo |
Yoruba | ig |
Igbo | zu |
Zulu |
af |
Afrikaans | rw |
Kinyarwanda | so |
Somali |
| Code | Language | Code | Language | Code | Language |
|---|---|---|---|---|---|
sv |
Swedish | no |
Norwegian | da |
Danish |
fi |
Finnish | et |
Estonian | lv |
Latvian |
| Code | Meaning |
|---|---|
auto |
Autodetect source language |
Full list of 200+ languages available via the list_languages tool or at mymemory.translated.net.
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
Agent has English documentation
→ batch_translate (en → [fr, de, es, ja, zh])
→ 5 localized versions in one call
Agent needs official translation reference
→ search_translation_memory ("Terms and conditions", en→fr)
→ Returns EU Commission verified translation (quality: 100%)
Agent receives translation from external source
→ translate (same text, same pair)
→ Compare quality scores and alternatives
→ Flag discrepancies for human review
# 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| Document | Description |
|---|---|
| mcp-server.toml | ADK-Rust Enterprise registry manifest |
| CHANGELOG.md | Version history |
| Rust Docs | Generated API documentation |
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
![]() James Karanja Maina |
|---|
Apache-2.0 — see LICENSE for details.
Part of the ADK-Rust Enterprise MCP server ecosystem.
Built with ❤️ by Zavora AI
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 tracing —
RUST_LOGenv-filter for observability
