- TypeScript 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| src | ||
| tests | ||
| .gitignore | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| tsup.config.ts | ||
aksara-mcp
MCP server that gives AI agents bidirectional transliteration between Latin-script Javanese and Aksara Jawa (Hanacaraka), powered by aksara-ts.
lamun sira nginguk ucing → ꦭꦩꦸꦤ꧀ꦱꦶꦫꦔꦶꦔꦸꦏꦸꦕꦶꦁ
ꦲꦤꦕꦫꦏ → hanacaraka
Aksara Jawa is essentially absent from LLM training data. This server lets agents read manuscript OCR output, transliterate user input, and work with Javanese script in both directions without guessing at rare Unicode codepoints.
Tools
| Tool | Direction | Description |
|---|---|---|
to_aksara |
Latin → Aksara | Convert Latin-script Javanese to Hanacaraka |
from_aksara |
Aksara → Latin | Decode Aksara Jawa back to Latin script |
to_aksara
| Parameter | Type | Default | Description |
|---|---|---|---|
text |
string |
— | Latin-script Javanese text |
spaces |
boolean |
false |
Preserve spaces in the output |
explicit_vowels |
boolean |
false |
Use standalone vowel letters (ꦄ ꦆ ꦈ ꦌ ꦎ) for vowels without a preceding consonant |
from_aksara
| Parameter | Type | Description |
|---|---|---|
text |
string |
Aksara Jawa text to decode |
Decoding handles murda consonants, retroflex letters (ṭ, ḍ), cakra (medial r), pengkal (medial y), and standalone vowel letters.
Install
npm install aksara-mcp
Or clone and build locally:
git clone https://github.com/thesimonharms/aksara-mcp.git
cd aksara-mcp
npm install
npm run build
Requires Node.js 18+.
MCP configuration
Cursor / Claude Desktop
{
"mcpServers": {
"aksara": {
"command": "node",
"args": ["/absolute/path/to/aksara-mcp/dist/index.js"]
}
}
}
If installed globally or via npx:
{
"mcpServers": {
"aksara": {
"command": "npx",
"args": ["aksara-mcp"]
}
}
}
Examples
Latin → Aksara
{ "text": "hanacaraka" }
→ ꦲꦤꦕꦫꦏ
{ "text": "aji saka", "spaces": true }
→ ꦲꦗꦶ ꦱꦏ
{ "text": "aksara", "explicit_vowels": true }
→ ꦄꦏ꧀ꦱꦫ
Aksara → Latin
{ "text": "ꦲꦤꦕꦫꦏ" }
→ hanacaraka
{ "text": "ꦧꦸꦟ꧀ꦝꦼꦭ꧀" }
→ bunḍel
Development
npm run build # bundle server to dist/
npm start # run on stdio
npm test # build + run cobasaja tests
Tests live in tests/ and use cobasaja to spawn the server over stdio and assert tool behaviour end-to-end.
Known limitations
Inherited from aksara-ts:
- ꦲ ambiguity — the glyph is both consonant
hand the carrier for standalone vowels.from_aksaraonꦲꦗꦶreturnshaji, notaji. Useexplicit_vowels: truewhen encoding if disambiguation matters. - Spaces — Aksara Jawa traditionally omits word boundaries. Pass
spaces: truetoto_aksaraif you need spaces preserved for round-tripping.
License
MIT © Simon Harms