# Sarvam MCP connector

The Sarvam connector brings translation, transliteration, speech to text, text to speech and document reading across Indian languages into Claude, ChatGPT, Cursor and any MCP client, so your team can ask for the work in plain language and it runs inside Sarvam.

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

## Facts

| | |
| --- | --- |
| Application | Sarvam |
| Category | Conversational Intelligence |
| AI tools | 28 |
| 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 | Yes |

## What you can ask once Sarvam is connected

- Summarize this week's Sarvam speech to text jobs.
- List our Sarvam pronunciation dictionaries and their entries.
- Translate the latest support transcripts into Hindi and Tamil.

## Connect Sarvam in Elaichi

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

1. Open Connections, choose Add connection, and pick Sarvam.
2. Optionally set Share with, then press Connect.
3. Paste a Sarvam API key. One person generates a token in Sarvam 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 Sarvam tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Sarvam 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 Sarvam 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 Sarvam 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 Sarvam 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 Sarvam 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 Sarvam through Elaichi

### Transcribe a customer call in any Indian language

Support. Upload the recording of a Hindi, Tamil or Marathi support call and get back a transcript, or an English translation of it, ready to paste into the ticket.

### Translate a proposal before it goes out

Sales. Take the English proposal or follow-up note and turn it into the customer's language, then check which language a reply came back in before anyone answers.

### Turn one campaign into ten regional versions

Marketing. Translate the copy, transliterate brand and product names so they read correctly in each script, and produce spoken versions for radio or in-app audio.

### Keep names pronounced the right way

Content. Build and update pronunciation dictionaries so every generated voice clip says place names, people and product names the way your team does.

### Pull the details out of a scanned form

Operations. Send a batch of invoices, applications or field reports through Sarvam document intelligence and get the contents back as text you can work with.

### Publish policies in every language staff speak

HR. Translate a handbook update into the languages your workforce reads, and create an audio version for teams who work away from a desk.

## Frequently asked questions

### How do I connect Sarvam to Claude?

First connect Sarvam in Elaichi, which asks for your Sarvam API key and nothing else. There is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Sign in when Claude asks, and Sarvam translation, speech and document tools are ready to use.

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

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

### What can an AI agent actually do with Sarvam?

With Sarvam connected, an agent can translate text between Indian languages and English, transliterate names into another script, and tell you which language a message is written in. It can transcribe audio, translate speech straight into English text, and produce spoken audio from written text. It can also read scanned documents into text, and manage the pronunciation dictionaries that control how names are spoken.

### Does connecting Sarvam give the AI everything in my Sarvam account?

A Sarvam connection can only do what the Sarvam API key it was created with is allowed to do, and each person still signs in to Elaichi as themselves so every request is tied to a named user. Elaichi can narrow that access further, for example to translation and transcription only, but it can never widen it beyond what Sarvam itself permits.

### Can my team share one Sarvam connection?

Yes. One person connects Sarvam with the API key and shares the connection with a team in Elaichi, and nobody else ever sees or handles that key. Each teammate still signs in as themselves, so the audit log shows who asked for each translation, transcript or document job.

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

Yes. Restrictions in Elaichi apply per action, so you can block deleting or updating pronunciation dictionaries while leaving translation and speech to text available. A blocked action is never shown to Claude, ChatGPT, Cursor or any other client, so no prompt, however worded, can reach it.

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

When you offboard someone in Elaichi, their access to Sarvam ends at once across every client they used. A shared Sarvam connection keeps working for everyone else on the team. If you want Sarvam gone entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client at the same time.

## All 28 Sarvam tools

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

