Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TartuNLP MCP Servertranslate 'Hello, how are you?' from English to Estonian"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TartuNLP MCP Server
A Model Context Protocol (MCP) server that provides seamless access to TartuNLP translation services from the University of Tartu. This server enables AI assistants and applications to perform high-quality machine translation across 700+ language pairs, with specialized support for European and Finno-Ugric languages.
Features
🌍 700+ Language Pairs - Comprehensive translation coverage including European languages and rare Finno-Ugric languages
🚀 Docker-First Deployment - Pre-built Docker images for easy deployment across platforms
🔧 Simple Integration - Standard MCP protocol support for seamless integration with AI assistants
🎯 Specialized Language Support - Expert translation for Estonian, Finnish, Sami languages, and other minority languages
📦 Zero Configuration - Works out of the box with sensible defaults
Quick Start
Using Docker (Recommended)
The easiest way to use this MCP server is via Docker. Pre-built images are automatically published to GitHub Container Registry and support both linux/amd64 and linux/arm64 platforms.
Add this configuration to your MCP settings file (e.g., ~/.vscode-server/data/User/mcp.json or Claude Desktop config):
{
"mcpServers": {
"TartuNLP": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/tbitu/tartunlp-mcp:latest"
]
}
}
}The Docker approach requires no local Python installation or dependency management. The image is kept minimal (~150MB) for fast downloads.
Using Python (Local Development)
For local development or if you prefer not to use Docker:
Install the package:
pip install -e .Add to your MCP configuration:
Linux/Mac:
{ "mcpServers": { "TartuNLP": { "command": "python3", "args": ["-m", "tartunlp_mcp_server"] } } }Windows:
{ "mcpServers": { "TartuNLP": { "command": "python", "args": ["-m", "tartunlp_mcp_server"] } } }
Requires Python 3.8 or higher. Usepython3 on systems where both Python 2 and 3 are installed.
Available Tools
Once configured, the MCP server exposes the following tools to AI assistants:
translate_text
Translate text between any supported language pair.
Parameters:
text(string): The text to translatesource_lang(string): Source language code (e.g., 'eng', 'est', 'fin')target_lang(string): Target language code (e.g., 'eng', 'est', 'fin')model(string, optional): Specific translation model/domain to use
get_supported_languages
Retrieve the complete list of supported language pairs and available translation models.
Returns: List of all 700+ available translation pairs with source/target language information.
Development
Local Testing
# Install dependencies
pip install -e .
# Run the server locally
python -m tartunlp_mcp_serverBuilding Docker Images
# Build locally
docker build -t tartunlp-mcp .
# Test the Docker image
docker run -i --rm tartunlp-mcpCI/CD
Docker images are automatically built and published to GitHub Container Registry on every push to the main branch. The workflow:
Builds multi-platform images (linux/amd64, linux/arm64)
Tags images with branch name, commit SHA, and
latestPublishes to
ghcr.io/tbitu/tartunlp-mcp
See .github/workflows/docker-build-push.yml for details.
Supported Languages
The server supports 700 translation pairs as provided by TartuNLP's API. Based on the actual API response, the supported language pairs are:
Core European Languages with Full Coverage
English (eng) ↔ Estonian, German, Lithuanian, Latvian, Finnish, Russian, Ukrainian + all minority languages
Estonian (est) ↔ English, German, Lithuanian, Latvian, Finnish, Russian, Ukrainian + all minority languages
Finnish (fin) ↔ English, Estonian, German, Lithuanian, Latvian, Russian + all minority languages
Russian (rus) ↔ English, Estonian, German, Lithuanian, Latvian, Finnish, Ukrainian + all minority languages
Latvian (lav) ↔ English, Estonian, German, Lithuanian, Finnish, Russian + all minority languages
Limited European Language Support
German (ger) ↔ English, Estonian, Lithuanian, Latvian, Finnish, Russian (no minority language pairs)
Lithuanian (lit) ↔ English, Estonian, German, Latvian, Finnish, Russian (no minority language pairs)
Ukrainian (ukr) ↔ English, Estonian, Russian only
Norwegian (nor) ↔ All minority languages only (no major European languages except through minority languages)
Hungarian (hun) ↔ All minority languages only (no major European languages except through minority languages)
Finno-Ugric & Minority Languages (Full Matrix)
All minority languages can translate to/from each other and to/from: eng, est, fin, rus, lav, nor, hun
Karelian (krl) - Karelian language
Ludian (lud) - Ludic language
Veps (vep) - Vepsian language
Livonian (liv) - Livonian language (critically endangered)
Võro (vro) - Võro language (South Estonian)
Mari (mhr) - Eastern Mari
Hill Mari (mrj) - Western Mari
Udmurt (udm) - Udmurt language
Komi-Permyak (koi) - Komi-Permyak language
Komi-Zyrian (kpv) - Komi-Zyrian language
Moksha (mdf) - Moksha Mordvin
Erzya (myv) - Erzya Mordvin
Olonets (olo) - Olonets Karelian
Mansi (mns) - Mansi language
Khanty (kca) - Khanty language
Sami Languages (Full Matrix)
Southern Sami (sma) - Åarjelsaemien gïele
Northern Sami (sme) - Davvisámegiella
Inari Sami (smn) - Anarâškielâ
Skolt Sami (sms) - Sääʹmǩiõll
Lule Sami (smj) - Julevsámegiella
Key Translation Patterns
Major European Language Pairs:
eng ↔ est, ger, lit, lav, fin, rus, ukr
est ↔ eng, ger, lit, lav, fin, rus, ukr
fin ↔ eng, est, ger, lit, lav, rus
rus ↔ eng, est, ger, lit, lav, fin, ukr
lav ↔ eng, est, ger, lit, fin, rus
ger ↔ eng, est, lit, lav, fin, rus (limited)
lit ↔ eng, est, ger, lav, fin, rus (limited)
ukr ↔ eng, est, rus (very limited)
Minority Language Hub: All 20 minority/indigenous languages form a complete translation matrix with each other and connect to: eng, est, fin, rus, lav, nor, hun
Note: The exact language pairs are determined by TartuNLP's API and may be updated. Use the get_supported_languages tool to get the current list.
Tools
translate_text: Translate text between supported languagesget_supported_languages: List all supported language pairs
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.