Skip to main content
Glama
sumandey7684

Sarvam AI MCP Server

by sumandey7684

🌐 Sarvam AI MCP Server

Sarvam AI MCP Server is a lightweight, extensible MCP (Model Context Protocol) server that empowers LLM-based clients (Claude Desktop, Gemini CLI, Warp, etc.) with powerful Indic language processing capabilities including translation, transliteration, language identification, and access to the SarvamAI-M model.


🚀 Features

  • 🔍 Language Identification — Automatically detects language and script of input text

  • 🔤 Transliteration — Convert text between different Indic scripts while preserving pronunciation

  • 🌐 Translation — Translate text across multiple Indic languages

  • 💬 Sarvam Chat — Interactive chat with SarvamAI-M model (with optional wiki grounding)

Related MCP server: sarvam-tools

🛠️ Installation & Setup

Prerequisites

  • Docker (recommended)

  • MCP-compatible client (Claude Desktop, Gemini CLI, Warp, etc.)

  • ngrok (Remote-MCP)

1. Clone the Repository

git clone https://github.com/JDhruv14/Sarvam-MCP.git
cd Sarvam-MCP

2. Environment Configuration

Create or update the .env file with your API key:

SARVAM_API_KEY=your_api_key_here

Reproducibility & Lockfiles

This project uses pinned versions in requirements.txt and requirements-dev.txt for reproducibility.

For stricter reproducibility across environments, consider:

  • pip freeze > requirements.lock

  • uv or poetry for dependency locking

  • Docker images for container-level consistency

Build the Docker image:

docker build -t sarvam .

Run the container:

docker run -p 8080:8080 sarvam

4. Alternative: Local Development Setup

# Install dependencies
pip install -r requirements.txt

# Set environment variables
export SARVAM_API_KEY=your_api_key_here

# Start the server
python sarvam_mcp.py

⚙️ MCP Client Configuration

Desktop Applications Setup

Configure your MCP client by editing the config.json file and adding the following to the mcpServers section:

🏠 Local Configuration

{
  "mcpServers": {
    "Sarvam_MCP": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "http://localhost:8080/mcp/",
        "--header",
        "Content-Type:application/json"
      ]
    }
  }
}

☁️ Remote/Cloud Configuration

Option 1: Cloud Deployment

{
  "mcpServers": {
    "Sarvam_MCP": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://your-cloud-url.com/mcp/",
        "--header",
        "Content-Type:application/json"
      ]
    }
  }
}

Option 2: Temporary Access with ngrok

  1. Install and setup ngrok:

# Visit https://ngrok.com for installation instructions
ngrok http 8080
  1. Use the ngrok URL in your configuration:

{
  "mcpServers": {
    "Sarvam_MCP": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://your-ngrok-id.ngrok-free.app/mcp/",
        "--header",
        "Content-Type:application/json"
      ]
    }
  }
}

📁 Configuration File Locations

Platform

Configuration Path

Claude Desktop (macOS)

~/Library/Application Support/Claude/config.json

Claude Desktop (Windows)

%APPDATA%\Claude\config.json

Gemini CLI

Check Gemini CLI documentation

Warp

Check Warp's MCP integration documentation

The server reads SARVAM_API_KEY from environment variables. Do not send API keys in headers.


🚦 Quick Start Guide

  1. Clone and Build:

    git clone https://github.com/JDhruv14/Sarvam-MCP.git
    cd Sarvam-MCP
    docker build -t sarvam .
  2. Run the Server:

    docker run -p 8080:8080 sarvam
  3. Configure Your MCP Client: Add the configuration to your client's config.json

  4. Test the Connection: Try a simple language identification query


⚠️ Important Notes

  • 🔄 Keep Server Running: The Docker container must remain active while using the MCP

  • 🌐 Network Access: Ensure port 8080 is accessible from your client application

  • 🔐 API Authentication: Valid subscription key is required for all requests

  • 🔄 Client Restart: Restart your MCP client after updating configuration

  • 📱 ngrok URLs: Remember that ngrok URLs change each time you restart ngrok


🤝 Contributing

I welcome contributions! Here's how to get started:

  1. Fork the repository

  2. Create a feature branch:

  3. Commit your changes:

  4. Push to the branch:

  5. Open a Pull Request


📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


⭐ If you find this project helpful, please give it a star on GitHub!

Related MCP Connectors

Related MCP Servers