# LILT MCP connector

The LILT connector brings translation jobs, source files, documents and LILT Create content into Claude, ChatGPT, Cursor and any MCP client, so your team can start, check and update translation work from a chat window while signed in as themselves.

Source: https://elaichi.ai/connectors/lilt/

## Facts

| | |
| --- | --- |
| Application | LILT |
| Category | Translation |
| AI tools | 75 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 75 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once LILT is connected

- Which LILT documents finished translation this week?
- List LILT domains with content awaiting review.
- Summarize LILT content created for the German domain.

## Connect LILT in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick LILT.
2. Optionally set Share with, then press Connect.
3. Paste a LILT API key. One person generates a token in LILT and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which LILT tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect LILT to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect LILT to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect LILT to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect LILT to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a LILT tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with LILT through Elaichi

### Kick off a translation job from chat

Localization. Upload the source file, create the job and ask for a status check later, all in plain language. The job and file end up in LILT exactly as if you had done it there.

### Draft campaign copy in several languages

Marketing. Ask for new LILT Create content for a landing page or email, then read back and revise the draft before it goes to the localization team.

### Check where release notes stand

Product. List the open translation jobs for a launch and get a quick summary of which files are still waiting, without opening LILT and clicking through each one.

### Get a help article translated fast

Support. Send an updated help center article to LILT as a document and create a job for the languages your customers speak, then follow up on it by name.

### Keep terms and conditions current

Legal. Create terms and conditions content in LILT and pull up the version you need when a contract or policy changes, so translated legal text is not left behind.

### Tidy files and labels between projects

Operations. Label incoming source files, list what has piled up, and remove files that were uploaded by mistake so the LILT workspace stays easy to work in.

## Frequently asked questions

### How do I connect LILT to Claude?

Connect LILT in Elaichi first: paste in your LILT API key and the connector is ready, with no OAuth application to register and no client ID or secret to generate. Then open Claude, go to Customize, then Connectors, then Add, and paste the endpoint https://api.elaichi.ai/mcp. Claude will ask you to sign in to Elaichi, and from then on it can work with your LILT jobs, files and content.

### Does LILT work with ChatGPT and Cursor as well as Claude?

Yes. Once LILT is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect LILT once and every client sees it.

### What can an AI agent actually do with my LILT data?

An agent can create and update translation jobs in LILT, upload and label source files, add documents, list the domains you translate for, and draft, read and revise LILT Create content, including terms and conditions and content preferences. It can also list what is in progress and give you a plain summary of where each job stands. Because LILT exposes a lot of actions, short concrete asks such as "list open jobs" or "upload this file" tend to work better than long paragraphs.

### Does connecting LILT give the AI access to everything in my LILT account?

No. Every request to LILT runs inside the access of the person who signed in to Elaichi, so the agent sees the same jobs, files and content that person could see in LILT, and nothing more. Elaichi can narrow that further with restrictions, but it can never widen access beyond what LILT itself allows that person.

### Can my team share one LILT connection?

Yes. One person connects LILT with the API key and shares the connection with a team in Elaichi, and nobody else on the team ever handles or sees that key. Each teammate still signs in to Elaichi as themselves, so every LILT job created or file removed is logged under the actual person who asked for it.

### Can I stop an agent from deleting or changing things in LILT?

Yes. Restrictions in Elaichi work per action, so you can allow an agent to create and read LILT jobs and files while blocking deletes or updates entirely. A blocked action is never advertised to Claude, ChatGPT or any other client, so no prompt, however worded, can reach it.

### What happens to a LILT connection when someone leaves?

When you offboard a person in Elaichi, their access to LILT through every AI client ends at once. If they had shared a LILT connection with a team, that connection keeps working for everyone else. If you want LILT gone completely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client at the same time.

## All 75 LILT tools

Every tool below is callable through https://api.elaichi.ai/mcp once LILT is connected, subject to the toolbox it is in and the restrictions on the caller.

