Arabic Toolkit
БесплатноНе проверенMCP server exposing Arabic text utilities: normalisation, tashkeel stripping, transliteration, heuristic dialect detection, and token counting.
Описание
MCP server exposing Arabic text utilities: normalisation, tashkeel stripping, transliteration, heuristic dialect detection, and token counting.
README
A small Model Context Protocol (MCP) server
exposing practical Arabic text utilities. Built with the official mcp Python
SDK (FastMCP).
Demonstrates: MCP server authoring / tool development
All tools are implemented for real -- deterministic string processing plus one
clearly-labelled heuristic. The pure logic lives in
arabic_tools.py (no mcp dependency), so it is
independently unit-tested; server.py is a thin MCP wrapper.
Tools
| Tool | Description | Example input | Example output |
|---|---|---|---|
normalise_arabic |
NFC-normalises, removes diacritics (harakat/tashkil) and tatweel, and optionally unifies letter variants (alef/yeh/teh-marbuta). | الْعَرَبِيَّةُ |
العربية |
strip_tashkeel |
Removes only the diacritics (and, by default, the tatweel); leaves letters as-is. | كــــتاب |
كتاب |
transliterate |
Documented, deterministic Arabic→Latin romanisation (simplified DIN 31635 / ALA-LC, ASCII digraphs). | كَتَبَ |
{"transliteration": "kataba", "scheme": "din31635-simplified-ascii"} |
detect_dialect |
Heuristic dialect guess (Egyptian/Levantine/Gulf/Maghrebi/MSA) from marker words. Not a trained classifier — see limits below. | شو بدك هلق؟ |
{"dialect": "levantine", "confidence": 1.0, ...} |
count_tokens |
Whitespace-token count plus character and Arabic-character statistics. | مرحبا يا عالم |
{"tokens": 3, "characters": 13, ...} |
About detect_dialect (read this)
detect_dialect is an honest heuristic, not a machine-learning model. It
counts hand-picked marker words/particles per dialect and returns the highest
scorer. Known limits:
- Only five coarse groups (Egyptian, Levantine, Gulf, Maghrebi, MSA).
- Unreliable on short input, mixed-dialect text, and code-switching.
confidenceis a crude ratio (winning hits / total hits), not a calibrated probability.- Falls back to MSA with
confidence: 0.0when no markers are found.
For production-grade detection, train a supervised classifier (e.g. fastText or a fine-tuned transformer) on a labelled corpus such as MADAR or NADI.
About transliterate
The romanisation is deterministic and documented but intentionally simple:
- No vowel inference — short vowels are produced only from explicit harakat.
- No context-sensitive rules — the article
الis alwaysal-(no sun-letter assimilation), and hamzat al-wasl is not elided. - Shadda doubles the preceding consonant; sukun emits no vowel.
- One-way (Arabic → Latin); not round-trippable.
Install
Requires Python 3.10+.
# Clone, then install the package (editable for local development):
pip install -e .
This pulls in the mcp SDK and registers a mcp-arabic-toolkit console script.
The tests themselves need only pytest (no mcp SDK):
pip install pytest
Run
# Option A: run the module directly (stdio transport)
python server.py
# Option B: run the installed console script
mcp-arabic-toolkit
Register with an MCP client
To use it from Claude Desktop (or any MCP client), add an entry to the client's MCP server config:
{
"mcpServers": {
"arabic-toolkit": {
"command": "python",
"args": ["/absolute/path/to/mcp-arabic-toolkit/server.py"]
}
}
}
Test
python -m pytest tests/ -v
The suite (tests/test_tools.py) imports the pure logic directly and covers
every tool with concrete examples (diacritic/tatweel removal, letter
unification, transliteration with and without harakat, each dialect, and token
counting).
Quick local check
python -c "import arabic_tools; print(arabic_tools.normalise_arabic('الْعَرَبِيَّةُ'))"
# -> العربية
Publishing to the MCP registry
This package ships a server.json manifest compatible with the official MCP registry.
Exact metadata (server.json)
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json",
"name": "io.github.benjiscollector/mcp-arabic-toolkit",
"description": "MCP server exposing Arabic text utilities: normalisation, tashkeel stripping, transliteration, a heuristic dialect detector, and token counting.",
"status": "active",
"repository": {
"url": "https://github.com/BenjisCollector/mcp-arabic-toolkit",
"source": "github"
},
"version": "0.2.0",
"packages": [
{
"registryType": "pypi",
"registryBaseUrl": "https://pypi.org",
"identifier": "mcp-arabic-toolkit",
"version": "0.2.0",
"transport": { "type": "stdio" }
}
]
}
The server name uses the io.github.<owner>/<repo> namespace, which the
registry verifies against GitHub ownership during publish.
Steps
- Build and publish the PyPI package so the registry has something to point
at:
python -m build twine upload dist/* - Install the registry publisher CLI (
mcp-publisher) — see the registry publishing guide. - Authenticate with GitHub so the CLI can verify the
io.github.*namespace:mcp-publisher login github - Publish from the directory containing
server.json:mcp-publisher publish
To list this server on the community modelcontextprotocol/servers README as well, see SUBMISSION.md for the exact entry text and PR steps.
License
MIT — see LICENSE.
Установка Arabic Toolkit
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/BenjisCollector/mcp-arabic-toolkitFAQ
Arabic Toolkit MCP бесплатный?
Да, Arabic Toolkit MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Arabic Toolkit?
Нет, Arabic Toolkit работает без API-ключей и переменных окружения.
Arabic Toolkit — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Arabic Toolkit в Claude Desktop, Claude Code или Cursor?
Открой Arabic Toolkit на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Arabic Toolkit with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
