A Model Context Protocol server that exposes Sarvam AI's entire API surface as typed tools — so any MCP agent (Claude Desktop, Cursor, Claude Code, LangGraph) can use Sarvam speech, translation, chat and document tools in minutes.
Install one package and any MCP agent can transcribe Hindi calls, speak replies, translate & transliterate, detect language, chat with tool-calling, and digitise KYC documents — every call typed, retried, and priced.
Defaults to mock mode — deterministic fixtures, no API key, no credits burned.
# from PyPI pip install setu-mcp # or run without installing uvx setu-mcp # or from source pip install git+https://github.com/manasasb2000/setu-mcp.git
# mock is the default — nothing to set export SETU_MODE=mock # for real Sarvam calls, switch to live: # export SETU_MODE=live # export SARVAM_API_KEY=sk_... (dashboard.sarvam.ai)
# stdio — for Claude Desktop / Cursor / local agents setu # or an HTTP endpoint at http://127.0.0.1:8000/mcp setu --transport streamable-http
pip install setu-mcp into a Python 3.11+ environment.
Claude Desktop → Settings → Developer → Edit Config, then add the block below.
Reopen Claude Desktop, click the 🔌 tools icon, and ask: "Use sarvam_transcribe on this Hindi audio."
{
"mcpServers": {
"setu": {
"command": "setu",
"env": { "SETU_MODE": "mock" }
}
}
}
Pick a tool, tweak the inputs, and run it — right here in your browser (mock fixtures, no key needed).
Mock responses mirror the real tool schemas. In live mode these hit Saaras / Bulbul / Mayura / Sarvam-105B / Parse.
| Tool | Model | What it does |
|---|---|---|
| setu_ping | — | Health check — confirms the server is wired up and reports mode. |
| sarvam_transcribe | Saaras v3 | Speech → text, including code-mixed (Hinglish) audio. |
| sarvam_speak | Bulbul v3 | Text → natural speech (base64 WAV), 11 languages, 30+ voices. |
| sarvam_translate | Mayura v1 | Translate between English and 22 Indian languages. |
| sarvam_transliterate | Mayura | Convert script while keeping pronunciation (नमस्ते ↔ namaste). |
| sarvam_identify_language | text-lid | Detect the language + script of a piece of text. |
| sarvam_chat | Sarvam-105B / 30B | Chat / reasoning with OpenAI-compatible tool-calling. |
| sarvam_parse_document | Parse | PDF / image → structured JSON fields (KYC-ready). |
Every result also carries cost_inr, latency_ms, and a request_id.
Retry-After on 429.stdio for local IDE / desktop agents.streamable-http / SSE for hosted, remote use.SETU_MODE=mock|live switch.A multi-stage, non-root image serves the HTTP transport out of the box.
# build and run the HTTP server on :8000/mcp docker build -t setu-mcp . docker run --rm -p 8000:8000 setu-mcp # or one command with compose docker compose up --build # live mode docker run --rm -p 8000:8000 -e SETU_MODE=live -e SARVAM_API_KEY=sk_... setu-mcp