
Smartling MCP Docker
MCPSmartling's official Dockerized MCP wrapping smartling-cli: agents list projects and target languages, upload source files, pull translations, check progress, run machine translation, and import or export glossaries. Needs Docker plus Smartling user ID, secret, project ID and account ID.
Smartling MCP Docker
A Docker-based MCP (Model Context Protocol) server that wraps smartling-cli — the official Smartling command-line tool. This MCP server is a thin wrapper and can only do what smartling-cli supports. Refer to the smartling-cli documentation for the full list of capabilities and limitations.
Requirements
- Docker
- Smartling account credentials
Tools
| Tool | Description |
|---|---|
smartling-cli | Run any smartling-cli command (projects, files, mt) |
smartling-ls | List files in /smartling or a subdirectory |
smartling-cat | Print the contents of a file inside /smartling |
Setup
1. Pull the image
docker pull smartlinginc/smartling-cli-mcp
2. Configure Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"smartling": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "SMARTLING_USER_ID",
"-e", "SMARTLING_SECRET",
"-e", "SMARTLING_PROJECT_ID",
"-e", "SMARTLING_ACCOUNT_ID",
"-v", "/absolute/path/to/your/project:/smartling",
"smartlinginc/smartling-cli-mcp"
],
"env": {
"SMARTLING_USER_ID": "your-user-id",
"SMARTLING_SECRET": "your-secret",
"SMARTLING_PROJECT_ID": "your-project-id",
"SMARTLING_ACCOUNT_ID": "your-account-id"
}
}
}
}
Important: The volume mount must map to
/smartlinginside the container. Thesmartling-lsandsmartling-cattools only work within that path.
SMARTLING_ACCOUNT_IDis required for most commands (files push,projects list,glossaries *, etc.). The MCP server injects it automatically as-a <account-id>— it is not natively supported by the CLI as an env var.
To use a custom smartling.yml (e.g. with file type mappings), mount it into /app/smartling.yml inside the container:
"-v", "/absolute/path/to/your/project:/smartling",
"-v", "/absolute/path/to/smartling.yml:/app/smartling.yml",
Restart Claude Desktop after editing the config.
3. Configure Claude Code
Add to your project's .claude/settings.json or run /mcp in Claude Code:
{
"mcpServers": {
"smartling": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "SMARTLING_USER_ID",
"-e", "SMARTLING_SECRET",
"-e", "SMARTLING_PROJECT_ID",
"-e", "SMARTLING_ACCOUNT_ID",
"-v", "/absolute/path/to/your/project:/smartling",
"smartlinginc/smartling-cli-mcp"
],
"env": {
"SMARTLING_USER_ID": "your-user-id",
"SMARTLING_SECRET": "your-secret",
"SMARTLING_PROJECT_ID": "your-project-id",
"SMARTLING_ACCOUNT_ID": "your-account-id"
}
}
}
}
With a custom smartling.yml:
{
"mcpServers": {
"smartling": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "SMARTLING_USER_ID",
"-e", "SMARTLING_SECRET",
"-e", "SMARTLING_PROJECT_ID",
"-e", "SMARTLING_ACCOUNT_ID",
"-v", "/absolute/path/to/your/project:/smartling",
"-v", "/absolute/path/to/smartling.yml:/app/smartling.yml",
"smartlinginc/smartling-cli-mcp"
],
"env": {
"SMARTLING_USER_ID": "your-user-id",
"SMARTLING_SECRET": "your-secret",
"SMARTLING_PROJECT_ID": "your-project-id",
"SMARTLING_ACCOUNT_ID": "your-account-id"
}
}
}
}
Usage examples
Once configured, ask Claude naturally:
- "List my Smartling projects"
- "Show files available for translation"
- "Push /smartling/en/strings.json to Smartling with URI en/strings.json"
- "Pull Spanish translations for all JSON files into /smartling"
- "Check translation status for my project"
- "Machine translate /smartling/en/strings.json to French"
Available smartling-cli commands
PROJECTS
projects list List all projects in the account
projects info Show details about the current project
projects locales List target locales
-s, --short Locale IDs only
--source Source locale only
--format '<go-template>' Custom output format
FILES
files list ['<mask>'] List files in project
--short URIs only
files push <file> [<uri>] Upload a file
--type <type> Override file type (e.g. json, plaintext)
-b, --branch <prefix> Add branch prefix; @auto detects git branch
--directive <directive> Set file-level directive
files pull ['<mask>'] Download translated files
--source Download source only
-l <locale> Target locale (repeatable)
files delete ['<mask>'] Delete files
files rename <old-uri> <new-uri> Rename a file URI
files status Show translation progress
MT (Machine Translation)
mt detect '<mask>' Detect source language
-s, --short Output locale code only
--output table|json Output format
mt translate '<mask>' Machine translate files
-l, --target-locale <locale> Target locale (repeatable)
--source-locale <locale> Source language (auto-detected if omitted)
--input-directory <dir> Source directory
--output-directory <dir> Output directory
GLOSSARIES
glossaries list List glossaries in the account
--name <name> Filter by name
--output simple|table|json Output format
glossaries create <name> Create a new glossary
--locale <locale> Add a locale (repeatable)
--description <text> Optional description
--verification-mode Enable verification mode
--fallback-locale <from>:<to[,to]> Fallback locale mapping (repeatable)
glossaries export <uid|name> [file] Export glossary entries to a file
--file-type csv|xlsx|tbx Export file format (required)
--tbx-version v2|v3 TBX version (required when --file-type=tbx)
--focus-locale <locale> Focus locale for the export
--locale <locale> Include locale in export (repeatable)
--skip-entries Skip glossary entries in the export
--filter-query <text> Filter entries by free-text query
--filter-entry-state <state> Filter entries by state
--filter-locale <locale> Filter by locale ID (repeatable)
--filter-entry-uid <uid> Filter by entry UID (repeatable)
--filter-missing-translation-locale Filter: locale missing a translation
--filter-present-translation-locale Filter: locale with a translation
--filter-created-date <RFC3339> Filter by created date
--filter-last-modified-date <RFC3339> Filter by last modified date
glossaries import <uid|name> <file> Import glossary from CSV/XLSX/TBX
--archive-mode Archive entries missing from the file
--media-type <type> Override media type detection
GLOBAL FLAGS
-a, --account <account-id> Override account ID
-p, --project <project-id> Override project ID
Full documentation: smartling-cli wiki
Recursos relacionados

