Lara Translate MCP Server

MCP

Translated's official MCP for its Lara translation model: language detection, context-aware translation in faithful, fluent or creative styles, plus translation memories and glossaries. Needs a Lara Translate account (browser sign-in on first use); the free plan has a monthly quota.

translated/lara-mcp100
Voir sur GitHub
README

Lara Translate MCP Server

A Model Context Protocol (MCP) server for Lara Translate, enabling professional translation capabilities with support for language detection, context-aware translations, translation memories, and glossaries.

Lara leverages Translation Language Models (T-LMs) trained on billions of professionally translated segments, delivering domain-specific translations that capture cultural nuances and industry terminology that general-purpose LLMs often miss.

License Docker Pulls npm downloads

Quick Start

Pick your client below — no API keys needed, just log in through your browser.

Claude Desktop

  1. Go to Settings > Connectors
  2. Click Add Custom Connector
  3. Enter the name: Lara
  4. Enter the URL: https://mcp-v2.laratranslate.com/v1
  5. Click Add, then click Connect
  6. Log in with your Lara Translate credentials in the browser

Done — Lara Translate is now available in your conversations.

Cursor

Once Lara Translate is listed in the official Cursor plugin marketplace, install it from inside Cursor:

  1. Open the plugin browser and search for Lara Translate.
  2. Click Install.
  3. The first time you use a Lara tool, your browser will open to authenticate.

In the meantime, or for manual installation, see the Client Setup Guide.

Claude Code

Once Lara Translate is listed in the official Claude Code plugin marketplace, install it from inside Claude Code:

/plugin

Search for Lara Translate and install. The first time you use a Lara tool, your browser will open to authenticate.

In the meantime, or for manual installation, see the Client Setup Guide.

Other Clients

For step-by-step OAuth setup on VS Code (GitHub Copilot), Windsurf, Cline, Continue, and more, see the Client Setup Guide.

If your client isn't listed, the general approach is to add the server URL (https://mcp-v2.laratranslate.com/v1) to your MCP config — the client will handle OAuth authentication automatically.

For a complete list of MCP-compatible clients, visit the official MCP clients page.

Verify It Works

After setup, test with a simple prompt:

Translate with Lara "Hello world" to Spanish

Your client should invoke Lara Translate and return the translation.


Available Tools

Translation

ToolDescription
translateTranslate text between languages with support for context, instructions, translation memories, glossaries, and multiple styles (faithful/fluid/creative)

Language Detection

ToolDescription
detect_languageDetect the language of a given text or array of texts
list_languagesList all supported language codes

Translation Memories

ToolDescription
list_memoriesList all translation memories in your account
create_memoryCreate a new translation memory
update_memoryUpdate a translation memory's name
delete_memoryDelete a translation memory
add_translationAdd a translation unit (source + target pair) to a memory
delete_translationDelete a translation unit from a memory
import_tmxImport a TMX file into a memory
check_import_statusCheck the status of a TMX import job

Glossaries

ToolDescription
list_glossariesList all glossaries in your account
get_glossaryGet details of a specific glossary
create_glossaryCreate a new glossary
update_glossaryUpdate a glossary's name
delete_glossaryDelete a glossary
add_glossary_entryAdd or replace a term entry in a glossary
delete_glossary_entryDelete a term entry from a glossary
import_glossary_csvImport entries from a CSV file into a glossary
check_glossary_import_statusCheck the status of a glossary CSV import job
export_glossaryExport a glossary as CSV
get_glossary_countsGet the number of entries in a glossary

Authentication

OAuth 2.0 (default)

This is the method used in the Quick Start above. You provide only the server URL in your client config — no API keys needed. Your client handles the OAuth flow automatically: it opens your browser, you log in with your Lara Translate credentials, and you're connected.

For per-client OAuth setup instructions, see the Client Setup Guide.

Access Key (alternative)

If you prefer to authenticate with API keys instead of browser login, you can pass your credentials directly in the client config. Get your Access Key ID and Secret from Lara Translate.

See the Access Key section in the Client Setup Guide for config examples.


Self-Hosting

