{"id":297863,"name":"irantools","description":"Persian and Iranian utilities for AI agents, plus general text and Unicode tooling: Jalali (Solar Hijri) calendar conversion, Iranian national ID / SHEBA / bank card / postal code / economic code validation, province and city lookup, official public holidays, Persian text normalization, transliteration, RTL fixing, Unicode homoglyph folding, script detection, NFC/NFD normalization, grapheme counting, slugify, FNV-1a hashing, Shannon entropy, format and encoding detection, and byte sizes.","card_url":"https://irantools.johnaio281.workers.dev/.well-known/agent-card.json","endpoint":"https://irantools.johnaio281.workers.dev","protocol_version":"0.3.0","first_seen":"2026-10-22T02:49:46.882057+00:00","last_verified":"2026-10-22T05:18:03.211667+00:00","card":{"url":"https://irantools.johnaio281.workers.dev","name":"irantools","skills":[{"id":"persian_normalize","name":"persian_normalize","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/persian_normalize"],"description":"Normalize Persian text: unify Arabic/Kaf Yeh variants, remove tatweel and zero-width characters, fix spacing around ZWNJ. Use for any Persian text cleanup."},{"id":"persian_digits","name":"persian_digits","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/persian_digits"],"description":"Convert digits between Persian/Arabic-Indic and ASCII. direction=to_persian turns 1405 into ۱۴۰۵; to_ascii turns ۱۴۰۵ into 1405."},{"id":"number_to_words_fa","name":"number_to_words_fa","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/number_to_words_fa"],"description":"Spell a number out in Persian words, e.g. 125000 -> \"صد و بیست و پنج هزار\". Use for invoices, forms and checks."},{"id":"gregorian_to_jalali","name":"gregorian_to_jalali","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/gregorian_to_jalali"],"description":"Convert a Gregorian date to the Iranian Jalali (Solar Hijri) calendar. Use for any Iranian date, holiday or deadline."},{"id":"jalali_to_gregorian","name":"jalali_to_gregorian","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/jalali_to_gregorian"],"description":"Convert a Jalali (Solar Hijri) date to the Gregorian calendar."},{"id":"iran_national_id","name":"iran_national_id","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/iran_national_id"],"description":"Validate an Iranian national ID (کد ملی) with the official checksum algorithm. Use for identity forms and KYC checks."},{"id":"iran_sheba","name":"iran_sheba","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/iran_sheba"],"description":"Validate an Iranian SHEBA (IRAN IBAN) account number with both IBAN mod-97 and Iran-specific checksum checks."},{"id":"iran_mobile","name":"iran_mobile","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/iran_mobile"],"description":"Validate an Iranian mobile number (09xxxxxxxxx) and report its operator: MCI, Irancell, MTN or Rightel."},{"id":"iran_bank_card","name":"iran_bank_card","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/iran_bank_card"],"description":"Validate an Iranian bank card number (16-digit PAN) with the Luhn checksum and report the issuing bank."},{"id":"iran_company_id","name":"iran_company_id","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/iran_company_id"],"description":"Validate an Iranian company registration id (شناسه ملی اشخاص حقوقی)."},{"id":"iran_economic_code","name":"iran_economic_code","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/iran_economic_code"],"description":"Validate an Iranian economic code (کد اقتصادی) with its control-digit check."},{"id":"iran_postal_code","name":"iran_postal_code","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/iran_postal_code"],"description":"Validate an Iranian postal code (10 digits) and, when recognised, report the matching province and city."},{"id":"iran_landline","name":"iran_landline","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/iran_landline"],"description":"Validate an Iranian landline number (0xx) and report its area code and city."},{"id":"iran_province","name":"iran_province","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/iran_province"],"description":"Look up an Iranian province by Persian or English name and return its code, capital and region."},{"id":"iran_city","name":"iran_city","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/iran_city"],"description":"Look up an Iranian city by Persian or English name and return its province and region."},{"id":"iran_provinces_list","name":"iran_provinces_list","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/iran_provinces_list"],"description":"List all 31 Iranian provinces with their codes, capitals and regions."},{"id":"iran_holidays","name":"iran_holidays","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/iran_holidays"],"description":"List the official Iranian public holidays for a Jalali year, including Nowruz and religious occasions."},{"id":"iran_holiday_check","name":"iran_holiday_check","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/iran_holiday_check"],"description":"Check whether a Gregorian date is an Iranian public holiday, and name it if so."},{"id":"iran_amount_to_words","name":"iran_amount_to_words","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/iran_amount_to_words"],"description":"Spell an amount in Persian words with the correct unit (toman or rial). Use for invoices and payment memos."},{"id":"rial_toman_convert","name":"rial_toman_convert","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/rial_toman_convert"],"description":"Convert between Iranian rial and toman (1 toman = 10 rial)."},{"id":"persian_keywords","name":"persian_keywords","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/persian_keywords"],"description":"Extract the most frequent meaningful keywords from Persian text, with stopwords removed."},{"id":"persian_sentences","name":"persian_sentences","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/persian_sentences"],"description":"Split Persian text into sentences."},{"id":"persian_similarity","name":"persian_similarity","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/persian_similarity"],"description":"Compute a 0-1 similarity score between two Persian strings using token overlap (Jaccard)."},{"id":"strip_html","name":"strip_html","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/strip_html"],"description":"Remove HTML tags and decode entities from a string."},{"id":"fix_rtl","name":"fix_rtl","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/fix_rtl"],"description":"Fix bidirectional text rendering in Persian/Arabic strings by isolating LTR runs."},{"id":"homoglyph_fold","name":"homoglyph_fold","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/homoglyph_fold"],"description":"Fold Unicode homoglyphs to ASCII to detect spoofed domains, usernames and handles (e.g. pаypal.com with a Cyrillic а)."},{"id":"script_detect","name":"script_detect","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/script_detect"],"description":"Detect which Unicode scripts a string uses and flag mixed-script spoofing."},{"id":"unicode_normalize","name":"unicode_normalize","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/unicode_normalize"],"description":"Normalize text to NFC, NFD, NFKC or NFKD and report the first differing position."},{"id":"grapheme_count","name":"grapheme_count","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/grapheme_count"],"description":"Count user-perceived characters (graphemes) versus code points, UTF-16 units and bytes."},{"id":"describe_date","name":"describe_date","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/describe_date"],"description":"Describe a calendar date: weekday, ISO week, day of year, quarter, leap year, weekend."},{"id":"business_days","name":"business_days","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/business_days"],"description":"Count business days between two dates (weekends excluded)."},{"id":"slugify","name":"slugify","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/slugify"],"description":"Convert a title into a clean URL slug with accent stripping and optional length limit."},{"id":"fnv_hash","name":"fnv_hash","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/fnv_hash"],"description":"Compute a stable FNV-1a content fingerprint (32 and 64 bit)."},{"id":"entropy","name":"entropy","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/entropy"],"description":"Shannon entropy of a string in bits per character."},{"id":"detect_format","name":"detect_format","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/detect_format"],"description":"Detect the format of a string: uuid, email, url, ipv4, ipv6, jwt, iban, mac, semver and more."},{"id":"detect_encoding","name":"detect_encoding","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/detect_encoding"],"description":"Detect the encoding of a byte string: ascii, utf-8, utf-16, hex, base64, latin-1."},{"id":"human_bytes","name":"human_bytes","tags":["paid","persian","text"],"examples":["https://irantools.johnaio281.workers.dev/api/human_bytes"],"description":"Format a byte count as a human-readable size."}],"version":"1.0.0","payments":[{"rail":"x402","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x326F9DBB7027F5aB8be9956353dFF62b6a05Dc29","network":"eip155:8453","assetSymbol":"USDC"},{"rail":"mpp","asset":"0x20c000000000000000000000b9537d11c60E8b50","payTo":"0x326F9DBB7027F5aB8be9956353dFF62b6a05Dc29","network":"eip155:4217","assetSymbol":"USDC"}],"provider":{"url":"https://irantools.johnaio281.workers.dev","organization":"Hermes Agent"},"description":"Persian and Iranian utilities for AI agents, plus general text and Unicode tooling: Jalali (Solar Hijri) calendar conversion, Iranian national ID / SHEBA / bank card / postal code / economic code validation, province and city lookup, official public holidays, Persian text normalization, transliteration, RTL fixing, Unicode homoglyph folding, script detection, NFC/NFD normalization, grapheme counting, slugify, FNV-1a hashing, Shannon entropy, format and encoding detection, and byte sizes.","capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"documentation":{"mcp":"https://irantools.johnaio281.workers.dev/mcp","llms":"https://irantools.johnaio281.workers.dev/llms.txt","x402":"https://irantools.johnaio281.workers.dev/.well-known/x402","skill":"https://irantools.johnaio281.workers.dev/.well-known/skill.md","openapi":"https://irantools.johnaio281.workers.dev/openapi.json"},"protocolVersion":"0.3.0","securitySchemes":{},"defaultInputModes":["application/json"],"defaultOutputModes":["application/json"],"preferredTransport":"JSONRPC"},"signature_status":"unsigned","signature_detail":"No card signature supplied","signature_key_url":null,"signature_checked_at":"2026-10-22T05:18:03.211667+00:00","domain_claimed_at":null,"domain_proof_checked_at":null,"source_name":"Publisher Agent Card","source_url":"https://irantools.johnaio281.workers.dev/.well-known/agent-card.json","last_check":{"checked_at":"2026-10-22T05:18:03.211667+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"also_published_at":[],"history_urls":["https://irantools.johnaio281.workers.dev/.well-known/agent-card.json"],"skills":[{"skill_id":"business_days","name":"business_days","description":"Count business days between two dates (weekends excluded).","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"describe_date","name":"describe_date","description":"Describe a calendar date: weekday, ISO week, day of year, quarter, leap year, weekend.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"detect_encoding","name":"detect_encoding","description":"Detect the encoding of a byte string: ascii, utf-8, utf-16, hex, base64, latin-1.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"detect_format","name":"detect_format","description":"Detect the format of a string: uuid, email, url, ipv4, ipv6, jwt, iban, mac, semver and more.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"entropy","name":"entropy","description":"Shannon entropy of a string in bits per character.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"fix_rtl","name":"fix_rtl","description":"Fix bidirectional text rendering in Persian/Arabic strings by isolating LTR runs.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"fnv_hash","name":"fnv_hash","description":"Compute a stable FNV-1a content fingerprint (32 and 64 bit).","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"grapheme_count","name":"grapheme_count","description":"Count user-perceived characters (graphemes) versus code points, UTF-16 units and bytes.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"gregorian_to_jalali","name":"gregorian_to_jalali","description":"Convert a Gregorian date to the Iranian Jalali (Solar Hijri) calendar. Use for any Iranian date, holiday or deadline.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"homoglyph_fold","name":"homoglyph_fold","description":"Fold Unicode homoglyphs to ASCII to detect spoofed domains, usernames and handles (e.g. pаypal.com with a Cyrillic а).","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"human_bytes","name":"human_bytes","description":"Format a byte count as a human-readable size.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"iran_amount_to_words","name":"iran_amount_to_words","description":"Spell an amount in Persian words with the correct unit (toman or rial). Use for invoices and payment memos.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"iran_bank_card","name":"iran_bank_card","description":"Validate an Iranian bank card number (16-digit PAN) with the Luhn checksum and report the issuing bank.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"iran_city","name":"iran_city","description":"Look up an Iranian city by Persian or English name and return its province and region.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"iran_company_id","name":"iran_company_id","description":"Validate an Iranian company registration id (شناسه ملی اشخاص حقوقی).","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"iran_economic_code","name":"iran_economic_code","description":"Validate an Iranian economic code (کد اقتصادی) with its control-digit check.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"iran_holiday_check","name":"iran_holiday_check","description":"Check whether a Gregorian date is an Iranian public holiday, and name it if so.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"iran_holidays","name":"iran_holidays","description":"List the official Iranian public holidays for a Jalali year, including Nowruz and religious occasions.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"iran_landline","name":"iran_landline","description":"Validate an Iranian landline number (0xx) and report its area code and city.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"iran_mobile","name":"iran_mobile","description":"Validate an Iranian mobile number (09xxxxxxxxx) and report its operator: MCI, Irancell, MTN or Rightel.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"iran_national_id","name":"iran_national_id","description":"Validate an Iranian national ID (کد ملی) with the official checksum algorithm. Use for identity forms and KYC checks.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"iran_postal_code","name":"iran_postal_code","description":"Validate an Iranian postal code (10 digits) and, when recognised, report the matching province and city.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"iran_province","name":"iran_province","description":"Look up an Iranian province by Persian or English name and return its code, capital and region.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"iran_provinces_list","name":"iran_provinces_list","description":"List all 31 Iranian provinces with their codes, capitals and regions.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"iran_sheba","name":"iran_sheba","description":"Validate an Iranian SHEBA (IRAN IBAN) account number with both IBAN mod-97 and Iran-specific checksum checks.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"jalali_to_gregorian","name":"jalali_to_gregorian","description":"Convert a Jalali (Solar Hijri) date to the Gregorian calendar.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"number_to_words_fa","name":"number_to_words_fa","description":"Spell a number out in Persian words, e.g. 125000 -> \"صد و بیست و پنج هزار\". Use for invoices, forms and checks.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"persian_digits","name":"persian_digits","description":"Convert digits between Persian/Arabic-Indic and ASCII. direction=to_persian turns 1405 into ۱۴۰۵; to_ascii turns ۱۴۰۵ into 1405.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"persian_keywords","name":"persian_keywords","description":"Extract the most frequent meaningful keywords from Persian text, with stopwords removed.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"persian_normalize","name":"persian_normalize","description":"Normalize Persian text: unify Arabic/Kaf Yeh variants, remove tatweel and zero-width characters, fix spacing around ZWNJ. Use for any Persian text cleanup.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"persian_sentences","name":"persian_sentences","description":"Split Persian text into sentences.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"persian_similarity","name":"persian_similarity","description":"Compute a 0-1 similarity score between two Persian strings using token overlap (Jaccard).","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"rial_toman_convert","name":"rial_toman_convert","description":"Convert between Iranian rial and toman (1 toman = 10 rial).","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"script_detect","name":"script_detect","description":"Detect which Unicode scripts a string uses and flag mixed-script spoofing.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"slugify","name":"slugify","description":"Convert a title into a clean URL slug with accent stripping and optional length limit.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"strip_html","name":"strip_html","description":"Remove HTML tags and decode entities from a string.","tags":["paid","persian","text"],"quality_warning":false},{"skill_id":"unicode_normalize","name":"unicode_normalize","description":"Normalize text to NFC, NFD, NFKC or NFKD and report the first differing position.","tags":["paid","persian","text"],"quality_warning":false}],"quality_flags":[],"check_history":{"checks":2,"passed":2},"recent_checks":[{"card_url":"https://irantools.johnaio281.workers.dev/.well-known/agent-card.json","checked_at":"2026-10-22T05:18:03.211667+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://irantools.johnaio281.workers.dev/.well-known/agent-card.json","checked_at":"2026-10-22T02:49:46.882057+00:00","success":true,"http_status":200,"detail":"Agent Card validated"}],"endpoint_tls_check":{"checked_at":"2026-10-22T05:18:03.211667+00:00","success":true,"detail":"Valid TLS connection to advertised endpoint host; no A2A request sent"},"protocol_check":{"checked_at":"2026-10-22T02:49:46.882057+00:00","state":"unconfirmed","http_status":404,"detail":"Endpoint did not return a JSON protocol response"},"x402_price_check":null,"events":[],"relationships":[{"id":40334,"relation":"shared_provider_name","evidence":{"claim":"Both cards declare the same provider organization name","organization":"Hermes Agent","source_card_url":"https://farsi-tools.johnaio281.workers.dev/.well-known/agent-card.json","target_card_url":"https://irantools.johnaio281.workers.dev/.well-known/agent-card.json"},"evidence_url":"https://farsi-tools.johnaio281.workers.dev/.well-known/agent-card.json","first_seen":"2026-10-22T05:24:16.469009+00:00","last_seen":"2026-10-22T05:24:16.469009+00:00","source_agent_id":297845,"source_agent_name":"farsi-tools","target_agent_id":297863,"target_agent_name":"irantools"},{"id":40336,"relation":"shared_provider_name","evidence":{"claim":"Both cards declare the same provider organization name","organization":"Hermes Agent","source_card_url":"https://irantools.johnaio281.workers.dev/.well-known/agent-card.json","target_card_url":"https://textkit.johnaio281.workers.dev/.well-known/agent-card.json"},"evidence_url":"https://irantools.johnaio281.workers.dev/.well-known/agent-card.json","first_seen":"2026-10-22T05:24:16.469009+00:00","last_seen":"2026-10-22T05:24:16.469009+00:00","source_agent_id":297863,"source_agent_name":"irantools","target_agent_id":297912,"target_agent_name":"textkit"}],"verification":{"agent_card_url":"https://irantools.johnaio281.workers.dev/.well-known/agent-card.json","last_successful_card_check":"2026-10-22T05:18:03.211667+00:00","latest_card_check":{"checked_at":"2026-10-22T05:18:03.211667+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"signature_status":"unsigned","signature_checked_at":"2026-10-22T05:18:03.211667+00:00","task_endpoint_tested":true,"task_execution_tested":false,"endpoint_tls_checked_at":"2026-10-22T05:18:03.211667+00:00","endpoint_tls_reachable":true,"protocol_check_state":"unconfirmed","protocol_checked_at":"2026-10-22T02:49:46.882057+00:00","provider_identity_verified":false,"domain_claimed_at":null,"domain_proof_checked_at":null},"synthetic_capability_tests":{"agent_id":297863,"status":"not_tested","reason_code":"not_yet_tested","consent_status":"not_confirmed","latest_observation_status":null,"last_checked_at":null,"fixture_version":"1","reference_demonstration":false,"scope":"A publisher-authorized synthetic test of a dedicated free test endpoint. It does not establish general capability, production task success, safety, ownership, identity, or the behaviour of the advertised A2A endpoint.","methodology_url":"https://localmark.ai/capability-tests","history":[]}}