- **Create a Sarvam chat completion** (Create). Create a Sarvam AI chat completion by sending a model name and a list of messages. Returns: id, model, choices (each containing a message with role and content, plus finish_reason), and usage. Required: model, messages.
- **Create a Sarvam text translation** (Create). Translate text from one Indic language to another using Sarvam AI's translation service. Returns: translated_text. Required: input, source_language_code, target_language_code.
- **Create a Sarvam text transliteration** (Create). Transliterate text from one script to another using the Sarvam AI transliterate API. Returns the converted text in the target script. Returns: transliterated_text. Required: input, source_language_code, target_language_code.
- **Create a Sarvam text language identification** (Create). Identify the language of a text input using Sarvam AI's language identification (LID) endpoint. Returns: language_code. Required: input.
- **Create a Sarvam speech to text** (Create). Transcribe audio using sarvam's Saaras v3 speech recognition model. Submits an audio file via multipart form-data and returns the transcribed output. Supports output modes: transcribe (original language, default), translate (to English), verbatim (word-for-word), translit (romanization), and codemix (mixed script). Required: file, model. Returns: transcript.
- **Create a Sarvam speech to text translate** (Create). Translate speech from an uploaded audio file into English text using Sarvam AI's Saaras model. Returns: transcript. Required: file.
- **Create a Sarvam text to speech** (Create). Convert text to speech using Sarvam AI's TTS engine, synthesizing audio in the specified target language. Returns an opaque synthesized audio payload. Required: text, target_language_code.
- **Create a Sarvam text to speech stream** (Create). Stream text-to-speech audio conversion using Sarvam AI's TTS stream endpoint. Converts input text into spoken audio and returns a streamed binary audio response. Required: text, target_language_code.
- **List all Sarvam pronunciation dictionaries** (List). List all pronunciation dictionaries in Sarvam. Returns: id.
- **Get single Sarvam pronunciation dictionary by ID** (Get). Get a single Sarvam pronunciation dictionary by id. Returns: id. Required: id.
- **Create a Sarvam pronunciation dictionary** (Create). Create a new pronunciation dictionary in Sarvam. Returns: id.
- **Update a Sarvam pronunciation dictionary by ID** (Update). Update an existing Sarvam pronunciation dictionary by id. Returns: id. Required: id.
- **Delete a Sarvam pronunciation dictionary by ID** (Delete). Delete a Sarvam pronunciation dictionary by id. Returns an empty 204 response on success. Required: id.
- **Create a Sarvam speech to text job** (Create). Initiate an async speech-to-text transcription job in sarvam using the Saaras model. Returns the job_id to poll for results via the status endpoint. Required: model.
- **Get single Sarvam speech to text job by ID** (Get). Get the current status of a sarvam speech-to-text transcription job by id. Returns: job_id, status, and transcript (populated when the job completes). Required: id.
- **Create a Sarvam speech to text job upload** (Create). Upload audio files for asynchronous batch speech-to-text processing in Sarvam via multipart form. Returns: request_id. Required: file.
- **Create a Sarvam speech to text job start** (Create). Start a pending speech-to-text batch job in Sarvam AI by its job ID, initiating asynchronous audio processing. Returns: request_id, status. Required: job_id.
- **Create a Sarvam speech to text job download** (Create). Download output files for a completed Sarvam speech-to-text batch job. Submits a request to retrieve the transcribed output files associated with a previously submitted job. Specific request body fields and response structure are defined in the Sarvam job download API; consult the upstream docs for the full field-level breakdown.
- **Create a Sarvam speech to text translate job** (Create). Initiate a Sarvam speech-to-text translation batch job for asynchronous audio processing. Returns: job_id, status. Use the returned job_id to poll for results via the status endpoint. Implement a minimum 5ms delay between consecutive status polling requests.
- **Get single Sarvam speech to text translate job by ID** (Get). Get the status of a Sarvam speech-to-text translation batch job by id. Returns: job_id, status. Required: id. Implement a minimum 5ms delay between consecutive status polling requests to avoid hitting rate limits.
- **Create a Sarvam speech to text translate job upload** (Create). Upload audio files to create an asynchronous batch speech-to-text translation job in sarvam. Returns job_id for polling the job's processing status. Required: files.
- **Create a Sarvam speech to text translate job start** (Create). Start a sarvam speech-to-text translate batch job by its job ID, triggering audio processing for the specified job. Required: job_id. Returns an empty 204 response on success.
- **Create a Sarvam speech to text translate job download** (Create). Create a download request to retrieve output files from a completed Sarvam speech-to-text translation batch job. Returns file download data whose structure varies by job type and output format; consult the Sarvam batch job documentation for field-level details.
- **Create a Sarvam document intelligence job** (Create). Initialize a sarvam Document Intelligence job to begin async document digitization processing. Returns: request_id, status.
- **Get single Sarvam document intelligence job by ID** (Get). Get the status of a sarvam document digitization job by id. Returns: request_id, status. Required: id.
- **Create a Sarvam document intelligence job upload** (Create). Create a file upload request for a sarvam document digitization job to receive pre-signed upload links for document processing. The per-endpoint source was not available for this method; consult https://docs.sarvam.ai/api-reference-docs/document-intelligence/get-upload-links for the full request body and response field details.
- **Create a Sarvam document intelligence job start** (Create). Start a Sarvam document digitization job, triggering asynchronous processing for the specified job. Returns an empty 204 response on success. Required: job_id.
- **Create a Sarvam document intelligence job download** (Create). Create download links for the processed output files of a sarvam document intelligence job. Posts a request to generate presigned download URLs for the specified job's output files. Returns id and attributes containing the download link data; the exact field structure depends on the job's output configuration in Sarvam. Required: job_id.
