The Saudi riyal has its own Unicode code point and is routinely emitted as the Iranian rial instead. Hijri output varies between Node, Chrome, Safari and Hermes. Arabic needs six plural forms and most libraries ship two. These are exactly the errors a model will produce confidently and nobody catches until something is printed.
An MCP wrapper around arabicfmt, a zero-dependency Arabic formatting library. It formats and spells currency, converts Gregorian dates to Hijri, writes numbers as Arabic words, picks the right plural form, repairs RTL sentences, and validates IBANs and Saudi IDs.
- Money — format_currency applies the correct symbol, grouping and decimal precision; spell_currency writes the full amount in Arabic words with the major and minor units in agreement
- Dates — format_hijri renders a Gregorian date with Arabic month names and era; to_hijri returns the year, month and day components
- Numbers — arabic_to_words, arabic_ordinal, format_number with optional Eastern Arabic numerals, format_compact with Arabic scale words, and parse_number which reads Latin or Eastern Arabic digits back into a number
- Time — format_duration writes a millisecond duration as natural Arabic; format_relative_time renders a date against a base date
- Language — arabic_plural selects from the six CLDR plural categories; transliterate maps Arabic to Latin script; slugify produces URL-safe slugs
- Layout — isolate_foreign wraps phone numbers, Latin text and URLs in Unicode bidi isolates so an RTL sentence stops breaking apart
- Validation — validate_iban checks the IBAN checksum and country length; validate_saudi_id checks the national or iqama check digit
The arabicfmt-mcp npm package over stdio, registered as io.github.cc1a2b/arabicfmt-mcp. Node.js 18 or newer. No account, no key, no network — every answer is computed locally, and the underlying library has zero runtime dependencies.
One command — npx -y arabicfmt-mcp