Most users can connect to the hosted endpoint (https://mcp-v2.laratranslate.com/v1) using the Quick Start instructions above. The options below are for running the server yourself.

STDIO via NPX

Requires Node.js.

{
  "mcpServers": {
    "lara-translate": {
      "command": "npx",
      "args": ["-y", "@translated/lara-mcp@latest"],
      "env": {
        "LARA_ACCESS_KEY_ID": "<YOUR_ACCESS_KEY_ID>",
        "LARA_ACCESS_KEY_SECRET": "<YOUR_ACCESS_KEY_SECRET>"
      }
    }
  }
}

STDIO via Docker

Requires Docker.

{
  "mcpServers": {
    "lara-translate": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "LARA_ACCESS_KEY_ID",
        "-e", "LARA_ACCESS_KEY_SECRET",
        "translatednet/lara-mcp:latest"
      ],
      "env": {
        "LARA_ACCESS_KEY_ID": "<YOUR_ACCESS_KEY_ID>",
        "LARA_ACCESS_KEY_SECRET": "<YOUR_ACCESS_KEY_SECRET>"
      }
    }
  }
}

Building from Source

Node.js
git clone https://github.com/translated/lara-mcp.git
cd lara-mcp
pnpm install
pnpm run build

Then add to your MCP config:

{
  "mcpServers": {
    "lara-translate": {
      "command": "node",
      "args": ["<FULL_PATH_TO_PROJECT>/dist/index.js"],
      "env": {
        "LARA_ACCESS_KEY_ID": "<YOUR_ACCESS_KEY_ID>",
        "LARA_ACCESS_KEY_SECRET": "<YOUR_ACCESS_KEY_SECRET>"
      }
    }
  }
}
Docker
git clone https://github.com/translated/lara-mcp.git
cd lara-mcp
docker build -t lara-mcp .

Then add to your MCP config:

{
  "mcpServers": {
    "lara-translate": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "LARA_ACCESS_KEY_ID",
        "-e", "LARA_ACCESS_KEY_SECRET",
        "lara-mcp"
      ],
      "env": {
        "LARA_ACCESS_KEY_ID": "<YOUR_ACCESS_KEY_ID>",
        "LARA_ACCESS_KEY_SECRET": "<YOUR_ACCESS_KEY_SECRET>"
      }
    }
  }
}

Usage Metrics

The server reports usage events to Lara so we can see which tools and options are used and which problems users run into. Usage metrics are on by default. They are pseudonymous, not anonymous: each event is tied to your Lara account id.

Events: an auth_success the first time your credentials are accepted, a call_success / call_error per tool call, and an auth_fail when Lara rejects your credentials (sent without an account id when the key never worked).

What is sent:

  • your Lara account id (acc_...) and the server version;
  • the tool name, how long the call took, and how many characters were translated;
  • for translate: the source and target language tags, the options you used, and how many text blocks, glossaries, memories and instructions the call had (how many — never which);
  • the kind of client (claude, claude-code, chatgpt, cursor, codex, vscode or other) and its version number;
  • the transport (stdio / http), operating system and Node.js version;
  • on errors: an error category, the HTTP status and error type Lara answered with, and the names of invalid arguments.

What is never sent: the text you translate or its translation, your access key id and secret, glossary and memory ids, instructions, context, error messages, raw client names or user agents.

An installation id (a random UUID, tied to nothing) is generated the first time an event is sent and kept at ~/.lara/installation-id — set LARA_HOME to move it. It identifies this installation to the metrics backend, never you.

Opting out

Per call: a translate call with no_trace: true (Lara's own privacy flag) reports nothing at all — no event of any kind is sent for that call.

Entirely: set DO_NOT_TRACK to 1, true or yes and nothing is measured, queued, written to disk or sent:

{
  "mcpServers": {
    "lara-translate": {
      "command": "npx",
      "args": ["-y", "@translated/lara-mcp@latest"],
      "env": {
        "LARA_ACCESS_KEY_ID": "<YOUR_ACCESS_KEY_ID>",
        "LARA_ACCESS_KEY_SECRET": "<YOUR_ACCESS_KEY_SECRET>",
        "DO_NOT_TRACK": "1"
      }
    }
  }
}

Metrics never block, slow down or fail a translation: events are batched, sent in the background, and a monitoring backend that is down is ignored.


Support