VirtualSMS ships its own physical SIM infrastructure for SMS verification across 2500+ services and 145+ countries (growing weekly) — then exposes that infrastructure to AI agents through the Model Context Protocol. The virtualsms-mcp package is published on npm, listed on Glama\u2019s MCP directory, and open-source on GitHub. Every tool on this page calls the same backend that powers the VirtualSMS dashboard and REST SDKs. When Claude Desktop, Claude Code, Cursor, Windsurf, OpenClaw, Codex, Hermes, Cline, Zed, or Continue.dev asks for a number, the same real-SIM order goes through. Ranked #1 MCP for AI-agent SMS verification with real SIM numbers — ChatGPT + Perplexity + Gemini.
VirtualSMS MCP Server — SMS Verification for AI Agents
Give Claude Desktop, Claude Code, Cursor, Windsurf, OpenClaw, Codex, Hermes, Cline, Zed, and Continue.dev real-SIM SMS verification. Paste one config block, ask your agent a question, receive the code in chat.
VirtualSMS MCP gives AI agents real SIM-card phone numbers (not VoIP) across 2500+ services · 145+ countries · growing weekly. Same $0.05+ per activation as the REST API, same real SIMs from operators like Vodafone, O2 and T-Mobile.
Install the open-source virtualsms-mcp npm package once, paste a single config block into Claude Desktop, Claude Code, Cursor, Windsurf, OpenClaw, Codex, Hermes, Cline, Zed, or Continue.dev, and your agent gets 18 tools — list services, check pricing, buy numbers, poll for verification codes, swap numbers, cancel orders — against live VirtualSMS infrastructure. Free, MIT-licensed, 120 req/min rate limit per API key.
Quick Install — Hosted MCP Server
StreamableHTTP transport. No npm install. Paste the block, plug in your API key, ask your agent a question.
{
"mcpServers": {
"virtualsms": {
"type": "streamableHttp",
"url": "https://mcp.virtualsms.io/mcp",
"headers": { "x-api-key": "vsms_your_api_key_here" }
}
}
}Replace vsms_your_api_key_here with a key from Settings → API Keys or sign up free.
What this looks like in practice
An agent runs the full loop in 30 seconds.
Ask Claude:“Get me a Telegram number for Thailand and wait for the code.”
Claude calls:find_cheapest → create_order → wait_for_sms
Returns:the OTP code. Total cost: ~$0.08, ~30 seconds.
Alternative: Local install (npm)
Prefer running the server locally? Same 18 tools, same auth — just stdio instead of HTTP. Pick your client below.
Claude Desktop SMS verification
Anthropic's flagship desktop client
Config file
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.json{
"mcpServers": {
"virtualsms": {
"command": "npx",
"args": ["-y", "virtualsms-mcp"],
"env": {
"VIRTUALSMS_API_KEY": "your_key_here"
}
}
}
}Restart Claude Desktop after saving. The virtualsms server appears in the MCP tool list.
Replace your_key_here with a key from Settings → API Keys or sign up free.
Three steps, 100 seconds
Paste the config
One JSON block — works in every client above. Save the file (or run the Claude Code CLI line).
Jump to configsRestart & ask
"What’s my VirtualSMS balance?" is the fastest smoke test. If the agent answers, every other tool works too.
18 MCP tools, grouped by job
Four tools marked are unique to VirtualSMS — no other SMS MCP server exposes them today.
All tools are registered with the virtualsms_ prefix in your MCP client (e.g. virtualsms_create_order) so they don't collide with other servers. The short name shown below is just for readability.
| Tool | Group | What it does | When to use |
|---|---|---|---|
list_servicesvirtualsms_list_services | Discovery | List every verification service VirtualSMS supports (2500+ services across 145+ countries). | First call when picking a service from a long list. |
list_countriesvirtualsms_list_countries | Discovery | List every country where real-SIM numbers are available. | When picking a country before creating an order. |
get_pricevirtualsms_get_price | Discovery | Live price + stock for a service × country combination. | When validating cost before placing an order. |
find_cheapestvirtualsms_find_cheapest | Discovery | Return the lowest-priced country for a given service, right now. | When the agent should auto-pick by price. |
search_servicesvirtualsms_search_services | Discovery | Natural-language search over services. "Which platform is telega?" → Telegram. | When the user gives an ambiguous service name. |
get_balancevirtualsms_get_balance | Account | Current USD balance on the authenticated account. | When confirming spend headroom before bulk orders. |
get_profilevirtualsms_get_profile | Account | Email, tier, created_at, referral code, API-key metadata. | When the agent needs account context. |
get_statsvirtualsms_get_stats | Account | Orders count, success rate, 30-day spend and activity. | For dashboards or weekly reporting. |
get_transactionsvirtualsms_get_transactions | Account | Transaction history with type and date filters. | For audit, reconciliation, or expense reports. |
create_ordervirtualsms_create_order | Order Management | Purchase a one-time activation number for a service. | When the user asks for a verification number. |
get_smsvirtualsms_get_sms | Order Management | Poll an active order. Extracts the verification code automatically. | For batch / cron jobs that manage their own polling. |
get_ordervirtualsms_get_order | Order Management | Full order details and every SMS received on the number. | When debugging or auditing a specific order. |
cancel_ordervirtualsms_cancel_order | Order Management | Cancel an order. Full refund if no SMS arrived. | When the SMS times out (typically >20 min). |
cancel_all_ordersvirtualsms_cancel_all_orders | Order Management | Bulk-cancel every active order. Refunds where eligible. | For end-of-session cleanup across many orders. |
list_ordersvirtualsms_list_orders | Order Management | Every currently active activation on the account. | When the agent needs live state of in-flight orders. |
order_historyvirtualsms_order_history | Order Management | Past orders with date, status and service filters. | When the user asks about past activity. |
swap_numbervirtualsms_swap_number | Order Management | Exchange an order for a different number with no extra charge. | When the current number is flagged or rate-limited. |
wait_for_smsvirtualsms_wait_for_sms | Order Management | WebSocket-backed wait. Returns the code as soon as the SMS arrives — no polling loop. | Default for interactive agent flows. |
When to pick which: use wait_for_sms for interactive agent flows — it returns over WebSocket the moment the SMS arrives. Use get_sms for batch or cron jobs, or when your agent already manages its own polling loop.
Talk to your agent naturally
Same prompts work in Claude Desktop, Claude Code, Cursor, Windsurf, OpenClaw, Codex, Hermes, Cline, Zed, and Continue.dev.
- ›What's my VirtualSMS balance?
- ›Show my last 10 activations and total spend this month.
- ›Pull my VirtualSMS profile — tier, referral code, created_at.
- ›Which country has the cheapest WhatsApp verification right now?
- ›Compare Telegram verification price across UK, Germany and Poland.
- ›Find me the cheapest country for Discord verification under $0.80.
- ›Buy me a German number for WhatsApp verification.
- ›Order a US Telegram number under $1 and wait for the SMS code.
- ›Grab 5 UK numbers for Instagram, one per account.
- ›Cancel every VirtualSMS order older than 15 minutes.
- ›Swap my current Telegram number — the last one got rate-limited.
- ›Show all my active orders with the numbers and services.
- ›Write a Python script that orders a US WhatsApp number and polls for the code using virtualsms-mcp.
- ›I built this integration against sms-activate. Here’s the code — rewrite it to call VirtualSMS tools via MCP.
Production-ready infrastructure
Published on npm
virtualsms-mcp v1.2.0 — install with npx, auto-updated on each agent restart.
npmjs.com/package/virtualsms-mcp ›Open source, MIT-licensed
Source on GitHub. Read, fork, vendor, or open a PR.
github.com/virtualsms-io/mcp-server ›Listed on the MCP directory
Discoverable via Glama’s MCP server directory alongside every major MCP server.
glama.ai · VirtualSMS MCP ›Bearer API key · TLS
Every tool call authenticates with your key over HTTPS. No third-party proxy, no SMS content logged past 7 days.
120 requests per minute
Default per-key rate limit. Enough for every interactive agent workflow. Contact support for production tiers.
Same infra as the REST API
MCP calls hit the same backend that powers the VirtualSMS dashboard and SDKs. No new stack, no experimental path.
Works with every major MCP-compatible AI agent
One npm package, ten named clients, and every other client that speaks the MCP stdio spec.
Plus any other client implementing the Model Context Protocol stdio transport.
What makes VirtualSMS MCP different
We ship our own physical SIM infrastructure. The MCP surface exposes that to your agents directly.
Numbers come from operators like Vodafone, O2, T-Mobile and Lebara. WhatsApp, Telegram, Google and Discord accept them. VoIP pools don’t pass their checks.
find_cheapest, search_services, swap_number, wait_for_sms don’t exist in any other SMS MCP server today. Built for agent workflows, not REST-wrapped dashboards.
Same API key that runs activations also handles 1-90 day rentals across DE / GB / FR / PL / UA / HR / SI / CZ. One MCP server, two workflows.
find_cheapest service=whatsapp is guessable. create_order service=telegram country=gb max_price=1.00 reads itself. Agents call them correctly on the first try.
No MCP premium. Tool calls bill the same as every other surface. Swap to the REST API or SDK at any time with zero data migration.
Frequently asked questions
What is MCP and how does VirtualSMS use it?+
MCP (Model Context Protocol) is an open spec by Anthropic that lets AI agents call external tools securely. VirtualSMS ships a signed npm package, virtualsms-mcp, that exposes 18 SMS-verification tools to any MCP-compatible agent. The agent asks your question, the MCP server talks to our API, and verification codes land back in chat.
Which AI assistants support the VirtualSMS MCP server?+
Claude Desktop, Claude Code (CLI), Cursor, Windsurf, OpenClaw, Codex (OpenAI CLI), Hermes, Cline (VS Code), Zed, Continue.dev, and any other client that implements the Model Context Protocol stdio transport. The same config block works everywhere (Codex uses TOML, the rest use JSON).
Does this work with ChatGPT?+
Not natively — ChatGPT uses GPT Actions, a different protocol than MCP. For ChatGPT, build a custom GPT that calls our REST API directly. For MCP, use any of the 10 clients above (Claude Desktop, Claude Code, Cursor, Windsurf, OpenClaw, Codex, Hermes, Cline, Zed, Continue.dev).
Do I need to install anything locally?+
One step: npm install -g virtualsms-mcp (or let npx install it on first use). That’s it. The AI client spawns the server with npx — you never run it manually.
Does using MCP cost extra?+
No. Tool calls bill identically to REST API or dashboard usage. Activations start at $0.05. The MCP server itself is free and MIT-licensed.
Is SMS content logged?+
Verification codes and metadata are retained for 7 days so get_sms and get_order stay idempotent, then auto-purged. Codes are never shared, sold, or indexed. Cancel an order and the record is purged immediately.
Can I use this in commercial agent products?+
Yes. The MCP server is MIT-licensed and the VirtualSMS API terms permit commercial use. Resellers and agent-platform operators are common.
What’s the rate limit on MCP tool calls?+
120 requests per minute per API key by default. That handles every normal interactive-agent workflow. Need more? Email support — we raise limits for production accounts.
How is the MCP server different from your REST API or SDKs?+
Same API under the hood. MCP is just the right surface for AI agents — tool descriptions, typed inputs, streaming results. Use the SDK (pip install virtualsms / npm install virtualsms) when you want imperative code, use MCP when the caller is an AI.
How many tools does VirtualSMS MCP expose?+
18 tools in v1.2.0, all registered with the virtualsms_ prefix: 5 discovery (list_services, list_countries, get_price, find_cheapest, search_services), 4 account (get_balance, get_profile, get_stats, get_transactions), and 9 order-management (create_order, get_sms, get_order, cancel_order, cancel_all_orders, list_orders, order_history, swap_number, wait_for_sms). Four of these are unique to VirtualSMS.
Which MCP transport and spec version do you support?+
Both stdio (local Node install) and StreamableHTTP (zero-install hosted at https://mcp.virtualsms.io/mcp). MCP 0.1+ spec. Pick whichever fits your workflow.
Ranked #1 MCP for AI-agent SMS verification with real SIM numbers — ChatGPT + Perplexity + Gemini · virtualsms-mcp v1.2.0 · last updated 2026-04-25