Sandbox
@sv-number/mcp-server

MCP server for phone numbers and SMS codes

SV Number is an MCP server that gives an agent access to temporary phone numbers for SMS verification. It connects to the SV Number API, ranks countries and services, polls for the code, and returns the parsed result instead of raw SMS text.

555 stars5 forksJavaScriptUpdated 1mo ago
Who it's for

Builders who need their agent to order a number, receive an OTP, and continue a verification flow without manual copying.

What it delivers

You can complete phone-based signups and verifications from your agent instead of switching to a browser and reading SMS by hand.

What it does

Order private numbers

Creates a number for a chosen service and country with `order_number`.

Find countries and services

Lists country coverage with `list_countries` and searches services by name or domain with `list_services`.

Read verification codes

Polls for incoming SMS and returns the parsed code with `wait_for_code`.

Manage activations

Finishes, cancels, or requests another SMS with `finish_activation`, `cancel_activation`, and `request_another_sms`.

Compute TOTP locally

Generates authenticator codes with `totp_code` using RFC 6238.

Handle API quirks

Adds language settings, normalizes error tokens, and polls at a fixed interval instead of hammering the API.

How to get it

  1. 1Claude Code
    claude mcp add sv-number --env SVN_API_KEY=your_key_here -- npx -y sv-number-mcp

README

SV Number MCP server

Phone numbers as tools. Your agent orders a private number in the country a service expects, reads the SMS verification code straight from the API, and hands the number back. Nine tools over stdio, no SDK to learn.

200+ countries, the widest coverage in this category. Every other claim on this page is checkable too, but this one takes a single call: run list_countries and count the rows.

order_number(service="tg", country=6)   ->  +62 838 1234 5678
wait_for_code(activationId)             ->  123456
finish_activation(activationId)         ->  done

Install

Claude Code:

claude mcp add sv-number --env SVN_API_KEY=your_key_here -- npx -y sv-number-mcp

Anything that reads a JSON config (Codex, Cursor, Claude Desktop):

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

The key comes from your profile after signup. The balance has to be funded: there is no free tier on this API. The key is read from the environment and never leaves the process, no tool returns it and no error message quotes it.

Tools

ToolWhat it does
get_balancewhat is left on the account
list_countriesevery country with its id and operators
list_servicesfind the code for a site: search by name or domain, best match first, price, how many are online, and the share of codes that actually arrived
order_numberorder a private number for one service in one country
wait_for_codepoll until the code lands and return it, already parsed out of the SMS
finish_activationclose a successful activation
cancel_activationcancel and get the money back
request_another_smsask for one more code on the same number
totp_codecompute the authenticator code locally, by RFC 6238

list_services answers with matches ranked best first plus notInList, the fallback service. It takes a site name or a URL, so discord.com finds Discord, and it ranks a whole word above a substring so x puts X.com (Twitter) above Maxim. Codes are arbitrary and must never be recalled from memory: uk is Airbnb, re is Coinbase, tn is LinkedIn. When nothing matches, the answer says so and points at another country, because the catalogue is not the same everywhere, and at ot ("Not on list"), which receives SMS from any sender that is not in the list. A site that has its own code sends to that code, so ot is a fallback and not a wildcard.

deliveredPercent is the delivery rate for that service and country, and null when the pair has no statistics yet, which is the common case. Where there is a number, pick by it instead of by price; where there is not, online shows how big the live pool is, which is the next best signal.

What the server handles for you

Every call carries lang. The API answers without it, but then it prices in another currency, so the server never leaves it out. Text markers that the API returns instead of JSON are checked before anything is parsed, and turned into a sentence an agent can act on: NO_NUMBERS becomes "change country, or set operator to any" rather than a bare token. Polling runs at a sane interval instead of hammering getStatus, and wait_for_code stops at the 20 minute life of a number.

What it is not

Receiving verification codes is the whole job. These numbers do not send SMS, do not take calls, and are not meant for banking, payment or government accounts. An agent that needs a permanent number to hold a conversation wants a carrier product instead.

Config

VariableDefault
SVN_API_KEYrequired
SVN_API_BASEhttps://sms-verification-number.com/stubs/handler_api
SVN_LANGen, sets both the language and the currency of the answers
SVN_POLL_SECONDS4

Related

MIT. The service behind it is commercial.

Files in the repo

Repository payload12 top-level entries
  • assets
  • src
  • .gitignore
  • Dockerfile
  • glama.json
  • LICENSE
  • manifest.json
  • pack.sh
  • package.json
  • README.md
  • server.json
  • tsconfig.json

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More connectors

tirth8205/
code-review-graph

Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.

31k
2akouwu/
reverify

Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.

1.1k

x64dbg-MCP Server is a native MCP (Model Context Protocol) plugin for x64dbg that exposes the debugger's full functionality over HTTP. Connect any MCP-compatible AI assistant and control x64dbg programmatically: set breakpoints, step through code, read memory, dump registers, and more. Built with Zig — zero dependencies, single-binary output, cros

1.9k

Minimal Coding Agent Harness on MCP for ChatGPT, Claude, Hermes, Grok Bot, OpenClaw

4.6k