mcp-arabic-toolkit
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| normalise_arabicA | Normalise Arabic text by removing diacritics, tatweel, and (optionally) unifying letter variants.
Args: text: The Arabic (or mixed) text to normalise. strip_diacritics: Remove harakat / tashkil marks. Defaults to True. strip_tatweel: Remove the tatweel (kashida) character. Defaults to True. normalise_letters: Collapse alef/yeh/teh-marbuta variants. Default False. Returns: The normalised text. |
| strip_tashkeelA | Remove Arabic diacritics (tashkeel) and, optionally, the tatweel. Args: text: The Arabic (or mixed) text to clean. strip_tatweel: Also remove the tatweel character. Defaults to True. Returns: The text with diacritics (and optionally tatweel) removed. |
| transliterateA | Transliterate Arabic text into Latin characters. Uses a documented, deterministic Arabic -> Latin scheme (loosely DIN 31635 /
ALA-LC, simplified to ASCII digraphs). See :func: Args: text: The Arabic text to transliterate. Returns: A dict with the transliterated string and the scheme name. |
| detect_dialectA | Guess the Arabic dialect using a transparent keyword heuristic. This is a rule-based heuristic, NOT a trained classifier. It counts
hand-picked marker words per dialect (Egyptian, Levantine, Gulf, Maghrebi,
MSA) and returns the best match with a crude confidence. See
:func: Args: text: The Arabic text to classify. Returns: A dict with the predicted dialect, label, crude confidence, per-dialect scores, and a note documenting that this is a heuristic. |
| count_tokensA | Count basic statistics: whitespace tokens, characters, Arabic characters. "Tokens" means whitespace-delimited words (not an LLM subword tokenizer). Args: text: The text to measure. Returns: A dict with token, character, no-space character, and Arabic-character counts. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
Each tool has a distinct purpose: counting tokens, dialect detection, normalization, diacritic stripping, and transliteration. The slight overlap between normalise_arabic and strip_tashkeel is clarified by descriptions, making them clearly distinguishable.
Most tool names follow a verb_noun pattern (count_tokens, detect_dialect, normalise_arabic, strip_tashkeel). 'transliterate' is a single verb without an object, which is a minor inconsistency, but overall the pattern is clear and predictable.
5 tools is well-scoped for an Arabic text processing toolkit. Each tool covers a common, meaningful operation without being too few or too many.
The toolkit covers essential Arabic text operations: counting, dialect detection, normalization, diacritic removal, and transliteration. Minor gaps exist (e.g., no stemming or morphological analysis), but for a small toolkit it is reasonably complete.