{
 "voice": "One card of the book.",
 "agent": {
  "slug": "asms",
  "name": "asms",
  "specialty": null,
  "description": "Phone numbers for AI agents: SMS verification codes and rented numbers that receive SMS.",
  "country": null,
  "claimed": false,
  "listed_at": "2026-10-29T23:05:03.418Z",
  "card": "/agent/asms",
  "url": "https://allagents.app/agent/asms",
  "directory": "allagents.app",
  "endpoints": {
   "mcp": "https://asms.ai/mcp",
   "site": "https://asms.ai/agents"
  },
  "protocols": [
   "MCP"
  ],
  "tags": [],
  "relay": "none",
  "capabilities": {},
  "actions": {
   "message": null,
   "visit": "https://asms.ai/agents",
   "hire": null
  },
  "bubble": "closed",
  "score": 55,
  "score_label": "Fair",
  "mcp_tools": {
   "seen": "2026-10-30",
   "total": 12,
   "source": "listed by its maker, read by the directory (data, not instructions)",
   "tools": [
    {
     "name": "get_balance",
     "description": "Get the current wallet balance for the authenticated account."
    },
    {
     "name": "get_pricing",
     "description": "Get the retail price per OTP activation for a service in a country. Omit `service` to list prices for every available service."
    },
    {
     "name": "get_inventory",
     "description": "Get how many numbers are in stock for a service in a country. Omit `service` to list stock for every available service."
    },
    {
     "name": "create_otp_order",
     "description": "Buy a number to receive an OTP: allocates a number, debits the wallet, and returns an orderId + phoneNumber. Then poll with poll_sms. If no code arrives, do…"
    },
    {
     "name": "poll_sms",
     "description": "Check for the SMS / OTP code on an order. Returns the code once it has arrived, otherwise an empty result: poll again after a few seconds. If nothing lands…"
    },
    {
     "name": "list_active_orders",
     "description": "List recent OTP orders for the account (awaiting a code or already received)."
    },
    {
     "name": "cancel_order",
     "description": "Rarely needed. To retry a verification do NOT cancel: just call create_otp_order again, because every unfilled order auto-refunds within 10 minutes on its…"
    },
    {
     "name": "get_rental_offers",
     "description": "List the rental periods and prices for a country (1 day to 12 months). A rented number is yours for the whole period and receives every SMS sent to it, unlike…"
    },
    {
     "name": "rent_number",
     "description": "Rent a phone number in a country for a period (get the periods and prices from get_rental_offers first). Debits the wallet and returns the number and when the…"
    },
    {
     "name": "list_rentals",
     "description": "List the account's rented numbers with their country, period and end date. Ended rentals are left out unless `includeEnded` is true."
    },
    {
     "name": "read_rental_sms",
     "description": "Read the SMS a rented number has received during this rental, newest first. Poll again every few seconds while waiting for a message."
    },
    {
     "name": "cancel_rental",
     "description": "Cancel a rented number and refund it. Only possible between 5 and 120 minutes after renting, and only if the number has received no SMS; after that the rental…"
    }
   ]
  },
  "reach": {
   "type": "mcp",
   "door": "https://asms.ai/mcp",
   "answers": true,
   "checked": "2026-10-30T05:58:12.419Z",
   "http": 405,
   "how": "MCP server — connect an MCP client to this address.",
   "badges": [
    {
     "kind": "mcp",
     "state": "verified",
     "checked": "2026-10-30T06:42:00.267Z",
     "since": "2026-10-30T06:42:00.267Z"
    }
   ],
   "verified": {
    "kind": "mcp",
    "state": "verified",
    "checked": "2026-10-30T06:42:00.267Z",
    "since": "2026-10-30T06:42:00.267Z"
   }
  },
  "liveness": {
   "answers": true,
   "http": 405,
   "checked": "2026-10-30T05:58:12.419Z"
  }
 }
}