Comprehensive Model Context Protocol server for managing Home Assistant through AI assistants.
FarsiTools (paid) is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Persian and Iranian utilities for agents: Jalali dates, national ID, IBAN, holidays. Paid via x402.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http farsitools-paid-mcp https://farsi-tools.johnaio281.workers.dev/mcp
# 2 — ask your agent for something these tools do
# fa_normalize, fa_transliterate, fa_stats and 24 more
FarsiTools (paid) costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http farsitools-paid-mcp https://farsi-tools.johnaio281.workers.dev/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
27 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Normalize Persian (Farsi) text: convert Arabic letter variants (ي, ك) to their Persian forms, unify ZWNJ and spacing, and map Arabic-Indic digits to Persian digits. Use it before indexing, searching or comparing Persian text so that lookalike spellings match. Returns the normalized string. ($0.01 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | Persian (Farsi) text or value to process. Max 100000 characters. |
| options | no | optional, e.g. {"digits":"ascii"} |
Transliterate Persian, Dari or Arabic script into Latin letters, optionally as a URL slug. Use it to index Persian text in a Latin-keyword search engine, to build slugs for Persian titles, or to render Persian names in a Latin-only system. Returns the Latin transliteration and, when asked, the slug. ($0.01 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | Persian (Farsi) text or value to process. Max 100000 characters. |
| options | no | optional, e.g. {"digits":"ascii"} | |
| slug | boolean | no | — |
Measure Persian text: character count, word count, line count and the number of ZWNJ half-space characters. Use it to size a Persian document, enforce a length limit, or report text statistics for Persian content. Returns a stats object. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | Persian (Farsi) text or value to process. Max 100000 characters. |
| options | no | optional, e.g. {"digits":"ascii"} |
Convert the digits inside a string between Persian (۰-۹), Arabic-Indic (٠-٩) and ASCII (0-9) numeral systems, leaving the rest of the text untouched. Use it to make Persian text machine-readable or to render an ASCII number in Persian script. Returns the converted string. ($0.003 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | text containing digits |
| to | string | no | — |
Write an integer out in Persian words (عدد به حروف), for example 1234 as هزار و دویست و سی و چهار. Use it for Persian invoices, cheque amounts, legal and official forms, and display. Returns the number spelled in Persian words. ($0.01 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| number | yes | integer, string digits, commas or Persian digits |
Convert a Gregorian (ISO, Western) calendar date to the Jalali, Solar Hijri, Persian or Shamsi calendar used in Iran. Use it to display a date to Iranian users, to schedule work in the Iranian calendar, or to convert a Gregorian deadline into a Jalali date. Returns the Jalali year, month, day and month name. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| year | number | yes | — |
| month | number | yes | — |
| day | number | yes | — |
Convert a Jalali (Solar Hijri, Persian, Shamsi) calendar date to the Gregorian calendar. Use it to turn a date written in the Iranian calendar back into an ISO 8601 date, to check whether a Jalali date is today, or to compare an Iranian deadline with a Western one. Returns the Gregorian year, month, day and weekday. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| year | number | yes | — |
| month | number | yes | — |
| day | number | yes | — |
Validate an Iranian national ID (کد ملی, code melli) by recomputing its check digit. Use it before accepting an identity number from a form, a customer, or an API payload. Returns whether the number is valid, and the parsed digits. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| value | string | yes | 10-digit national ID |
Validate an Iranian IBAN, called Sheba (شبا), with the ISO 13616 mod-97 check, and return the bank code. Use it before sending or crediting an Iranian bank transfer. Returns validity, the normalized IBAN and the bank identifier. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| value | string | yes | IR + 24 digits |
Validate and normalize an Iranian mobile phone number, checking the operator prefix (MCI, Irancell, Rightel, Shatel) and the national format 09xxxxxxxxx. Use it to verify a phone number on a sign-up form or before sending an SMS. Returns validity, the normalized number and the operator. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| value | string | yes | mobile in any common format |
Extract the frequent keywords from Persian text, filtering Persian and English stopwords and ranking by frequency. Use it to build a search index, an automatic tag list, or a topic summary for a Persian document. Returns the ranked keywords. ($0.01 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | Persian (Farsi) text or value to process. Max 100000 characters. |
| options | no | optional, e.g. {"digits":"ascii"} | |
| limit | number | no | — |
Split Persian text into sentences, handling the Persian question mark ؟, the exclamation mark, ellipsis … and abbreviation boundaries. Use it to chunk Persian text for summarization, translation or per-sentence processing. Returns the list of sentences. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | Persian (Farsi) text or value to process. Max 100000 characters. |
| options | no | optional, e.g. {"digits":"ascii"} |
Measure the similarity of two Persian strings as a trigram Jaccard score from 0 to 1. Use it to detect near-duplicate Persian text, deduplicate a corpus, or rank one Persian string against another. Returns the similarity score. ($0.01 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| a | string | yes | first string |
| b | string | yes | second string |
Strip HTML tags and decode HTML entities out of a string, leaving the readable text behind. Use it to clean web pages or scraped content before feeding it to an agent or an index. Returns the plain text. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | Persian (Farsi) text or value to process. Max 100000 characters. |
| options | no | optional, e.g. {"digits":"ascii"} |
Remove Unicode bidi control characters and repair the spacing around right-to-left punctuation. Use it to clean Persian or Arabic text that renders in the wrong order or shows stray markers. Returns the cleaned string. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | Persian (Farsi) text or value to process. Max 100000 characters. |
| options | no | optional, e.g. {"digits":"ascii"} |
Validate an Iranian bank card number, called a PAN (کارت بانکی), with the Luhn check digit, and return the issuing bank. Use it before charging a card or accepting card details from a customer. Returns validity, the masked number and the bank name. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| value | string | yes | 16-digit Iranian bank card number |
Validate an Iranian company national ID (شناسه ملی اشخاص حقوقی, the 11-digit legal-entity identifier) by recomputing its check digit. Use it when onboarding a business customer or validating an Iranian legal entity. Returns validity and the parsed digits. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| value | string | yes | 11-digit legal-entity national ID |
Validate an Iranian economic code (کد اقتصادی, the 12-digit taxpayer identifier) by recomputing its check digit. Use it when validating the tax identifier on an Iranian invoice or a supplier record. Returns validity and the parsed digits. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| value | string | yes | 12-digit economic code |
Validate an Iranian postal code (کد پستی, the 10-digit code) by recomputing its check digit. Use it before using a postal code for delivery or address validation. Returns validity, the normalized code and its province. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| value | string | yes | 10-digit postal code |
Validate and normalize an Iranian landline number with its area code (021 for Tehran and so on) and resolve that area code to a city. Use it to verify a fixed-line contact or to route a support request to the right region. Returns validity, the normalized number, the area code and the city. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| value | string | yes | landline in any common format |
Look up an Iranian province by its Persian name and return its capital and major cities. Use it to resolve a province in an address, to attach geographic context to a user, or to normalize a location field. Returns the province, its capital and its cities. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | province name in Persian |
| text | string | no | alias for name |
| value | string | no | alias for name |
Look up an Iranian city by its Persian name and return the province it belongs to. Use it to resolve a city in an address or to group a location by region. Returns the city and its province. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | city name in Persian |
| text | string | no | alias for name |
| value | string | no | alias for name |
List all 31 Iranian provinces with their capitals and major cities. Use it to populate a province dropdown, to build a location picker, or to validate a region name. Returns every province. ($0.003 per call, USDC on Base)
No parameter schema on file.
Return the official Iranian public holidays for a Jalali (Solar Hijri) year, with each holiday's Gregorian date and name. Use it to plan delivery or support schedules around Iranian holidays, or to flag non-working days. Returns the holiday list. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| year | number | yes | — |
Check whether a given Jalali (Solar Hijri) date is an Iranian public holiday and return the holiday's name if it is. Use it before booking, scheduling or sending a deadline-sensitive action on an Iranian working day. Returns whether it is a holiday and which one. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| year | number | yes | — |
| month | number | yes | — |
| day | number | yes | — |
Write an amount of Iranian rial or toman out in Persian words (مبلغ به حروف), as required on Iranian cheques, invoices and contracts. Use it to render a payable amount for a Persian-speaking payer. Returns the amount spelled in Persian words with its unit. ($0.005 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| amount | yes | — | |
| number | no | — | |
| unit | string | no | — |
Convert an amount between Iranian rial and toman, where 1 toman equals 10 rial. Use it when a price is given in one unit and must be shown or billed in the other. Returns the converted amount. ($0.003 per call, USDC on Base)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| amount | yes | — | |
| number | no | — | |
| unit | string | no | — |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install FarsiTools (paid) or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | moderate | capability blast radius (moderate) — client exposure if the model is manipulated | −3 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. moderate is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| fa_normalize | no tags | |
| fa_transliterate | no tags | |
| fa_stats | no tags | |
| fa_digits | no tags | |
| fa_numberToWords | no tags | |
| fa_gregorianToJalali | no tags | |
| fa_jalaliToGregorian | no tags | |
| fa_validateNationalId | no tags | |
| fa_validateSheba | no tags | |
| fa_validateMobile | external-sink | external-sink: keyword "sms" |
| fa_keywords | no tags | |
| fa_sentences | no tags | |
| fa_similarity | no tags | |
| fa_stripHtml | no tags | |
| fa_fixRtl | no tags | |
| fa_validateBankCard | no tags | |
| fa_validateCompanyId | no tags | |
| fa_validateEconomicCode | no tags | |
| fa_validatePostalCode | no tags | |
| fa_validateLandline | no tags | |
| fa_iranProvince | no tags | |
| fa_iranCity | no tags | |
| fa_iranProvinces | no tags | |
| fa_iranHolidays | no tags | |
| fa_iranHolidayCheck | no tags | |
| fa_amountToWords | no tags | |
| fa_rialToman | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.8.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish FarsiTools (paid) can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.