sv-number MCP: Phone Numbers as Tools for an Agent

sv-number is an MCP server that turns phone numbers into nine callable tools. An agent orders a private number in the country a service expects, the server waits for the SMS, pulls the code out of the message, and returns it; the activation is then closed, cancelled, or asked for one more code. It speaks stdio, so any Model Context Protocol client — Claude Code, Codex, Cursor, Claude Desktop, or a framework that hosts its own tools — loads it with a single config entry.

It is a thin layer over a commercial SMS-activation API, and the README is unusually explicit about the part most tools hide: the account has to be funded, and the numbers are for receiving one verification code, not for holding a conversation.

The nine tools

ToolWhat it answers with
get_balanceWhat is left on the account, since ordering needs credit.
list_countriesEvery country with its numeric id and the operators available there.
list_servicesLook up a site by name or domain: the service code, price, how many numbers are online, and the share of codes that actually arrived.
order_numberA private number for one service in one country.
wait_for_codePolls until the SMS lands and returns the parsed code.
finish_activationCloses a successful activation — the step that should follow every success.
cancel_activationCancels when nothing arrives; the money goes back to the balance.
request_another_smsOne more code on the same number, for a re-send or a password reset.
totp_codeComputes an authenticator code locally, RFC 6238, when the second factor is TOTP rather than SMS.

Service codes are arbitrary and cannot be guessed from the site name: uk is Airbnb, re is Coinbase, tn is LinkedIn. The server handles that by search rather than by memory — list_services takes a domain and ranks whole-word matches above substrings, so discord.com finds Discord and x puts X.com above unrelated names that merely contain the letter.

Wiring it in

Install is one line for a CLI client, or one object in any JSON config that MCP clients read:

{
  "mcpServers": {
    "sv-number": {
      "command": "npx",
      "args": ["-y", "sv-number-mcp"],
      "env": { "SVN_API_KEY": "your_key_here" }
    }
  }
}

The key comes from the service's own profile page after signup, and it is read from the environment — no tool returns it and no error message quotes it. Three other settings are worth knowing: SVN_LANG (default en) also decides the currency of the prices, SVN_POLL_SECONDS (default 4) is the polling interval, and SVN_API_BASE points at the activation handler if you ever need to move it.

What the server does on your behalf

Where a typed decision fits

Tools like this are the point at which the site's own subject shows up: the calls are cheap and the choices are boring until the wrong one costs you a number, a balance, or a locked account.

The reason to put the decision in code rather than in a prompt is the same one that applies everywhere else on this site: the answer becomes a value with a probability, the threshold stays in your program, and nothing has to be parsed back out of a paragraph.

What it is not

Last updated: 2026-09-21 · sources & corrections