asms

ai.asmsPublished by asms.aiOfficial publisherv1.1.0Updated Oct 29, 2026

Phone numbers for AI agents: SMS verification codes and rented numbers that receive SMS.

VerifiedStreamable HTTPWeb executableCommunication & CollaborationBusiness & Commerce

Overview

AI-generated overview

ASMS gives an AI assistant phone numbers: buy one-time SMS verification codes or rent numbers that receive SMS, paid from an asms wallet.

What you can do
  • Check the account: wallet balance, per-service and per-country prices, number stock, open orders and current rentals
  • Buy a one-time number for an SMS verification code, then poll the order until the code arrives
  • Rent a number for 1 day to 12 months and read every SMS it receives
  • Cancel an order or a rental for a refund where the rules allow
When to use it
Useful when an agent needs to complete a phone-verification step on a service, or when you want a dedicated number that keeps receiving SMS for testing your own app's SMS login or an account you will verify again later.
Requirements
Remote Streamable HTTP endpoint at asms.ai/mcp; no local package. An asms account with a funded wallet, authenticated either through MCP sign-in (OAuth) or an API key sent in the Authorization header as a Bearer token. Network access to asms.ai.
Before you install
Purchases spend real wallet balance: create_otp_order, rent_number, cancel_order and cancel_rental are marked as needing user confirmation, and the server asks you to confirm price with the user first. The API key is a secret sent in the Authorization header. The assistant receives SMS content, including verification codes, from a third-party provider.

Installation

In SourceWeft

  1. Open asms in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/ai.asms%2Fasms/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "asms": {
      "type": "http",
      "url": "https://asms.ai/mcp"
    }
  }
}

README

asms MCP server

Phone numbers for AI agents. Connect asms.ai to Claude, ChatGPT, Codex, Cursor, Grok or any MCP client, and your agent can:

  • get SMS verification codes: a one-time number for a service, charged only when the code arrives and refunded automatically when none does;
  • rent phone numbers: a number of your own for a day to a year that receives every SMS sent to it, for testing your app's SMS login or an account you'll verify again later;
  • check the account: balance, prices, stock and open orders.

Everything is paid from your asms wallet, and the tools that spend are marked so your client asks you first.

https://asms.ai/mcp

Remote server, Streamable HTTP. Sign in with your asms account (OAuth), or send an API key from your dashboard as Authorization: Bearer <key>.

Setup

Full step-by-step pages, including a prompt your agent can follow on its own, are at asms.ai/agents.

ClientQuick setup
Claude Codeclaude mcp add --transport http asms https://asms.ai/mcp, then /mcp to sign in
Claude (claude.ai, Desktop)Customize → Connectors → Add custom connector → https://asms.ai/mcp
Codexcodex mcp add asms --url https://asms.ai/mcp --bearer-token-env-var ASMS_API_KEY
ChatGPTPlugins → Add custom MCP server → https://asms.ai/mcp, OAuth
CursorAdd to Cursor or ~/.cursor/mcp.json
VS CodeInstall in VS Code or .vscode/mcp.json
WindsurfserverUrl entry in Cascade's mcp_config.json
Gemini CLIgemini mcp add --transport http asms https://asms.ai/mcp
opencoderemote entry in opencode.json
Clineurl + "type": "streamableHttp" entry in cline_mcp_settings.json (llms-install.md)
Grokgrok.com Connectors → Custom, or the xAI API mcp tool
OpenAI APIResponses API {"type": "mcp", "server_url": "https://asms.ai/mcp"}

Most clients that take a URL and headers accept:

json
{  "mcpServers": {    "asms": {      "url": "https://asms.ai/mcp",      "headers": { "Authorization": "Bearer <ASMS_API_KEY>" }    }  }}

Tools

ToolWhat it doesNeeds your OK
get_balanceWallet balance
get_pricingVerification code prices by country and service
get_inventoryNumbers in stock by country and service
create_otp_orderOrder a number for one verification codeyes
poll_smsCheck for the code on an order
list_active_ordersOrders waiting for a code or already received
cancel_orderCancel an order (rarely needed: unfilled orders refund themselves)yes
get_rental_offersRental countries, periods and prices
rent_numberRent a number for a periodyes
list_rentalsYour rented numbers and their end dates
read_rental_smsSMS received by a rented number
cancel_rentalCancel a rental for a refund (5 to 120 minutes after renting, before any SMS)yes

Pricing

Connecting is free. Verification codes are priced per service and country and charged only when the code arrives; rentals are priced per country and period. See asms.ai/pricing.

Also

License

MIT

Source: README.md at commit 6e08514

Tools

12

get_balance

Wallet balance

Get the current wallet balance for the authenticated account.

Takes no parameters.

get_pricing

Verification code prices

Get the retail price per OTP activation for a service in a country. Omit `service` to list prices for every available service.

Parameterscountryrequiredservice

get_inventory

Verification number stock

Get how many numbers are in stock for a service in a country. Omit `service` to list stock for every available service.

Parameterscountryrequiredservice

create_otp_order

Order a verification number

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 cancel to retry: simply call create_otp_order again for a fresh number and keep polling that one. Unfilled orders auto-refund within 10 minutes, so you only pay for codes that actually land and there is no penalty for ordering repeatedly. When a service keeps rejecting codes, order on the "us1" (Non-VoIP AT&T) pool, which has the highest delivery rate. WARNING: this spends real wallet balance.

Parameterscountryrequiredservicerequired

poll_sms

Check for the verification code

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 after a minute or two, the fastest path is to order a fresh number with create_otp_order (prefer the "us1" Non-VoIP pool) and leave the original: it auto-refunds within 10 minutes. Never cancel just to retry, and there is no charge for ordering again, you only pay for codes that arrive.

ParametersorderIdrequired

list_active_orders

List verification orders

List recent OTP orders for the account (awaiting a code or already received).

Parameterslimit

cancel_order

Cancel a verification order

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, and cancel is blocked for the first 10 minutes anyway. Only use this to release an order you are certain you no longer need once its 10-minute hold has passed.

ParametersorderIdrequired

get_rental_offers

Number rental prices

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 an OTP order, which is for one code. Omit `country` to list the countries numbers can be rented in.

Parameterscountry

rent_number

Rent a phone number

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 rental ends. Read its SMS with read_rental_sms. WARNING: this spends real wallet balance; confirm the country, period and price with the user first.

Parametersperiodrequiredcountryrequired

list_rentals

List rented numbers

List the account's rented numbers with their country, period and end date. Ended rentals are left out unless `includeEnded` is true.

ParametersincludeEnded

read_rental_sms

Read a rented number's SMS

Read the SMS a rented number has received during this rental, newest first. Poll again every few seconds while waiting for a message.

Parametersnumberrequired

cancel_rental

Cancel a rental for a refund

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 runs to its end date.

Parametersnumberrequired

Version history

1
  1. v1.1.0LatestOct 29, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts