{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_7pkge2ac8vtq","handle":"asms","url":"https://wellknown.network/agents/asms","links":{"self":"https://wellknown.network/agents/asms/record.json","html":"https://wellknown.network/agents/asms","markdown":"https://wellknown.network/agents/asms/record.md","api":"https://wellknown.network/api/v1/agents/asms","status":"https://wellknown.network/api/v1/agents/asms/status","claim":"https://wellknown.network/agents/asms/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/asms/claim.json","badge":"https://wellknown.network/agents/asms/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/asms/history","tools":"https://wellknown.network/api/v1/agents/asms/tools"},"ard":{"identifier":"urn:air:asms.ai:server:asms","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"asms","summary":"Phone numbers for AI agents: SMS verification codes and rented numbers that receive SMS.","description":"Phone numbers for AI agents: SMS verification codes and rented numbers that receive SMS.","publisher":{"name":"ai.asms","url":null},"homepage":"https://asms.ai/agents","repository":"https://github.com/asms-ai/asms-mcp","version":"1.1.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://asms.ai/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-29T17:54:00.535894Z","publishedAt":"2026-10-29T17:54:00.535894Z","registryName":"ai.asms/asms"},"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":"commerce.ecommerce","name":"E-commerce Operations","confidence":1,"provenance":"derived"},{"slug":"communication.sms-voice","name":"SMS & Voice","confidence":1,"provenance":"derived"},{"slug":"commerce.pricing","name":"Pricing & Quotes","confidence":0.51,"provenance":"derived"}],"categories":["commerce","communication"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 7h ago.","lastOkAt":"2026-11-05T20:26:34.188Z","lastProbedAt":"2026-11-05T20:26:34.188Z","statusComputedAt":"2026-11-05T20:29:36.116Z","reliability30d":{"probes":16,"successRate":1,"p50Ms":250,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":16,"ok":16,"authBoundaryOk":0,"serviceOk":16,"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-11-05T20:26:34.188Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":257,"error":null,"detail":{"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 NOT"},{"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 afte"},{"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 own, "},{"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 a"},{"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 r"},{"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 r"}],"toolCount":12,"toolsHash":"76ad23183d58bd1c1085824ece0e982c9f52e9ed01869258b8c8c24f87373ee9","serverName":"asms","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-05T11:22:09.806Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":280,"error":null,"detail":{"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 NOT"},{"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 afte"},{"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 own, "},{"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 a"},{"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 r"},{"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 r"}],"toolCount":12,"toolsHash":"76ad23183d58bd1c1085824ece0e982c9f52e9ed01869258b8c8c24f87373ee9","serverName":"asms","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-05T02:24:04.679Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":273,"error":null,"detail":{"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 NOT"},{"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 afte"},{"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 own, "},{"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 a"},{"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 r"},{"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 r"}],"toolCount":12,"toolsHash":"76ad23183d58bd1c1085824ece0e982c9f52e9ed01869258b8c8c24f87373ee9","serverName":"asms","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-04T18:25:14.092Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":484,"error":null,"detail":{"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 NOT"},{"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 afte"},{"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 own, "},{"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 a"},{"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 r"},{"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 r"}],"toolCount":12,"toolsHash":"76ad23183d58bd1c1085824ece0e982c9f52e9ed01869258b8c8c24f87373ee9","serverName":"asms","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-04T10:26:02.033Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":297,"error":null,"detail":{"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 NOT"},{"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 afte"},{"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 own, "},{"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 a"},{"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 r"},{"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 r"}],"toolCount":12,"toolsHash":"76ad23183d58bd1c1085824ece0e982c9f52e9ed01869258b8c8c24f87373ee9","serverName":"asms","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-04T02:30:30.573Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":269,"error":null,"detail":{"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 NOT"},{"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 afte"},{"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 own, "},{"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 a"},{"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 r"},{"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 r"}],"toolCount":12,"toolsHash":"76ad23183d58bd1c1085824ece0e982c9f52e9ed01869258b8c8c24f87373ee9","serverName":"asms","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-03T18:26:10.992Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":156,"error":null,"detail":{"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 NOT"},{"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 afte"},{"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 own, "},{"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 a"},{"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 r"},{"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 r"}],"toolCount":12,"toolsHash":"76ad23183d58bd1c1085824ece0e982c9f52e9ed01869258b8c8c24f87373ee9","serverName":"asms","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-03T10:28:36.666Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":130,"error":null,"detail":{"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 NOT"},{"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 afte"},{"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 own, "},{"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 a"},{"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 r"},{"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 r"}],"toolCount":12,"toolsHash":"76ad23183d58bd1c1085824ece0e982c9f52e9ed01869258b8c8c24f87373ee9","serverName":"asms","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-03T02:28:26.765Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":268,"error":null,"detail":{"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 NOT"},{"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 afte"},{"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 own, "},{"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 a"},{"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 r"},{"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 r"}],"toolCount":12,"toolsHash":"76ad23183d58bd1c1085824ece0e982c9f52e9ed01869258b8c8c24f87373ee9","serverName":"asms","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-02T18:22:51.451Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":242,"error":null,"detail":{"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 NOT"},{"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 afte"},{"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 own, "},{"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 a"},{"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 r"},{"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 r"}],"toolCount":12,"toolsHash":"76ad23183d58bd1c1085824ece0e982c9f52e9ed01869258b8c8c24f87373ee9","serverName":"asms","capabilities":["tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}}],"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 NOT"},{"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 afte"},{"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 own, "},{"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 a"},{"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 r"},{"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 r"}],"package":null,"toolSurface":{"id":"ts_e2wd44geecj7","endpointId":"ep_nrby7kkyh6ht","hash":"76ad23183d58bd1c1085824ece0e982c9f52e9ed01869258b8c8c24f87373ee9","toolCount":12,"serverName":"asms","serverVersion":"1.1.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-31T17:29:43.714Z","lastSeenAt":"2026-11-05T20:26:34.194Z","observations":16,"toolNames":["get_balance","get_pricing","get_inventory","create_otp_order","poll_sms","list_active_orders","cancel_order","get_rental_offers","rent_number","list_rentals","read_rental_sms","cancel_rental"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_nrby7kkyh6ht","url":"https://asms.ai/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-11-05T11:22:09.819Z","auth":{"observedAt":"2026-11-05T11:22:10.037Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://asms.ai/.well-known/oauth-protected-resource/mcp","resource":"https://asms.ai/mcp","authorizationServers":["https://asms.ai"],"scopesSupported":["mcp","offline_access"]},"authorizationServer":{"url":"https://asms.ai/.well-known/oauth-authorization-server","issuer":"https://asms.ai","grantTypesSupported":["authorization_code","refresh_token"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["none","client_secret_post","client_secret_basic"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":null},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":false,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-11-05T11:22:10.055Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"asms.ai","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-10-25T05:25:37.000Z","validTo":"2027-01-23T06:25:34.000Z","daysToExpiry":78,"sanCount":2,"fingerprint256":"C3:49:86:F4:FB:F0:6F:BF:37:E9:96:B7:D2:39:23:A1:D0:EE:F5:6A:CA:4D:9D:E3:9B:E2:E2:C2:D4:6F:CF:EB"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"ai.asms/asms","url":"https://registry.modelcontextprotocol.io/v0/servers/ai.asms%2Fasms","firstSeenAt":"2026-10-31T15:22:00.927Z","fetchedAt":"2026-11-04T08:20:52.119Z","normalizedAt":"2026-11-04T08:20:52.119Z"}]},"firstSeenAt":"2026-10-31T15:22:00.927Z","updatedAt":"2026-11-05T20:31:04.798Z"}