Getting Started
The Lara Translate MCP Server brings the full power of Lara’s translation capabilities to environments that support the Model Context Protocol (MCP), such as Claude Desktop and other LLM-integrated tools. By acting as a specialized translation agent, it enables developers to enrich their AI workflows with accurate, context-aware, and culturally nuanced translations.
What It Does
At its core, the MCP Server acts as a bridge between Lara’s Models and the MCP ecosystem. It allows you to offload translation tasks from general-purpose language models to a specialized engine built specifically for translation, ensuring higher quality—especially for non-English content—and more consistent domain handling.
The server supports features such as automatic source language detection, context injection, and custom instructions to guide translation behavior. These make it possible to tailor the translation output to the tone, style, or intent of the interaction—whether it’s a legal document, a casual conversation, or an in-app UI.
Translation Tools
The Lara Translate MCP Server exposes a single core tool: translate
. This tool handles multilingual translation requests and supports advanced options to improve output quality and control behavior.
translate
translate
Use the translate
tool to perform translations between Supported Languages pairs. Each request allows you to pass multiple text blocks, along with optional metadata to refine translation quality and accuracy.
Supported input fields:
text
(array): A list of text blocks to be processed. Each block must contain:text
(string): The content to translate.translatable
(boolean): Whether this block should be translated.source
(optional string): ISO code of the source language (e.g.,"fr-FR"
). If omitted, language detection will be used.target
(string): ISO code of the target language (e.g.,"en-US"
).context
(optional string): Contextual information to guide translation (e.g., domain, tone, situation).instructions
(optional string array): One or more translation instructions (e.g.,"Use formal tone"
,"Avoid slang"
).source_hint
(optional string): Additional hint to improve language detection (e.g.,"This is likely in Catalan"
).
Response:
The response is an array of translated text blocks. The structure matches the input format, maintaining the original order and translatable
values:
[
{
"text": "Translated text",
"translatable": true
}
]
Translation Memories Tools
The Lara Translate MCP Server exposes several tools to list, create and manage translations memories. Translation memories are crucial to enhance the translation quality and align to your business needs.
list_memories
list_memories
Use the list_memories
tool to obtain a list of translation memories linked to your accounts and the related details.
Response:
The response is an array of translation memories linked to your account.
[
{
"id": "mem_XYZ",
"secret": "sec_XYZ",
"ownerId": "acc_XYZ",
"collaboratorsCount": 1,
"createdAt": "2025-04-17T15:24:19.867Z",
"updatedAt": "2025-04-17T15:24:19.881Z",
"sharedAt": "2025-04-17T15:24:19.874Z",
"name": "Memory Name"
}
]
create_memory
create_memory
Use the create_memory
tool to create a new translation memory and link it to your account.
Supported input fields:
name
(string): Name of the new memoryexternal_id
(optional string): ID of the memory to import from MyMemory (e.g., 'ext_my_[MyMemory ID]')
Response:
The response is the id of the newly created translation memory.
[
{
"id": "mem_XYZ",
"secret": "sec_XYZ",
"ownerId": "acc_XYZ",
"collaboratorsCount": 1,
"createdAt": "2025-04-17T15:24:19.867Z",
"updatedAt": "2025-04-17T15:24:19.881Z",
"sharedAt": "2025-04-17T15:24:19.874Z",
"name": "New Memory"
}
]
update_memory
update_memory
Use the update_memory
tool to update a translation memory name, by providing the ID of an existing translation memory.
Supported input fields:
id
(string): ID of the memory to updatename
(string): The new name for the memory
Response:
The response is the updated memory data.
[
{
"id": "mem_XYZ",
"secret": "sec_XYZ",
"ownerId": "acc_XYZ",
"collaboratorsCount": 1,
"createdAt": "2025-04-17T15:24:19.867Z",
"updatedAt": "2025-04-17T15:24:19.881Z",
"sharedAt": "2025-04-17T15:24:19.874Z",
"name": "Updated Memory"
}
]
delete_memory
delete_memory
Use the delete_memory
tool to delete a translation memory, by providing the ID of an existing translation memory.
Supported input fields:
id
(string): ID of the memory to update
Response:
The response is the deleted memory data.
[
{
"id": "mem_XYZ",
"secret": "sec_XYZ",
"ownerId": "acc_XYZ",
"collaboratorsCount": 1,
"createdAt": "2025-04-17T15:24:19.867Z",
"updatedAt": "2025-04-17T15:24:19.881Z",
"sharedAt": "2025-04-17T15:24:19.874Z",
"name": "Deleted Memory"
}
]
add_translation
add_translation
Use the add_Translation
tool to add a translation unit to an existing memory, by providing the ID of an existing translation memory.
Supported input fields:
id
(string | string[]): ID or IDs of memories where to add the translation unitsource
(string): Source language codetarget
(string): Target language codesentence
(string): The source sentencetranslation
(string): The translated sentencetuid
(optional string): Translation Unit unique identifiersentence before
(optional string): Context sentence beforesentence after
(optional string): Context sentence after
Response:
The response is the added translation details. The progress field can be used to monitor the progress of the translation job: the number 1 indicates that the job is already finished, otherwise it's possible to use the check_import_status method to get an update on the status of the job.
[
{
"id": "JobID",
"begin": 10918552,
"end": 10918552,
"channel": 1,
"size": 1,
"progress": 0
}
]
delete_translation
delete_translation
Use the delete_Translation
tool to delete a translation unit to an existing memory, by providing the ID of an existing translation memory.
Supported input fields:
id
(string): ID or the memory where to delete the translation unitsource
(string): Source language codetarget
(string): Target language codesentence
(string): The source sentencetranslation
(string): The translated sentencetuid
(optional string): Translation Unit unique identifiersentence before
(optional string): Context sentence beforesentence after
(optional string): Context sentence after
Response:
The response is the deleted translation details.
[
{
"id": "JobID",
"begin": 10918552,
"end": 10918552,
"channel": 1,
"size": 1,
"progress": 0
}
]
import_tmx
import_tmx
Use the import_tmx
tool to import a TMX file into a translation memory.
Supported input fields:
id
(string): ID or the memory to updatetmx
(file path): The path of the TMX file to uploadgzip
(boolean): Indicates if the file is compressed (.gz)
Response:
The response is the import details linked to the TMX file.
[
{
"id": "JobID",
"begin": 10918552,
"end": 10918552,
"channel": 1,
"size": 1,
"progress": 0
}
]
check_import_status
check_import_status
Use the check_import_status
tool to check the status of a TMX file import.
Supported input fields:
id
(string): the id of the import job
Response:
The response is the import details linked to the status of the import TMX process.
[
{
"id": "JobID",
"begin": 10918552,
"end": 10918552,
"channel": 1,
"size": 1,
"progress": 0
}
]
Translation Workflow
The main tool exposed by the server is translate, which accepts structured input in JSON format. You can send an array of text blocks, specify which ones should be translated, and optionally provide the source language, contextual hints, or specific instructions.
For example, if you're translating the Italian phrase “la terra è rossa” while chatting with a tennis player, you can pass that context into the request. Rather than returning a literal or ambiguous result, the server will understand that “terra” refers to clay and provide the correct translation: “The clay is red.”
This level of nuance is difficult to achieve with general-purpose models and is one of the key benefits of using Lara within MCP-based systems.
Example
Prompt:
Translate with Lara: "la terra è rossa"
, I'm talking with a tennis player.
Request:
{
"text": [
{ "text": "la terra è rossa", "translatable": true }
],
"target": "en-US",
"context": "Conversation with a tennis player"
}
Response
[
{
"text": "The clay is red.",
"translatable": true
}
]
Setup
API Credentials
To use the Lara Translate MCP Server, you must have valid API credentials.
- Visit Lara and subscribe to any plan (including the free one).
- Go to the API section in your account dashboard and generate a new pair of credentials.
- Store your credentials securely. If lost, you will need to generate a new pair.
More
For more advanced usage, local development instructions, and the latest updates, visit the lara-mcp GitHub repository. There you'll find full documentation on building and running the server locally, contributing to the project, and exploring additional configuration options for Claude Desktop and other MCP-compatible environments.
Updated 1 day ago