Indic MCP: transliterate into all 22 Indian languages, convert scripts, keymaps. Hosted or local.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Text in any Brahmic script or Meetei Mayek.
Language whose script to convert into, e.g. 'ta', 'Telugu', 'mni'.
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.
| Argument | Type | Description |
|---|---|---|
| text* | string | Text in any Brahmic script or Meetei Mayek. |
| targetLanguage* | string | Language whose script to convert into, e.g. 'ta', 'Telugu', 'mni'. |
{
"type": "object",
"required": [
"text",
"targetLanguage"
],
"properties": {
"text": {
"type": "string",
"description": "Text in any Brahmic script or Meetei Mayek."
},
"targetLanguage": {
"type": "string",
"description": "Language whose script to convert into, e.g. 'ta', 'Telugu', 'mni'."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| language* | string | Language code or name, e.g. 'ml', 'Odia'. |
{
"type": "object",
"required": [
"language"
],
"properties": {
"language": {
"type": "string",
"description": "Language code or name, e.g. 'ml', 'Odia'."
}
}
}Lists the 22 scheduled languages of India (plus extra official scripts for Kashmiri, Manipuri and Sindhi) with the codes the other tools accept.
No arguments.
{
"type": "object",
"properties": {}
}Replaces ASCII digits 0-9 with a language's native digits, e.g. '2026' → '२०२६' (Hindi), '௨௦௨௬' (Tamil), '۲۰۲۶' (Urdu).
| Argument | Type | Description |
|---|---|---|
| text* | string | Text containing digits. |
| language* | string | Language code or name. |
{
"type": "object",
"required": [
"text",
"language"
],
"properties": {
"text": {
"type": "string",
"description": "Text containing digits."
},
"language": {
"type": "string",
"description": "Language code or name."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| text* | string | Text to translate. Line breaks are kept. |
| sourceLanguage | string | Language of the text, or 'auto' (default) to detect it. |
| targetLanguage* | string | Language to translate into: a code or name from list_languages, or 'en' for English. |
{
"type": "object",
"required": [
"text",
"targetLanguage"
],
"properties": {
"text": {
"type": "string",
"description": "Text to translate. Line breaks are kept."
},
"sourceLanguage": {
"type": "string",
"default": "auto",
"description": "Language of the text, or 'auto' (default) to detect it."
},
"targetLanguage": {
"type": "string",
"description": "Language to translate into: a code or name from list_languages, or 'en' for English."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| text* | string | Romanised text to transliterate. Punctuation, digits and spaces are kept. |
| language* | string | Target language code or name, e.g. 'hi', 'ta', 'kn', 'Bengali', 'sat' (Santali, Ol Chiki). |
{
"type": "object",
"required": [
"text",
"language"
],
"properties": {
"text": {
"type": "string",
"description": "Romanised text to transliterate. Punctuation, digits and spaces are kept."
},
"language": {
"type": "string",
"description": "Target language code or name, e.g. 'hi', 'ta', 'kn', 'Bengali', 'sat' (Santali, Ol Chiki)."
}
}
}