{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_nk7taksdr73x","handle":"farsitools-paid","url":"https://wellknown.network/agents/farsitools-paid","links":{"self":"https://wellknown.network/agents/farsitools-paid/record.json","html":"https://wellknown.network/agents/farsitools-paid","markdown":"https://wellknown.network/agents/farsitools-paid/record.md","api":"https://wellknown.network/api/v1/agents/farsitools-paid","status":"https://wellknown.network/api/v1/agents/farsitools-paid/status","claim":"https://wellknown.network/agents/farsitools-paid/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/farsitools-paid/claim.json","badge":"https://wellknown.network/agents/farsitools-paid/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/farsitools-paid/history","tools":"https://wellknown.network/api/v1/agents/farsitools-paid/tools"},"ard":{"identifier":"urn:air:farsi-tools.johnaio281.workers.dev:server:farsitools-paid","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"FarsiTools (paid)","summary":"Persian and Iranian utilities for agents: Jalali dates, national ID, IBAN, holidays. Paid via x402.","description":"Persian and Iranian utilities for agents: Jalali dates, national ID, IBAN, holidays. Paid via x402.","publisher":{"name":"dev.workers.johnaio281.farsi-tools","url":null},"homepage":"https://farsi-tools.johnaio281.workers.dev/","repository":"https://github.com/johnaio281/farsi-tools","version":"1.5.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://farsi-tools.johnaio281.workers.dev/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-21T22:32:46.475996Z","publishedAt":"2026-10-21T22:32:46.475996Z","registryName":"dev.workers.johnaio281.farsi-tools/farsi-tools"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"documents.invoice-processing","name":"Invoice Processing","confidence":1,"provenance":"derived"},{"slug":"documents.contracts","name":"Contracts & Legal","confidence":1,"provenance":"derived"},{"slug":"productivity.calendar","name":"Calendar & Scheduling","confidence":1,"provenance":"derived"},{"slug":"data.web-search","name":"Web Search","confidence":0.583,"provenance":"derived"},{"slug":"content.seo","name":"SEO","confidence":0.525,"provenance":"derived"},{"slug":"knowledge.knowledge-graph","name":"Knowledge Graphs","confidence":0.525,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":0.525,"provenance":"derived"},{"slug":"documents.conversion","name":"Document Conversion","confidence":0.51,"provenance":"derived"}],"categories":["content","data","documents","knowledge","productivity","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 4h ago.","lastOkAt":"2026-10-26T00:28:59.140Z","lastProbedAt":"2026-10-26T00:28:59.140Z","statusComputedAt":"2026-10-26T00:31:13.441Z","reliability30d":{"probes":14,"successRate":1,"p50Ms":988,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":14,"ok":14,"authBoundaryOk":0,"serviceOk":14,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-26T00:28:59.140Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":89,"error":null,"detail":{"tools":[{"name":"fa_normalize","description":"Normalize Persian (Farsi) text: convert Arabic letter variants (ي, ك) to their Persian forms, unify ZWNJ and spacing, and map Arabic-Indic digits to Persian dig"},{"name":"fa_transliterate","description":"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 bui"},{"name":"fa_stats","description":"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 "},{"name":"fa_digits","description":"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 "},{"name":"fa_numberToWords","description":"Write an integer out in Persian words (عدد به حروف), for example 1234 as هزار و دویست و سی و چهار. Use it for Persian invoices, cheque amounts, legal and offici"},{"name":"fa_gregorianToJalali","description":"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,"},{"name":"fa_jalaliToGregorian","description":"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 "},{"name":"fa_validateNationalId","description":"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 A"},{"name":"fa_validateSheba","description":"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 tran"},{"name":"fa_validateMobile","description":"Validate and normalize an Iranian mobile phone number, checking the operator prefix (MCI, Irancell, Rightel, Shatel) and the national format 09xxxxxxxxx. Use it"},{"name":"fa_keywords","description":"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 "},{"name":"fa_sentences","description":"Split Persian text into sentences, handling the Persian question mark ؟, the exclamation mark, ellipsis … and abbreviation boundaries. Use it to chunk Persian t"},{"name":"fa_similarity","description":"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 ran"},{"name":"fa_stripHtml","description":"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"},{"name":"fa_fixRtl","description":"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"},{"name":"fa_validateBankCard","description":"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 accept"},{"name":"fa_validateCompanyId","description":"Validate an Iranian company national ID (شناسه ملی اشخاص حقوقی, the 11-digit legal-entity identifier) by recomputing its check digit. Use it when onboarding a b"},{"name":"fa_validateEconomicCode","description":"Validate an Iranian economic code (کد اقتصادی, the 12-digit taxpayer identifier) by recomputing its check digit. Use it when validating the tax identifier on an"},{"name":"fa_validatePostalCode","description":"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 validatio"},{"name":"fa_validateLandline","description":"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-l"},{"name":"fa_iranProvince","description":"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 contex"},{"name":"fa_iranCity","description":"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. Retu"},{"name":"fa_iranProvinces","description":"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":"fa_iranHolidays","description":"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 sch"},{"name":"fa_iranHolidayCheck","description":"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 sendin"},{"name":"fa_amountToWords","description":"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"},{"name":"fa_rialToman","description":"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 othe"}],"toolCount":27,"toolsHash":"ebebf744b0bcb2276d2259eb6e2be856504ccde2ce9c762d2326cbe37e16635e","serverName":"farsi-tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T17:27:57.156Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":3250,"error":null,"detail":{"tools":[{"name":"fa_normalize","description":"Normalize Persian (Farsi) text: convert Arabic letter variants (ي, ك) to their Persian forms, unify ZWNJ and spacing, and map Arabic-Indic digits to Persian dig"},{"name":"fa_transliterate","description":"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 bui"},{"name":"fa_stats","description":"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 "},{"name":"fa_digits","description":"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 "},{"name":"fa_numberToWords","description":"Write an integer out in Persian words (عدد به حروف), for example 1234 as هزار و دویست و سی و چهار. Use it for Persian invoices, cheque amounts, legal and offici"},{"name":"fa_gregorianToJalali","description":"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,"},{"name":"fa_jalaliToGregorian","description":"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 "},{"name":"fa_validateNationalId","description":"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 A"},{"name":"fa_validateSheba","description":"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 tran"},{"name":"fa_validateMobile","description":"Validate and normalize an Iranian mobile phone number, checking the operator prefix (MCI, Irancell, Rightel, Shatel) and the national format 09xxxxxxxxx. Use it"},{"name":"fa_keywords","description":"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 "},{"name":"fa_sentences","description":"Split Persian text into sentences, handling the Persian question mark ؟, the exclamation mark, ellipsis … and abbreviation boundaries. Use it to chunk Persian t"},{"name":"fa_similarity","description":"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 ran"},{"name":"fa_stripHtml","description":"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"},{"name":"fa_fixRtl","description":"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"},{"name":"fa_validateBankCard","description":"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 accept"},{"name":"fa_validateCompanyId","description":"Validate an Iranian company national ID (شناسه ملی اشخاص حقوقی, the 11-digit legal-entity identifier) by recomputing its check digit. Use it when onboarding a b"},{"name":"fa_validateEconomicCode","description":"Validate an Iranian economic code (کد اقتصادی, the 12-digit taxpayer identifier) by recomputing its check digit. Use it when validating the tax identifier on an"},{"name":"fa_validatePostalCode","description":"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 validatio"},{"name":"fa_validateLandline","description":"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-l"},{"name":"fa_iranProvince","description":"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 contex"},{"name":"fa_iranCity","description":"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. Retu"},{"name":"fa_iranProvinces","description":"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":"fa_iranHolidays","description":"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 sch"},{"name":"fa_iranHolidayCheck","description":"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 sendin"},{"name":"fa_amountToWords","description":"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"},{"name":"fa_rialToman","description":"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 othe"}],"toolCount":27,"toolsHash":"ebebf744b0bcb2276d2259eb6e2be856504ccde2ce9c762d2326cbe37e16635e","serverName":"farsi-tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T10:26:58.285Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":6252,"error":null,"detail":{"tools":[{"name":"fa_normalize","description":"Normalize Persian (Farsi) text: convert Arabic letter variants (ي, ك) to their Persian forms, unify ZWNJ and spacing, and map Arabic-Indic digits to Persian dig"},{"name":"fa_transliterate","description":"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 bui"},{"name":"fa_stats","description":"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 "},{"name":"fa_digits","description":"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 "},{"name":"fa_numberToWords","description":"Write an integer out in Persian words (عدد به حروف), for example 1234 as هزار و دویست و سی و چهار. Use it for Persian invoices, cheque amounts, legal and offici"},{"name":"fa_gregorianToJalali","description":"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,"},{"name":"fa_jalaliToGregorian","description":"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 "},{"name":"fa_validateNationalId","description":"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 A"},{"name":"fa_validateSheba","description":"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 tran"},{"name":"fa_validateMobile","description":"Validate and normalize an Iranian mobile phone number, checking the operator prefix (MCI, Irancell, Rightel, Shatel) and the national format 09xxxxxxxxx. Use it"},{"name":"fa_keywords","description":"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 "},{"name":"fa_sentences","description":"Split Persian text into sentences, handling the Persian question mark ؟, the exclamation mark, ellipsis … and abbreviation boundaries. Use it to chunk Persian t"},{"name":"fa_similarity","description":"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 ran"},{"name":"fa_stripHtml","description":"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"},{"name":"fa_fixRtl","description":"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"},{"name":"fa_validateBankCard","description":"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 accept"},{"name":"fa_validateCompanyId","description":"Validate an Iranian company national ID (شناسه ملی اشخاص حقوقی, the 11-digit legal-entity identifier) by recomputing its check digit. Use it when onboarding a b"},{"name":"fa_validateEconomicCode","description":"Validate an Iranian economic code (کد اقتصادی, the 12-digit taxpayer identifier) by recomputing its check digit. Use it when validating the tax identifier on an"},{"name":"fa_validatePostalCode","description":"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 validatio"},{"name":"fa_validateLandline","description":"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-l"},{"name":"fa_iranProvince","description":"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 contex"},{"name":"fa_iranCity","description":"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. Retu"},{"name":"fa_iranProvinces","description":"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":"fa_iranHolidays","description":"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 sch"},{"name":"fa_iranHolidayCheck","description":"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 sendin"},{"name":"fa_amountToWords","description":"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"},{"name":"fa_rialToman","description":"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 othe"}],"toolCount":27,"toolsHash":"ebebf744b0bcb2276d2259eb6e2be856504ccde2ce9c762d2326cbe37e16635e","serverName":"farsi-tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T02:25:31.002Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":51,"error":null,"detail":{"tools":[{"name":"fa_normalize","description":"Normalize Persian (Farsi) text: convert Arabic letter variants (ي, ك) to their Persian forms, unify ZWNJ and spacing, and map Arabic-Indic digits to Persian dig"},{"name":"fa_transliterate","description":"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 bui"},{"name":"fa_stats","description":"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 "},{"name":"fa_digits","description":"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 "},{"name":"fa_numberToWords","description":"Write an integer out in Persian words (عدد به حروف), for example 1234 as هزار و دویست و سی و چهار. Use it for Persian invoices, cheque amounts, legal and offici"},{"name":"fa_gregorianToJalali","description":"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,"},{"name":"fa_jalaliToGregorian","description":"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 "},{"name":"fa_validateNationalId","description":"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 A"},{"name":"fa_validateSheba","description":"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 tran"},{"name":"fa_validateMobile","description":"Validate and normalize an Iranian mobile phone number, checking the operator prefix (MCI, Irancell, Rightel, Shatel) and the national format 09xxxxxxxxx. Use it"},{"name":"fa_keywords","description":"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 "},{"name":"fa_sentences","description":"Split Persian text into sentences, handling the Persian question mark ؟, the exclamation mark, ellipsis … and abbreviation boundaries. Use it to chunk Persian t"},{"name":"fa_similarity","description":"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 ran"},{"name":"fa_stripHtml","description":"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"},{"name":"fa_fixRtl","description":"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"},{"name":"fa_validateBankCard","description":"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 accept"},{"name":"fa_validateCompanyId","description":"Validate an Iranian company national ID (شناسه ملی اشخاص حقوقی, the 11-digit legal-entity identifier) by recomputing its check digit. Use it when onboarding a b"},{"name":"fa_validateEconomicCode","description":"Validate an Iranian economic code (کد اقتصادی, the 12-digit taxpayer identifier) by recomputing its check digit. Use it when validating the tax identifier on an"},{"name":"fa_validatePostalCode","description":"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 validatio"},{"name":"fa_validateLandline","description":"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-l"},{"name":"fa_iranProvince","description":"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 contex"},{"name":"fa_iranCity","description":"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. Retu"},{"name":"fa_iranProvinces","description":"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":"fa_iranHolidays","description":"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 sch"},{"name":"fa_iranHolidayCheck","description":"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 sendin"},{"name":"fa_amountToWords","description":"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"},{"name":"fa_rialToman","description":"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 othe"}],"toolCount":27,"toolsHash":"ebebf744b0bcb2276d2259eb6e2be856504ccde2ce9c762d2326cbe37e16635e","serverName":"farsi-tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T18:31:49.670Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":75,"error":null,"detail":{"tools":[{"name":"fa_normalize","description":"Normalize Persian (Farsi) text: convert Arabic letter variants (ي, ك) to their Persian forms, unify ZWNJ and spacing, and map Arabic-Indic digits to Persian dig"},{"name":"fa_transliterate","description":"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 bui"},{"name":"fa_stats","description":"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 "},{"name":"fa_digits","description":"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 "},{"name":"fa_numberToWords","description":"Write an integer out in Persian words (عدد به حروف), for example 1234 as هزار و دویست و سی و چهار. Use it for Persian invoices, cheque amounts, legal and offici"},{"name":"fa_gregorianToJalali","description":"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,"},{"name":"fa_jalaliToGregorian","description":"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 "},{"name":"fa_validateNationalId","description":"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 A"},{"name":"fa_validateSheba","description":"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 tran"},{"name":"fa_validateMobile","description":"Validate and normalize an Iranian mobile phone number, checking the operator prefix (MCI, Irancell, Rightel, Shatel) and the national format 09xxxxxxxxx. Use it"},{"name":"fa_keywords","description":"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 "},{"name":"fa_sentences","description":"Split Persian text into sentences, handling the Persian question mark ؟, the exclamation mark, ellipsis … and abbreviation boundaries. Use it to chunk Persian t"},{"name":"fa_similarity","description":"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 ran"},{"name":"fa_stripHtml","description":"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"},{"name":"fa_fixRtl","description":"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"},{"name":"fa_validateBankCard","description":"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 accept"},{"name":"fa_validateCompanyId","description":"Validate an Iranian company national ID (شناسه ملی اشخاص حقوقی, the 11-digit legal-entity identifier) by recomputing its check digit. Use it when onboarding a b"},{"name":"fa_validateEconomicCode","description":"Validate an Iranian economic code (کد اقتصادی, the 12-digit taxpayer identifier) by recomputing its check digit. Use it when validating the tax identifier on an"},{"name":"fa_validatePostalCode","description":"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 validatio"},{"name":"fa_validateLandline","description":"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-l"},{"name":"fa_iranProvince","description":"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 contex"},{"name":"fa_iranCity","description":"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. Retu"},{"name":"fa_iranProvinces","description":"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":"fa_iranHolidays","description":"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 sch"},{"name":"fa_iranHolidayCheck","description":"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 sendin"},{"name":"fa_amountToWords","description":"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"},{"name":"fa_rialToman","description":"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 othe"}],"toolCount":27,"toolsHash":"ebebf744b0bcb2276d2259eb6e2be856504ccde2ce9c762d2326cbe37e16635e","serverName":"farsi-tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T11:28:05.906Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":95,"error":null,"detail":{"tools":[{"name":"fa_normalize","description":"Normalize Persian (Farsi) text: convert Arabic letter variants (ي, ك) to their Persian forms, unify ZWNJ and spacing, and map Arabic-Indic digits to Persian dig"},{"name":"fa_transliterate","description":"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 bui"},{"name":"fa_stats","description":"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 "},{"name":"fa_digits","description":"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 "},{"name":"fa_numberToWords","description":"Write an integer out in Persian words (عدد به حروف), for example 1234 as هزار و دویست و سی و چهار. Use it for Persian invoices, cheque amounts, legal and offici"},{"name":"fa_gregorianToJalali","description":"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,"},{"name":"fa_jalaliToGregorian","description":"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 "},{"name":"fa_validateNationalId","description":"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 A"},{"name":"fa_validateSheba","description":"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 tran"},{"name":"fa_validateMobile","description":"Validate and normalize an Iranian mobile phone number, checking the operator prefix (MCI, Irancell, Rightel, Shatel) and the national format 09xxxxxxxxx. Use it"},{"name":"fa_keywords","description":"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 "},{"name":"fa_sentences","description":"Split Persian text into sentences, handling the Persian question mark ؟, the exclamation mark, ellipsis … and abbreviation boundaries. Use it to chunk Persian t"},{"name":"fa_similarity","description":"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 ran"},{"name":"fa_stripHtml","description":"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"},{"name":"fa_fixRtl","description":"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"},{"name":"fa_validateBankCard","description":"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 accept"},{"name":"fa_validateCompanyId","description":"Validate an Iranian company national ID (شناسه ملی اشخاص حقوقی, the 11-digit legal-entity identifier) by recomputing its check digit. Use it when onboarding a b"},{"name":"fa_validateEconomicCode","description":"Validate an Iranian economic code (کد اقتصادی, the 12-digit taxpayer identifier) by recomputing its check digit. Use it when validating the tax identifier on an"},{"name":"fa_validatePostalCode","description":"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 validatio"},{"name":"fa_validateLandline","description":"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-l"},{"name":"fa_iranProvince","description":"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 contex"},{"name":"fa_iranCity","description":"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. Retu"},{"name":"fa_iranProvinces","description":"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":"fa_iranHolidays","description":"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 sch"},{"name":"fa_iranHolidayCheck","description":"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 sendin"},{"name":"fa_amountToWords","description":"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"},{"name":"fa_rialToman","description":"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 othe"}],"toolCount":27,"toolsHash":"ebebf744b0bcb2276d2259eb6e2be856504ccde2ce9c762d2326cbe37e16635e","serverName":"farsi-tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T05:29:54.556Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":37,"error":null,"detail":{"tools":[{"name":"fa_normalize","description":"Normalize Persian (Farsi) text: convert Arabic letter variants (ي, ك) to their Persian forms, unify ZWNJ and spacing, and map Arabic-Indic digits to Persian dig"},{"name":"fa_transliterate","description":"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 bui"},{"name":"fa_stats","description":"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 "},{"name":"fa_digits","description":"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 "},{"name":"fa_numberToWords","description":"Write an integer out in Persian words (عدد به حروف), for example 1234 as هزار و دویست و سی و چهار. Use it for Persian invoices, cheque amounts, legal and offici"},{"name":"fa_gregorianToJalali","description":"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,"},{"name":"fa_jalaliToGregorian","description":"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 "},{"name":"fa_validateNationalId","description":"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 A"},{"name":"fa_validateSheba","description":"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 tran"},{"name":"fa_validateMobile","description":"Validate and normalize an Iranian mobile phone number, checking the operator prefix (MCI, Irancell, Rightel, Shatel) and the national format 09xxxxxxxxx. Use it"},{"name":"fa_keywords","description":"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 "},{"name":"fa_sentences","description":"Split Persian text into sentences, handling the Persian question mark ؟, the exclamation mark, ellipsis … and abbreviation boundaries. Use it to chunk Persian t"},{"name":"fa_similarity","description":"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 ran"},{"name":"fa_stripHtml","description":"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"},{"name":"fa_fixRtl","description":"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"},{"name":"fa_validateBankCard","description":"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 accept"},{"name":"fa_validateCompanyId","description":"Validate an Iranian company national ID (شناسه ملی اشخاص حقوقی, the 11-digit legal-entity identifier) by recomputing its check digit. Use it when onboarding a b"},{"name":"fa_validateEconomicCode","description":"Validate an Iranian economic code (کد اقتصادی, the 12-digit taxpayer identifier) by recomputing its check digit. Use it when validating the tax identifier on an"},{"name":"fa_validatePostalCode","description":"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 validatio"},{"name":"fa_validateLandline","description":"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-l"},{"name":"fa_iranProvince","description":"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 contex"},{"name":"fa_iranCity","description":"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. Retu"},{"name":"fa_iranProvinces","description":"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":"fa_iranHolidays","description":"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 sch"},{"name":"fa_iranHolidayCheck","description":"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 sendin"},{"name":"fa_amountToWords","description":"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"},{"name":"fa_rialToman","description":"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 othe"}],"toolCount":27,"toolsHash":"ebebf744b0bcb2276d2259eb6e2be856504ccde2ce9c762d2326cbe37e16635e","serverName":"farsi-tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T22:26:06.108Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":39,"error":null,"detail":{"tools":[{"name":"fa_normalize","description":"Normalize Persian (Farsi) text: convert Arabic letter variants (ي, ك) to their Persian forms, unify ZWNJ and spacing, and map Arabic-Indic digits to Persian dig"},{"name":"fa_transliterate","description":"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 bui"},{"name":"fa_stats","description":"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 "},{"name":"fa_digits","description":"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 "},{"name":"fa_numberToWords","description":"Write an integer out in Persian words (عدد به حروف), for example 1234 as هزار و دویست و سی و چهار. Use it for Persian invoices, cheque amounts, legal and offici"},{"name":"fa_gregorianToJalali","description":"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,"},{"name":"fa_jalaliToGregorian","description":"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 "},{"name":"fa_validateNationalId","description":"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 A"},{"name":"fa_validateSheba","description":"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 tran"},{"name":"fa_validateMobile","description":"Validate and normalize an Iranian mobile phone number, checking the operator prefix (MCI, Irancell, Rightel, Shatel) and the national format 09xxxxxxxxx. Use it"},{"name":"fa_keywords","description":"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 "},{"name":"fa_sentences","description":"Split Persian text into sentences, handling the Persian question mark ؟, the exclamation mark, ellipsis … and abbreviation boundaries. Use it to chunk Persian t"},{"name":"fa_similarity","description":"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 ran"},{"name":"fa_stripHtml","description":"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"},{"name":"fa_fixRtl","description":"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"},{"name":"fa_validateBankCard","description":"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 accept"},{"name":"fa_validateCompanyId","description":"Validate an Iranian company national ID (شناسه ملی اشخاص حقوقی, the 11-digit legal-entity identifier) by recomputing its check digit. Use it when onboarding a b"},{"name":"fa_validateEconomicCode","description":"Validate an Iranian economic code (کد اقتصادی, the 12-digit taxpayer identifier) by recomputing its check digit. Use it when validating the tax identifier on an"},{"name":"fa_validatePostalCode","description":"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 validatio"},{"name":"fa_validateLandline","description":"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-l"},{"name":"fa_iranProvince","description":"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 contex"},{"name":"fa_iranCity","description":"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. Retu"},{"name":"fa_iranProvinces","description":"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":"fa_iranHolidays","description":"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 sch"},{"name":"fa_iranHolidayCheck","description":"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 sendin"},{"name":"fa_amountToWords","description":"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"},{"name":"fa_rialToman","description":"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 othe"}],"toolCount":27,"toolsHash":"ebebf744b0bcb2276d2259eb6e2be856504ccde2ce9c762d2326cbe37e16635e","serverName":"farsi-tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T16:28:16.723Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":2690,"error":null,"detail":{"tools":[{"name":"fa_normalize","description":"Normalize Persian (Farsi) text: convert Arabic letter variants (ي, ك) to their Persian forms, unify ZWNJ and spacing, and map Arabic-Indic digits to Persian dig"},{"name":"fa_transliterate","description":"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 bui"},{"name":"fa_stats","description":"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 "},{"name":"fa_digits","description":"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 "},{"name":"fa_numberToWords","description":"Write an integer out in Persian words (عدد به حروف), for example 1234 as هزار و دویست و سی و چهار. Use it for Persian invoices, cheque amounts, legal and offici"},{"name":"fa_gregorianToJalali","description":"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,"},{"name":"fa_jalaliToGregorian","description":"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 "},{"name":"fa_validateNationalId","description":"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 A"},{"name":"fa_validateSheba","description":"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 tran"},{"name":"fa_validateMobile","description":"Validate and normalize an Iranian mobile phone number, checking the operator prefix (MCI, Irancell, Rightel, Shatel) and the national format 09xxxxxxxxx. Use it"},{"name":"fa_keywords","description":"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 "},{"name":"fa_sentences","description":"Split Persian text into sentences, handling the Persian question mark ؟, the exclamation mark, ellipsis … and abbreviation boundaries. Use it to chunk Persian t"},{"name":"fa_similarity","description":"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 ran"},{"name":"fa_stripHtml","description":"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"},{"name":"fa_fixRtl","description":"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"},{"name":"fa_validateBankCard","description":"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 accept"},{"name":"fa_validateCompanyId","description":"Validate an Iranian company national ID (شناسه ملی اشخاص حقوقی, the 11-digit legal-entity identifier) by recomputing its check digit. Use it when onboarding a b"},{"name":"fa_validateEconomicCode","description":"Validate an Iranian economic code (کد اقتصادی, the 12-digit taxpayer identifier) by recomputing its check digit. Use it when validating the tax identifier on an"},{"name":"fa_validatePostalCode","description":"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 validatio"},{"name":"fa_validateLandline","description":"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-l"},{"name":"fa_iranProvince","description":"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 contex"},{"name":"fa_iranCity","description":"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. Retu"},{"name":"fa_iranProvinces","description":"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":"fa_iranHolidays","description":"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 sch"},{"name":"fa_iranHolidayCheck","description":"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 sendin"},{"name":"fa_amountToWords","description":"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"},{"name":"fa_rialToman","description":"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 othe"}],"toolCount":27,"toolsHash":"ebebf744b0bcb2276d2259eb6e2be856504ccde2ce9c762d2326cbe37e16635e","serverName":"farsi-tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T09:30:58.657Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":4298,"error":null,"detail":{"tools":[{"name":"fa_normalize","description":"Normalize Persian (Farsi) text: convert Arabic letter variants (ي, ك) to their Persian forms, unify ZWNJ and spacing, and map Arabic-Indic digits to Persian dig"},{"name":"fa_transliterate","description":"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 bui"},{"name":"fa_stats","description":"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 "},{"name":"fa_digits","description":"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 "},{"name":"fa_numberToWords","description":"Write an integer out in Persian words (عدد به حروف), for example 1234 as هزار و دویست و سی و چهار. Use it for Persian invoices, cheque amounts, legal and offici"},{"name":"fa_gregorianToJalali","description":"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,"},{"name":"fa_jalaliToGregorian","description":"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 "},{"name":"fa_validateNationalId","description":"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 A"},{"name":"fa_validateSheba","description":"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 tran"},{"name":"fa_validateMobile","description":"Validate and normalize an Iranian mobile phone number, checking the operator prefix (MCI, Irancell, Rightel, Shatel) and the national format 09xxxxxxxxx. Use it"},{"name":"fa_keywords","description":"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 "},{"name":"fa_sentences","description":"Split Persian text into sentences, handling the Persian question mark ؟, the exclamation mark, ellipsis … and abbreviation boundaries. Use it to chunk Persian t"},{"name":"fa_similarity","description":"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 ran"},{"name":"fa_stripHtml","description":"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"},{"name":"fa_fixRtl","description":"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"},{"name":"fa_validateBankCard","description":"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 accept"},{"name":"fa_validateCompanyId","description":"Validate an Iranian company national ID (شناسه ملی اشخاص حقوقی, the 11-digit legal-entity identifier) by recomputing its check digit. Use it when onboarding a b"},{"name":"fa_validateEconomicCode","description":"Validate an Iranian economic code (کد اقتصادی, the 12-digit taxpayer identifier) by recomputing its check digit. Use it when validating the tax identifier on an"},{"name":"fa_validatePostalCode","description":"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 validatio"},{"name":"fa_validateLandline","description":"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-l"},{"name":"fa_iranProvince","description":"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 contex"},{"name":"fa_iranCity","description":"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. Retu"},{"name":"fa_iranProvinces","description":"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":"fa_iranHolidays","description":"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 sch"},{"name":"fa_iranHolidayCheck","description":"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 sendin"},{"name":"fa_amountToWords","description":"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"},{"name":"fa_rialToman","description":"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 othe"}],"toolCount":27,"toolsHash":"ebebf744b0bcb2276d2259eb6e2be856504ccde2ce9c762d2326cbe37e16635e","serverName":"farsi-tools","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"fa_normalize","description":"Normalize Persian (Farsi) text: convert Arabic letter variants (ي, ك) to their Persian forms, unify ZWNJ and spacing, and map Arabic-Indic digits to Persian dig"},{"name":"fa_transliterate","description":"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 bui"},{"name":"fa_stats","description":"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 "},{"name":"fa_digits","description":"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 "},{"name":"fa_numberToWords","description":"Write an integer out in Persian words (عدد به حروف), for example 1234 as هزار و دویست و سی و چهار. Use it for Persian invoices, cheque amounts, legal and offici"},{"name":"fa_gregorianToJalali","description":"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,"},{"name":"fa_jalaliToGregorian","description":"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 "},{"name":"fa_validateNationalId","description":"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 A"},{"name":"fa_validateSheba","description":"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 tran"},{"name":"fa_validateMobile","description":"Validate and normalize an Iranian mobile phone number, checking the operator prefix (MCI, Irancell, Rightel, Shatel) and the national format 09xxxxxxxxx. Use it"},{"name":"fa_keywords","description":"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 "},{"name":"fa_sentences","description":"Split Persian text into sentences, handling the Persian question mark ؟, the exclamation mark, ellipsis … and abbreviation boundaries. Use it to chunk Persian t"},{"name":"fa_similarity","description":"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 ran"},{"name":"fa_stripHtml","description":"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"},{"name":"fa_fixRtl","description":"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"},{"name":"fa_validateBankCard","description":"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 accept"},{"name":"fa_validateCompanyId","description":"Validate an Iranian company national ID (شناسه ملی اشخاص حقوقی, the 11-digit legal-entity identifier) by recomputing its check digit. Use it when onboarding a b"},{"name":"fa_validateEconomicCode","description":"Validate an Iranian economic code (کد اقتصادی, the 12-digit taxpayer identifier) by recomputing its check digit. Use it when validating the tax identifier on an"},{"name":"fa_validatePostalCode","description":"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 validatio"},{"name":"fa_validateLandline","description":"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-l"},{"name":"fa_iranProvince","description":"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 contex"},{"name":"fa_iranCity","description":"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. Retu"},{"name":"fa_iranProvinces","description":"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":"fa_iranHolidays","description":"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 sch"},{"name":"fa_iranHolidayCheck","description":"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 sendin"},{"name":"fa_amountToWords","description":"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"},{"name":"fa_rialToman","description":"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 othe"}],"package":null,"toolSurface":{"id":"ts_rpwswgtrt86z","endpointId":"ep_an88vbqahavu","hash":"ebebf744b0bcb2276d2259eb6e2be856504ccde2ce9c762d2326cbe37e16635e","toolCount":27,"serverName":"farsi-tools","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-22T06:28:26.914Z","lastSeenAt":"2026-10-26T00:28:59.154Z","observations":14,"toolNames":["fa_normalize","fa_transliterate","fa_stats","fa_digits","fa_numberToWords","fa_gregorianToJalali","fa_jalaliToGregorian","fa_validateNationalId","fa_validateSheba","fa_validateMobile","fa_keywords","fa_sentences","fa_similarity","fa_stripHtml","fa_fixRtl","fa_validateBankCard","fa_validateCompanyId","fa_validateEconomicCode","fa_validatePostalCode","fa_validateLandline","fa_iranProvince","fa_iranCity","fa_iranProvinces","fa_iranHolidays","fa_iranHolidayCheck","fa_amountToWords","fa_rialToman"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_an88vbqahavu","url":"https://farsi-tools.johnaio281.workers.dev/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-25T02:25:31.029Z","auth":{"observedAt":"2026-10-25T02:25:31.060Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-25T02:25:31.076Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"johnaio281.workers.dev","issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validFrom":"2026-10-20T10:25:26.000Z","validTo":"2027-01-18T10:25:25.000Z","daysToExpiry":84,"sanCount":2,"fingerprint256":"77:EF:58:8A:F9:56:0A:06:07:14:0C:20:37:12:9F:CF:0C:FA:3D:B9:83:98:31:10:AA:57:50:28:7B:90:15:82"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"dev.workers.johnaio281.farsi-tools/farsi-tools","url":"https://registry.modelcontextprotocol.io/v0/servers/dev.workers.johnaio281.farsi-tools%2Ffarsi-tools","firstSeenAt":"2026-10-22T06:18:34.596Z","fetchedAt":"2026-10-25T15:20:04.989Z","normalizedAt":"2026-10-25T15:20:04.989Z"}]},"firstSeenAt":"2026-10-22T06:18:34.596Z","updatedAt":"2026-10-26T00:32:37.962Z"}