- **Delete a LILT create content by ID** (Delete). Delete a piece of Lilt Create content by id. Returns an empty 204 response on success.
- **List all LILT create content** (List). List all content generated by Lilt Create. Returns a collection of content items; each item includes id and language.
- **Get single LILT create content by ID** (Get). Get a single piece of Lilt Create content by id. Returns: id, language.
- **Update a LILT create content by ID** (Update). Update a piece of Lilt Create content by id. Returns: id, language.
- **Create a LILT create content** (Create). Create a new piece of Lilt Create content. Returns: id, language.
- **Create a LILT create** (Create). Generate new Lilt Create content from a specified template and language parameters. Returns the generated content object including id and template-specific attributes. Accepts language, template, templateParams (contentLength, summary, sections), and preferences.
- **Get single LILT create content by ID** (Get). Get a Lilt Create content item by id. Returns: id.
- **Get single LILT create preference by ID** (Get). Get the stored Lilt Create preferences. Returns: tone, styleguide.
- **Update a LILT create preference by ID** (Update). Update the stored Lilt Create preferences. Returns the updated preferences including tone and styleguide.
- **Create a LILT create terms and condition** (Create). Sign the Lilt Create terms and conditions, which must be accepted before using Lilt Create features. Returns an empty 204 response on success. Required: signedAgreement.
- **Get single LILT document by ID** (Get). Download a Lilt document as a binary file in XLIFF 1.2 format (default) or its original uploaded format. Returns a binary file stream — not a JSON object; write the response body directly to disk. Set is_xliff=false to retrieve the file in its original format instead of XLIFF 1.2. This call will fail if an export or pre-translation operation is currently in progress. Required: id.
- **Create a LILT document** (Create). Upload a file to Lilt to create a new Document in any supported format. Returns the created document object including id, name, project_id, and status. File names must contain only US-ASCII characters; URI-encode or transliterate names with non-ASCII characters before sending. Required: name, project_id.
- **List all LILT domains** (List). List Domains in lilt associated with the Organization's API key. Returns each Domain record including its models, filterConfigs, and domainMetadata arrays representing the models, filter configurations, and domain-specific options configured for each domain.
- **Create a LILT file label** (Create). Add a label to a file in Lilt. Returns the updated file object including id, name, labels, detected_lang, file_hash, category, created_at, and updated_at. Required: id (file ID) and name (label name).
- **Delete a LILT file label by ID** (Delete). Remove a label from a file in Lilt. Returns the updated file object including id, name, labels, detected_lang, file_hash, category, created_at, and updated_at.
- **Delete a LILT file by ID** (Delete). Delete a Lilt file by id. Returns an empty 204 response on success. Required: id.
- **Get single LILT file by ID** (Get). Get a Lilt file by id, including asynchronous language detection results. Returns: id, name, detected_lang, detected_lang_confidence. Required: id.
- **Create a LILT file** (Create). Upload a file to Lilt in any supported format. Language detection runs asynchronously; poll GET /v2/files to monitor results. Returns: id, name, detected_lang, detected_lang_confidence. Required: name.
- **List all LILT files** (List). List files in Lilt, including language detection results for each file. Returns: id, name, detected_lang, detected_lang_confidence.
- **Update a LILT job by ID** (Update). Update a lilt job by id. Returns: id, name, due, srcLang, srcLocale, jobInstructions, languagePairs, enablePostProcessing, status. Required: id.
- **Create a LILT job** (Create). Create a new lilt job as a collection of projects targeting multiple language pairs. Returns: id, name, due, srcLang, srcLocale, languagePairs, enablePostProcessing, customProperties, status. Required: name.
- **Delete a LILT job by ID** (Delete). Delete a lilt job by id, permanently removing all associated projects, documents, and translation memory segments. Returns an empty 204 response on success. Required: id.
- **Get single LILT job by ID** (Get). Get a single lilt job by id. Returns: id, name, due, srcLang, srcLocale, jobInstructions, languagePairs, enablePostProcessing, customProperties, status. Required: id.
- **List all LILT jobs** (List). List all lilt jobs. Returns: id, name, due, srcLang, srcLocale, languagePairs, enablePostProcessing, customProperties, status. Optionally filter by isArchived.
- **List all LILT languages** (List). List all supported languages in lilt. Returns a collection of language objects representing the languages available for use in translation projects. No parameters required.
- **Create a LILT memory** (Create). Create a new Lilt Memory — a private container for source/target sentence pairs for a specific language pair, used to train the MT system, populate TM, and update the lexicon. Returns: id, name, srclang, trglang. Required: name, srclang, trglang.
- **Delete a LILT memory by ID** (Delete). Delete a Lilt Memory by id. Returns an empty 204 response on success. Required: id.
- **List all LILT memories** (List). List all Lilt Memories accessible to your account. Returns id, name, srclang, and trglang for each Memory in the collection.
- **Get single LILT memory by ID** (Get). Retrieve a specific Lilt Memory by id. Returns: id, name, srclang, trglang. Required: id. If you receive a 401 error, verify the Memory has been shared with your account.
- **Update a LILT memory by ID** (Update). Update the name of a Lilt Memory. Returns: id, name, srclang, trglang. Required: id, name.
- **LILT memories search** (Search). Query a Lilt Memory for translation segments matching a source string. Returns: source, target, score, metadata. Segments scoring below 75 are automatically discarded. Required: id, query.
- **Delete a LILT memory segment by ID** (Delete). Delete a segment from a lilt memory. Returns an empty 204 response on success. Required: id, segment_id.
- **Create a LILT project** (Create). Create a new lilt project — a collection of Documents associated with exactly one Memory. Projects appear in the lilt dashboard. Returns: id, srclang, trglang. Required: memory_id.
- **Delete a LILT project by ID** (Delete). Delete a lilt project by id. Returns an empty 204 response on success. Required: id.
- **List all LILT projects** (List). List lilt projects including their associated documents. Optionally filter by one or more project ids (comma-separated), source language, or target language. Returns: id, srclang, trglang.
- **Create a LILT segment** (Create). Create a Segment in Lilt and add it to a Memory or Document. A Segment is a source/target pair used to train the machine translation system and populate the translation memory. Returns: id, source, target. Required: source. Max source length is 5,000 characters.
- **Delete a LILT segment by ID** (Delete). Delete a Segment from memory in Lilt by id. Note: this does not delete the segment from a document. Returns an empty 204 response on success. Required: id.
- **Get single LILT segment by ID** (Get). Retrieve a single Segment in Lilt by id. Returns: id, source, target. Required: id.
- **Update a LILT segment by ID** (Update). Update a Segment in Lilt. Returns: id, source, target. Required: id.
- **List all LILT segments** (List). List Segments in Lilt. Returns: id, source, target per segment.
- **Get single LILT translated file by ID** (Get). Download a translated file from lilt by its id. Returns the raw translated file content as a binary stream rather than a structured JSON payload. Required: id.
- **Create a LILT translation** (Create). Translate a source string in lilt, returning an array of translation candidates. TM fuzzy matches are ranked first, followed by machine translation results. Returns: target (translated text), score (model confidence), and align (word alignments). Required: source. Maximum source length is 5,000 characters.
- **Delete a LILT upload by ID** (Delete). Cancel a multipart S3 upload in Lilt by id, aborting the operation and cleaning up any uploaded parts. Returns an empty 204 response on success. Required: id.
- **Create a LILT upload** (Create). Request S3 upload parameters in Lilt to initiate a file upload, supplying the filename and content type. Returns: uploadId, key. Required: filename, type.
- **List all LILT uploads** (List). List all pending uploads in Lilt for the current user and organization, optionally filtered by upload IDs or statuses. Returns: id, status, filename, type.
- **Get single LILT upload by ID** (Get). Get a specific upload record in Lilt by id. Returns: id, status, filename, type. Required: id.
- **Create a LILT webhook configuration** (Create). Create a new webhook configuration for your Lilt organization. Returns: id, url, events. Required: url.
- **Delete a LILT webhook configuration by ID** (Delete). Delete a specific Lilt webhook configuration by id. Returns an empty 204 response on success. Required: id.
- **List all LILT webhook configurations** (List). List all webhook configurations available to your Lilt organization. Returns: id, url, events.
- **Get single LILT webhook configuration by ID** (Get). Get a specific Lilt webhook configuration by id. Deleted configurations are not returned. Returns: id, url, events. Required: id.
- **Update a LILT webhook configuration by ID** (Update). Update a specific Lilt webhook configuration by id. Only fields provided in the request body are modified. Returns: id, url, events. Required: id.
- **List all LILT workflow templates** (List). List all workflow templates available to the team in lilt. Returns each template's id, which can be passed to subsequent requests such as creating a new Job with a specific Workflow.
- **List all LILT activities** (List). List lilt audit logs for your organization. Returns: timestamp, userName, userId, teamId, type, requestResult, correlationId, and additional action-type-specific fields (resourceType, action, urlSlug, loginType, etc.). Required: organizationId, userId.
- **Get single LILT create content regeneration by ID** (Get). Get content regenerations for a specific lilt Create content item. Returns: id. Required: content_id.
- **Get single LILT file download by ID** (Get). Download a file from lilt via the /v2/files/download endpoint. Returns the raw file content as a binary stream whose format depends on the content-type of the file being downloaded.
- **List all LILT file translations** (List). List file translation requests in lilt. Returns: id, attributes (translation-specific fields whose shape depends on the source file and translation configuration). No required parameters.
- **Create a LILT file translation** (Create). Create a file translation request in lilt using a previously uploaded file. A File ID must be obtained from the lilt file upload process before submitting. Returns: id, attributes (translation-specific fields).
- **Create a LILT job archive** (Create). Archive a job in lilt by submitting a request to the archive endpoint for the specified job. Returns an empty 204 response on success. Required: job_id.
- **Create a LILT job unarchive** (Create). Unarchive a job in Lilt, restoring it from an archived state. Returns the unarchived job object including its id, name, and due date. Required: job_id.
- **Create a LILT job delivery** (Create). Deliver a Lilt job, marking it as delivered and triggering the JOB_DELIVER webhook event. Returns an empty 204 response on success. Required: job_id.
- **Create a LILT job reactivation** (Create). Reactivate a closed or archived lilt job. Required: job_id. Returns an empty 204 response on success.
- **Get single LILT job export by ID** (Get). Download the exported translation file for a lilt job. Returns the raw file content as an opaque binary download whose format and content type depend on the job's source file type (e.g. XLIFF, DOCX). Required: job_id.
- **Get single LILT job download by ID** (Get). Download the translated output files for a lilt job. Returns a binary file download containing the job's translated content — the response is a file stream rather than a JSON object. Required: job_id.
- **Create a LILT job stat** (Create). Retrieve TM leverage statistics for a lilt job. Returns new, exact, and fuzzy match statistics representing translation memory coverage across the job's segments. Required: job_id.
- **Create a LILT memory import** (Create). Import a translation memory or termbase file into a specific LILT memory. Supports TMX, SDLTM, SDLXLIFF (with optional custom filters), XLIFF, TMQ, CSV, and TBX formats. Returns an empty 204 response on success. Required: name, memory_id.
- **Create a LILT memory termbase export** (Create). Export termbase entries for a lilt memory to a CSV file, initiating a background process. Poll `GET /2/memories` and check that `is_processing` equals 0 before downloading the result via `POST /2/memories/termbase/download`. Returns an empty 204 response on success. Required: id.
- **Get single LILT memory termbase download by ID** (Get). Download the termbase export for a lilt memory as a CSV file. Returns a CSV file download; you must first call the termbase export endpoint (`/v2/memories/termbase/export`) to initiate the background export process before downloading. Required: id.
- **Get single LILT segment tag by ID** (Get). Get segment tags in Lilt. Returns: id. No required parameters. Note: per-endpoint source documentation was not found; consult the Lilt API reference for the full response shape.
- **Create a LILT segment review unlock** (Create). Unaccept and unlock segments in lilt by setting their "Review Done" status to false. Confirmed segments remain confirmed. Returns an empty 204 response on success. Required: segmentIds.
- **Get single LILT upload s 3 param by ID** (Get). Get S3 upload parameters for a single file upload in Lilt. Returns: url, headers — a presigned S3 URL and the additional headers needed to PUT the file directly to S3.
- **Create a LILT upload s 3 param** (Create). Initiate a single file upload in Lilt and retrieve the S3 presigned upload parameters. Returns: url, headers — a presigned S3 URL and supplemental headers to use when PUTting the file directly to S3. Required: filename, type.
- **Create a LILT upload multipart** (Create). Initiate a multipart upload in lilt for a large file, returning the identifiers needed to upload individual parts and complete the upload. Returns: uploadId, key. Required: filename, type.
- **Get single LILT upload multipart part by ID** (Get). Get a presigned S3 URL for uploading a specific part in a Lilt multipart upload workflow. Returns: url (presigned S3 URL to PUT the chunk to). Required: upload_id, part_number, s3Key.
- **Create a LILT upload multipart completion** (Create). Complete a multipart upload in Lilt by assembling all previously uploaded parts into the final file on S3. Required: upload_id (the multipart upload identifier), parts (array of objects each containing ETag and PartNumber for every uploaded part), and s3Key (the S3 path for the file). Returns an empty 204 response on success.
- **Delete a LILT upload multipart cancellation by ID** (Delete). Cancel and abort an in-progress multipart upload in Lilt, cleaning up any parts that were already uploaded to S3. Returns an empty 204 response on success. Required: id, key.
