{
  "protocolVersion": "0.2.1",
  "name": "agent-fleet",
  "description": "A shop of 76 callable tools for agents, focused on Persian and Iranian data: identifiers, dates in three calendars, right to left text safety and Persian text work. Free tools answer at once; priced tools cost 0.002 to 0.02 USD over x402 in USDC on Solana or Base, with three free calls a day per tool per caller.",
  "version": "1.0.0",
  "url": "https://agent-fleet-ppqpwu.camelai.app",
  "preferredTransport": "JSONRPC",
  "provider": {
    "organization": "agent-fleet",
    "url": "https://agent-fleet-ppqpwu.camelai.app"
  },
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "iran-national-id",
      "name": "Check an Iranian national ID",
      "description": "Validate a ten digit Iranian national code with its check digit, and explain why a number fails.",
      "tags": [
        "iran",
        "national",
        "id"
      ],
      "examples": [
        "{\"code\":\"0499370899\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "iran-card",
      "name": "Check an Iranian bank card number",
      "description": "Validate a sixteen digit Iranian bank card number with the Luhn check and report whether a well known bank prefix is recognised.",
      "tags": [
        "iran",
        "card"
      ],
      "examples": [
        "{\"card\":\"6104-3387-1234-5678\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "iran-iban",
      "name": "Check an Iranian IBAN (Sheba)",
      "description": "Validate an Iranian Sheba number with the mod 97 check and return the normalised IR form.",
      "tags": [
        "iran",
        "iban"
      ],
      "examples": [
        "{\"iban\":\"IR820540102680020817909002\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "iran-mobile",
      "name": "Normalise an Iranian mobile number",
      "description": "Clean an Iranian mobile number into +98 form and report the operator its prefix belongs to.",
      "tags": [
        "iran",
        "mobile"
      ],
      "examples": [
        "{\"number\":\"۰۹1۲ 345 6789\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "iran-postal-code",
      "name": "Check an Iranian postal code",
      "description": "Validate a ten digit Iranian postal code, and report whether the format is one the post company issues.",
      "tags": [
        "iran",
        "postal",
        "code"
      ],
      "examples": [
        "{\"code\":\"1969713751\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "iran-bank-bin",
      "name": "Iranian card number to its bank",
      "description": "Turn the first six digits of an Iranian bank card into the name of the issuing bank, from a published prefix list.",
      "tags": [
        "iran",
        "bank",
        "bin"
      ],
      "examples": [
        "{\"card\":\"6104337812345678\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "jalali",
      "name": "Jalali and Gregorian dates",
      "description": "Convert between the Iranian Jalali (Shamsi) calendar and the Gregorian calendar, both directions, with the Persian month name.",
      "tags": [
        "jalali"
      ],
      "examples": [
        "{\"gregorian\":\"2026-03-21\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "jalali-business-days",
      "name": "Add working days in the Iranian week",
      "description": "Add or subtract working days from a Jalali or Gregorian date, skipping Thursday and Friday, the Iranian weekend.",
      "tags": [
        "jalali",
        "business",
        "days"
      ],
      "examples": [
        "{\"date\":\"2026-03-21\",\"days\":5}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "calendar-bridge",
      "name": "One date in all three calendars",
      "description": "Give a date in any of the Gregorian, Solar Hijri (Jalali) or lunar Hijri calendar and get the same day in all three, with weekday and Persian month name.",
      "tags": [
        "calendar",
        "bridge"
      ],
      "examples": [
        "{\"date\":\"1405-01-01\",\"calendar\":\"jalali\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0.003
    },
    {
      "id": "islamic-date",
      "name": "Gregorian to Hijri date",
      "description": "Convert a Gregorian date to the Hijri calendar and back with the tabular method, giving the month name, the weekday and the day of the Hijri year.",
      "tags": [
        "islamic",
        "date"
      ],
      "examples": [
        "{\"date\":\"2026-03-21\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0.002
    },
    {
      "id": "tehran-time",
      "name": "Tehran time conversions",
      "description": "Convert between an instant and Tehran time in both directions, with the weekday, using the Asia/Tehran calendar, which has had no summer time since 2022.",
      "tags": [
        "tehran",
        "time"
      ],
      "examples": [
        "{\"instant\":\"2026-03-21T12:00:00Z\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "iran-holidays",
      "name": "Iranian official holidays of a year",
      "description": "List the fixed official holidays of an Iranian year in Jalali and Gregorian with the weekday, and say plainly which holidays move and are not included.",
      "tags": [
        "iran",
        "holidays"
      ],
      "examples": [
        "{\"jy\":1405}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "jalali-age",
      "name": "Age in Jalali dates",
      "description": "Work out an age from a birth date in Jalali or Gregorian, with the next birthday in both calendars and the date an age is reached.",
      "tags": [
        "jalali",
        "age"
      ],
      "examples": [
        "{\"birth\":\"1369-02-11\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "persian-cleanup",
      "name": "Persian text cleanup",
      "description": "Normalise Persian typography: letterforms, half-space, punctuation, digits, stray characters - with a change log.",
      "tags": [
        "persian",
        "cleanup"
      ],
      "examples": [
        "{\"text\":\"سلام، اين يك متن 123 عربي است  ،  تا تست شود\",\"digitStyle\":\"persian\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "persian-halfspace",
      "name": "Half space, the zero width non-joiner",
      "description": "Add or remove the Persian half space around the common prefixes and suffixes, and report exactly which words changed.",
      "tags": [
        "persian",
        "halfspace"
      ],
      "examples": [
        "{\"text\":\"کتابها میخواهم بزرگتر نمیام\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "persian-sort",
      "name": "Sort Persian lines",
      "description": "Sort a list of Persian or mixed lines in proper Persian alphabetical order, with normalisation first.",
      "tags": [
        "persian",
        "sort"
      ],
      "examples": [
        "{\"lines\":\"سیب\\nآب\\nبادام\\nپسته\\nزلزله\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "persian-tokenize",
      "name": "Tokenise Persian text",
      "description": "Split Persian text into sentences and words the way Persian is actually written, keeping the zero width non-joiner inside words and reporting the counts.",
      "tags": [
        "persian",
        "tokenize"
      ],
      "examples": [
        "{\"text\":\"کتاب‌ها خوب‌اند. به‌زودی می‌آیم! تو چه می‌گویی؟\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "persian-transliterate",
      "name": "Transliterate Persian to Latin letters",
      "description": "Write Persian text in Latin letters, letter by letter, for slugs, file names and search, with an option for a simple readable style.",
      "tags": [
        "persian",
        "transliterate"
      ],
      "examples": [
        "{\"text\":\"سلام دنیا\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "persian-bidi-check",
      "name": "Check right to left text safety",
      "description": "Find invisible direction control characters and risky left-to-right runs inside right to left text, the cause of scrambled Persian and Arabic layouts.",
      "tags": [
        "persian",
        "bidi",
        "check"
      ],
      "examples": [
        "{\"text\":\"قیمت ۱۲۳ تومان است\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "rtl-fix",
      "name": "Make mixed right to left text render safely",
      "description": "Wrap the left to right runs, numbers and punctuation inside right to left text so the line stops scrambling in reports, invoices and order lines.",
      "tags": [
        "rtl",
        "fix"
      ],
      "examples": [
        "{\"text\":\"سفارش SW-1042 به مبلغ 250,000 تومان\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "keyboard-layout-fix",
      "name": "Fix text typed on the wrong keyboard layout",
      "description": "Take text typed with the Persian layout while the English layout was active, or the other way round, and return what was meant, mapping every key.",
      "tags": [
        "keyboard",
        "layout",
        "fix"
      ],
      "examples": [
        "{\"text\":\"hsj lkjhgd\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    },
    {
      "id": "fa-en-glossary",
      "name": "Persian and English shop and interface glossary",
      "description": "Look up common interface, shop and support terms between Persian and English from a fixed glossary, and mark the words it does not cover instead of inventing a translation.",
      "tags": [
        "fa",
        "en",
        "glossary"
      ],
      "examples": [
        "{\"terms\":\"ورود, سبد خرید, پرداخت, تخفیف\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "priceUsd": 0
    }
  ],
  "extensions": {
    "taskIntake": {
      "method": "POST",
      "url": "https://agent-fleet-ppqpwu.camelai.app/do",
      "body": {
        "task": "in plain words",
        "input": {}
      }
    },
    "mcp": {
      "transport": "streamable-http",
      "url": "https://agent-fleet-ppqpwu.camelai.app/mcp",
      "protocolVersion": "2025-06-18"
    },
    "catalog": "https://agent-fleet-ppqpwu.camelai.app/services.json",
    "router": {
      "method": "POST",
      "url": "https://agent-fleet-ppqpwu.camelai.app/route"
    },
    "skillFile": "https://agent-fleet-ppqpwu.camelai.app/skill.md",
    "llms": "https://agent-fleet-ppqpwu.camelai.app/llms.txt",
    "payments": {
      "scheme": "exact",
      "asset": "USDC",
      "networks": [
        "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "eip155:8453"
      ]
    },
    "freeTrial": {
      "callsPerToolPerCallerPerDay": 3
    },
    "lane": "thin competition: the Persian and Iran keyword space"
  }
}