Tolgee Platform
MCPOpen-source, self-hostable localization platform with a built-in MCP server: agents search keys, create and edit translations, manage languages and run machine translation. Works with Tolgee Cloud or your own instance; create a project API key or personal access token in settings.
tolgee/tolgee-platform4.1k
Weblate MCP Server
MCPCommunity MCP for Weblate, the open-source translation platform (self-hosted or hosted): translators can find untranslated or needs-editing strings in plain language, write translations in bulk, and check per-language progress and change history. Needs your Weblate API URL and token, and Node.js.
mmntm/weblate-mcp22
POEditor MCP Server
MCPPOEditor's official remote MCP: translators and localization teams can manage projects, terms and translations from chat, run Google, Microsoft or DeepL machine translation, check quality and export language files. Needs a POEditor account (browser sign-in or API token).
POEditor/poeditor-mcp1
SimpleLocalize MCP Server
MCPSimpleLocalize's official MCP: translators and localization teams can view and edit keys and translations from chat, trigger auto-translation, maintain glossaries, and export or publish translation files. Needs a SimpleLocalize project API key and Node.js.
simplelocalize/simplelocalize-mcp-server0
Amazon Translate MCP Server
MCPOfficial AWS MCP for Amazon Translate: translation and language detection across 75+ languages, custom terminology for consistent proper nouns, and batch translation of documents in S3 with failed-job analysis. Needs an AWS account and local credentials; billed per character; requires uv.
awslabs/mcp9.8k
Intlayer MCP
MCPIntlayer's official MCP server: in projects using Intlayer, lets agents build dictionaries, fill in missing translations with AI, sync multilingual content with the Intlayer CMS and look up docs. Needs Node.js; AI translation needs your own LLM API key, CMS sync needs credentials.
aymericzip/intlayer852