translate
Translate text between languages with language detection, context-aware processing, and translation memory support for accurate multilingual communication.
Instructions
Translate text between languages with support for language detection, context-aware translations and translation memories using Lara Translate.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | An array of text blocks to translate. Each block contains a text string and a boolean indicating whether it should be translated. This allows for selective translation where some text blocks can be preserved in their original form while others are translated. | |
| source | No | The source language code (e.g., 'en-EN' for English). If not specified, the system will attempt to detect it automatically. If you have a hint about the source language, you should specify it in the source_hint field. | |
| target | Yes | The target language code (e.g., 'it-IT' for Italian). This specifies the language you want the text translated into. | |
| context | No | Additional context string to improve translation quality (e.g., 'This is a legal document' or 'Im talking with a doctor'). This helps the translation system better understand the domain. | |
| instructions | No | A list of instructions to adjust the network’s behavior regarding the output (e.g., 'Use a formal tone'). | |
| source_hint | No | Used to guide language detection. Specify this when the source language is uncertain to improve detection accuracy. | |
| adapt_to | No | A list of translation memory IDs for adapting the translation. |
Implementation Reference
- src/mcp/tools/translate.ts:55-69 (handler)The primary handler function for the 'translate' tool. It validates the input arguments using the translateSchema, processes context into instructions, and calls the underlying Translator's translate method.
export async function translateHandler(args: unknown, lara: Translator) { const validatedArgs = translateSchema.parse(args); const { text, source, target, context, instructions, adapt_to } = validatedArgs; let instructionsList = [...(instructions ?? [])]; if (context) { instructionsList.push(makeInstructions(context)); } const result = await lara.translate(text, source ?? null, target, { instructions: instructionsList, adaptTo: adapt_to, }); return result.translation; } - src/mcp/tools/translate.ts:4-50 (schema)Zod schema definitions for the 'translate' tool inputs, including textBlockSchema for individual blocks and translateSchema for the full parameters (text array, source/target languages, context, instructions, etc.).
export const textBlockSchema = z.object({ text: z.string(), translatable: z.boolean(), }); export const translateSchema = z.object({ text: z .array(textBlockSchema) .describe( "An array of text blocks to translate. Each block contains a text string and a boolean indicating whether it should be translated. This allows for selective translation where some text blocks can be preserved in their original form while others are translated." ), source: z .string() .optional() .describe( "The source language code (e.g., 'en-EN' for English). If not specified, the system will attempt to detect it automatically. If you have a hint about the source language, you should specify it in the source_hint field." ), target: z .string() .describe( "The target language code (e.g., 'it-IT' for Italian). This specifies the language you want the text translated into." ), context: z .string() .optional() .describe( "Additional context string to improve translation quality (e.g., 'This is a legal document' or 'Im talking with a doctor'). This helps the translation system better understand the domain." ), instructions: z .array(z.string()) .optional() .describe( "A list of instructions to adjust the network’s behavior regarding the output (e.g., 'Use a formal tone')." ), source_hint: z .string() .optional() .describe( "Used to guide language detection. Specify this when the source language is uncertain to improve detection accuracy." ), adapt_to: z .array(z.string()) .optional() .describe( "A list of translation memory IDs for adapting the translation." ), }); - src/mcp/tools.ts:36-45 (registration)Registration of the translateHandler in the handlers object, which is used in CallTool to dispatch tool calls by name.
const handlers: Record<string, Handler> = { translate: translateHandler, create_memory: createMemory, delete_memory: deleteMemory, update_memory: updateMemory, add_translation: addTranslation, delete_translation: deleteTranslation, import_tmx: importTmx, check_import_status: checkImportStatus, }; - src/mcp/tools.ts:90-95 (registration)The 'translate' tool specification in the ListTools function, which defines the tool's name, description, and input schema for MCP tool listing.
{ name: "translate", description: "Translate text between languages with support for language detection, context-aware translations and translation memories using Lara Translate.", inputSchema: z.toJSONSchema(translateSchema), }, - src/mcp/server.ts:38-42 (registration)Top-level MCP server request handler registration for tools, delegating to ListTools and CallTool (which handle 'translate').
// -- Tools server.setRequestHandler(ListToolsRequestSchema, ListTools); server.setRequestHandler(CallToolRequestSchema, (request) => CallTool(request, lara) );