# Bhasini Indic Languages [Health: Active]

**Category:** 🌎 Translation Services  
**Repository:** https://github.com/Codegres-com/Bhasini  
**GitHub Stars:** 0  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/bhasini-indic-languages

## Description
Indic MCP: transliterate into all 22 Indian languages, convert scripts, keymaps. Hosted or local.

## Tools
Capabilities this server exposes over MCP:

- **convert_script** — Rewrites text from one Indian script into another letter by letter, e.g. Devanagari 'नमस्ते' → Kannada 'ನಮಸ್ತೇ'. The language does not change, only the letters. Works between the Brahmic scripts (Devanagari, Bengali, Gurmukhi, Gujarati, Odia, Tamil, Telugu, Kannada, Malayalam) and Meetei Mayek; sounds the target script lacks use the nearest letter. Text in other scripts is kept as it is.
- **get_keymap** — Returns the phonetic keyboard map for a language: which Latin keys produce each letter. Useful for teaching someone to type a language or for building correct romanised input for transliterate.
- **list_languages** — Lists the 22 scheduled languages of India (plus extra official scripts for Kashmiri, Manipuri and Sindhi) with the codes the other tools accept.
- **native_digits** — Replaces ASCII digits 0-9 with a language's native digits, e.g. '2026' → '२०२६' (Hindi), '௨௦௨௬' (Tamil), '۲۰۲۶' (Urdu).
- **translate** — Translates the meaning of text between English and the 22 scheduled languages of India, or between two of them, e.g. 'Where is the station?' → 'स्टेशन कहाँ है?' (Hindi). English → Indic uses AI4Bharat IndicTrans2; Indic → English uses Gemma 4; Indic → Indic goes through English. Free use: up to 2,000 characters per call, 5 calls a minute and 10,000 characters a day. Unlike the other tools this sends the text to Bhasini's server (mcp.bhasini.com); the text is not stored. To write romanised words in a script by sound, use transliterate instead.
- **transliterate** — Writes romanised (Latin-letter) text in an Indian script by sound, e.g. 'namaste' → 'नमस्ते' for Hindi or 'vaNakkam' → 'வணக்கம்' for Tamil. This is transliteration, not translation: spell the words as they sound in the target language. Keys follow ITRANS/Baraha conventions: capitals for long vowels and retroflex consonants (A I U E O, T D N L Sh), M = anusvara, H = visarga. Use get_keymap for a language's exact keys.

## Claude Desktop Quick Installation
No confirmed install details yet, so no config is published. Follow the setup steps in the repository above.

## Documentation

## What Bhasini Indic Languages does

Bhasini Indic Languages exposes five MCP tools for working with India's 22 scheduled languages and their scripts. `translate` changes the meaning of text between English and an Indic language, or between two Indic languages. `transliterate` converts Latin-letter input into an Indic script according to pronunciation, while `convert_script` changes the script without translating the language.

The remaining tools support language-aware input workflows. `get_keymap` returns the phonetic keys associated with letters in a selected language, and `list_languages` provides the supported language names and codes. `native_digits` replaces ASCII digits with the numeral characters used by a chosen language.

## How it works

Phonetic transliteration follows ITRANS- and Baraha-style conventions. Capital letters represent long vowels and retroflex consonants, `M` represents anusvara, and `H` represents visarga. The exact accepted keys vary by language, so an agent can call `get_keymap` before generating romanised input.

Script conversion operates letter by letter across Brahmic scripts including Devanagari, Bengali, Gurmukhi, Gujarati, Odia, Tamil, Telugu, Kannada, Malayalam, and Meetei Mayek. When the destination script lacks a sound or letter, the mapper uses the nearest available character. Text written in other scripts remains unchanged.

Translation uses AI4Bharat IndicTrans2 for English-to-Indic requests and Gemma 4 for Indic-to-English requests. Indic-to-Indic translation passes through English. The translation service sends text to `mcp.bhasini.com` and does not store it.

## Tools and capabilities

- `translate`: Translate by meaning between English and the 22 scheduled languages, or between two scheduled languages.
- `transliterate`: Render romanised text phonetically in a selected Indic script.
- `convert_script`: Rewrite text from one supported Indian script into another without changing its language.
- `get_keymap`: Return the phonetic keyboard mapping for a language.
- `list_languages`: List supported languages, scripts, and the codes accepted by the other tools.
- `native_digits`: Replace Western digits from 0 through 9 with a language's native numeral forms.

## Setup and configuration

Bhasini Indic Languages can be used through a hosted deployment or run locally. The related Bhasini application is built with Blazor WebAssembly and has a .NET 8 SDK requirement for local development. Its local project can be started with `dotnet run --project src/Bhasini.Web`, and the test suite can be run with `dotnet test`. A Docker build is also available for serving the published web application.

## Limitations and notes

Translation calls are limited to 2,000 characters per request, five calls per minute, and 10,000 characters per day under the free usage limits. Translation is the only listed operation that sends text to Bhasini's server. It should not be confused with transliteration: `transliterate` writes words by sound, whereas `translate` changes their meaning.

Script conversion is not a semantic translation step. It preserves the language while changing letters, and unsupported sounds may be approximated with the nearest letter in the destination script. The supported language set also includes additional official scripts for Kashmiri, Manipuri, and Sindhi where applicable.

_Full upstream README: https://allmcps.com/mcp/bhasini-indic-languages/readme_

