Bhasini Indic Languages

io.github.Codegres-comPublished by GitHub account Codegres-comv0.1.0Updated Oct 26, 2026

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

VerifiedStreamable HTTPWeb executableProductivity & WorkflowAI & ML

Overview

AI-generated overview

Indic language MCP server that lets an assistant transliterate, script-convert, translate and format text across India's 22 scheduled languages.

What you can do
  • Transliterate romanised Latin text into Indian scripts by sound, following ITRANS/Baraha key conventions
  • Convert text letter by letter between Brahmic scripts and Meetei Mayek without changing the language
  • Translate meaning between English and the 22 scheduled Indian languages, or between two Indic languages
  • List supported languages and their codes, and return the phonetic keyboard map for a language
  • Replace ASCII digits with a language's native digits
When to use it
Useful when working with Indian-language content: typing or romanising text into Devanagari, Tamil, Bengali and other scripts, moving text between scripts, or getting quick English-to-Indic translations. Also handy for building correct romanised input or teaching a language's keyboard layout.
Requirements
Available as a hosted remote endpoint or as a local .NET package (Bhasini.Mcp) over stdio. No authentication, environment variables or headers are declared. The README's own web editor requires the .NET 8 SDK to run locally.
Before you install
Translation is free only up to a stated usage limit, so heavy use may hit a cap or require payment. Translation routes Indic-to-Indic text through English, and script conversion falls back to the nearest letter when a script lacks one, so output can be approximate. Text submitted for translation is sent to the hosted service.

Installation

In SourceWeft

  1. Open Bhasini Indic Languages in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.Codegres-com%2Fbhasini/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "bhasini-indic-languages": {
      "type": "http",
      "url": "https://mcp.bhasini.com/mcp"
    }
  }
}

README

Bhasini (भाषिणी)

[Sponsor via Razorpay] [Open Bhasini] [License: MIT]

A multilingual Indic typing editor for all 22 scheduled languages of India, built with Blazor WebAssembly. Everything runs in the browser; no server round-trips while you type.

It grew out of the Kannada Nudi web editor (KannadaNudiEditor/KannadaNudiWeb) and keeps its shape: a Quill rich-text editor whose keystrokes are transliterated by a C# engine.

Languages

LanguageScript
AssameseBengali-Assamese (ৰ, ৱ)
BengaliBengali
BodoDevanagari
DogriDevanagari
GujaratiGujarati
HindiDevanagari
KannadaKannada
KashmiriPerso-Arabic (RTL), also Devanagari
KonkaniDevanagari
MaithiliDevanagari
MalayalamMalayalam (chillus, Mozhi-style keys)
ManipuriMeetei Mayek (lonsum letters), also Bengali
MarathiDevanagari (ळ)
NepaliDevanagari
OdiaOdia
PunjabiGurmukhi (tippi, bindi, addak)
SanskritDevanagari
SantaliOl Chiki
SindhiPerso-Arabic (RTL), also Devanagari
TamilTamil (ந/ன by context, ற, ழ)
TeluguTelugu
UrduPerso-Arabic, Nastaliq (RTL)

Plus English (no transliteration).

Features

  • Phonetic typing: type how it sounds (namaste → नमस्ते, vaNakkam → வணக்கம், aadaab → آداب). ITRANS/Baraha-style keys: capitals for retroflex/long sounds (T D N L Sh A I U E O), M anusvara, H visarga, .h explicit virama, _ to stop letters joining, | / || danda.
  • InScript: the government-standard layout for every Brahmic script.
  • F9 switches between the selected language and English.
  • Key map panel for the current language and method. Tap a letter to insert it, which also helps on phones.
  • Native digits toggle (१२३, ௧௨௩, ۱۲۳, …).
  • Convert: rewrite text from one Indian script to another, or turn romanised text into script.
  • Dictation through the browser's speech recognition (Chrome and Edge, where the locale is supported).
  • Open .txt / .docx, save as .docx, .txt or .html. Settings are remembered per browser.

How it works

src/Bhasini.Core has no web dependencies:

  • Input/BrahmicPhoneticEngine turns Latin keys into Devanagari, with a per-language PhoneticProfile (Dravidian short e/o, word-final virama, Tamil nasals, local key conventions).
  • Scripts/OffsetScriptMapper maps Devanagari into each ISCII-derived Unicode block by offset. Letters a script lacks fall back to the nearest letter. Script-specific spelling rules (Malayalam chillus, Gurmukhi tippi/addak, Bengali য়) run as post-processing.
  • Scripts/MeeteiMayekMapper handles Meetei Mayek. Input/SequenceEngine handles the alphabetic scripts (Perso-Arabic with word-initial/final forms, and Ol Chiki).
  • Input/TypingSession keeps the Latin keys of the current word and re-renders the whole word on every key, returning a minimal { delete, insert } edit for the editor.

src/Bhasini.Web is the Blazor WebAssembly app. wwwroot/js/editor.js intercepts keys in Quill and calls the session synchronously.

Run

Requires the .NET 8 SDK.

bash
dotnet run --project src/Bhasini.Web
bash
dotnet test

Docker (nginx serving the published static files on port 5000):

bash
docker build -t bhasini .

Script fonts come from Google Fonts (Noto). When offline, the editor falls back to system fonts such as Nirmala UI on Windows.

Support Bhasini

Bhasini is free to use. If it helps you, please consider sponsoring its development:

[Sponsor via Razorpay]

Windows app

BhasiniWindows/ packages Bhasini as a Windows desktop app and Microsoft Store AppX. It adds Global mode: press F9 to type the selected Indian language in any application.

License

MIT © Codegres

Source: README.md at commit 1c29f12

Tools

6

convert_script

Convert between Indian scripts

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.

ParameterstextrequiredtargetLanguagerequired

get_keymap

Get phonetic keyboard map

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.

Parameterslanguagerequired

list_languages

List Indian languages

Lists the 22 scheduled languages of India (plus extra official scripts for Kashmiri, Manipuri and Sindhi) with the codes the other tools accept.

Takes no parameters.

native_digits

Write digits in a native script

Replaces ASCII digits 0-9 with a language's native digits, e.g. '2026' → '२०२६' (Hindi), '௨௦௨௬' (Tamil), '۲۰۲۶' (Urdu).

Parameterstextrequiredlanguagerequired

translate

Translate text

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.

ParameterstextrequiredsourceLanguagetargetLanguagerequired

transliterate

Transliterate romanised text

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.

Parameterstextrequiredlanguagerequired

Version history

1
  1. v0.1.0LatestOct 19, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts