VirtualSMS MCP Server
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**Quick links:** Quickstart · Why VirtualSMS · What you can build · Tools · Questions · Examples · Changelog · Security policy · Status
VirtualSMS is an account verification platform for developers and AI agents. It combines one-time SMS verification, dedicated number rentals, matching-country proxies and private cloud browser sessions behind one API, one MCP server and one prepaid balance.
**Infrastructure for AI agents that need real-world phone verification.**
The numbers are carrier-issued mobile numbers, backed by real physical SIM cards on carrier networks, not VoIP, which is why they pass the line-type checks that reject VoIP numbers at signup.
From one prepaid balance you can:
- receive one-time SMS codes from $0.05
- rent dedicated numbers from 1 to 30 days
- buy matching-country residential, mobile and datacenter proxies
- launch private cloud browser sessions that work alongside your number and proxy (beta)
All four work together from one prepaid balance, one API and one dashboard. Use only the pieces you need, or combine them into a single verification workflow.
Most providers solve one piece of the verification workflow. VirtualSMS combines numbers, rentals, proxies and cloud browser sessions behind one API, SDKs and an MCP server, so you use only the pieces you need or combine them into one workflow.
VirtualSMS can be used by individuals manually, integrated into applications with SDKs and APIs, or driven by AI agents through MCP. Use the platform through a REST API, official SDKs for Node, Python, PHP, Ruby and .NET, a hosted MCP server, or automation tools like n8n.
This server exposes that platform to any MCP client. Built for AI agents. Designed for AI-agent workflows. Works with Claude Code, Claude Desktop, Cursor, Windsurf and every MCP-compatible client, with no wrapper code to write.
---
Quickstart
Paste this into your MCP client's config. Nothing to install, no Node.js required on the client:
Get an API key at virtualsms.io. Then ask your agent:
> "Buy me a Telegram number in the cheapest country and wait for the code."
Prefer to run it locally over stdio instead:
---
Why VirtualSMS
Verifying an account should not mean stitching together numbers from one provider, proxies from another, and browser sessions from a third: multiple accounts, multiple balances and APIs, and support spread across vendors. VirtualSMS brings those pieces together behind one balance, one API and one MCP server.
VirtualSMS combines all three under one account, and gives you one way to drive them:
- **Carrier-issued mobile numbers.** Backed by real physical SIM cards, not VoIP, so they resolve as mobile at signup.
- **Matching-country proxies.** Residential, mobile and datacenter pools, so the number and the IP agree.
- **Private cloud browser sessions.** Beta.
- **REST API.** Documented at virtualsms.io/docs.
- **Hosted MCP server.** This repo, live at https://mcp.virtualsms.io/mcp.
- **One prepaid balance.** Verification, rentals and proxies all draw from it.
Everything below expands on those six.
---
What you can build
Concrete jobs this server does today. Every one is a plain-English request your agent turns into tool calls:
| You want to | Ask your agent | Tools it uses |
|---|---|---|
| **Verify a WhatsApp account from Claude Code** | "Get me a WhatsApp code on a UK number" | create_order → wait_for_sms |
| **Create a Telegram account from Cursor** | "Buy a Telegram number in the cheapest country and wait for the code" | find_cheapest → create_order → wait_for_sms |
| **Retrieve verification codes automatically** | "Wait for the code and paste it into the form" | wait_for_sms |
| **Test OTP flows during QA** | "Run the signup flow ten times and report which codes landed" | create_order → wait_for_sms → cancel_order |
| **Provision temporary numbers during CI** | "Give the test suite a fresh number, then release it" | create_order → get_sms → cancel_order |
| **Keep a number for a week** | "Rent me a British number for 7 days" | rentals_available → create_rental |
| **Make the number and the IP agree** | "Buy a UK proxy to match my UK number" | list_proxy_catalog → buy_proxy → generate_proxy_endpoint |
| **Screen a number before you trust it** | "Is this number VoIP?" | check_number (no API key required) |
| **Recover a number that went quiet** | "That number never got the code, swap it" | swap_number |
Runnable versions of the first two live in examples/.
---
Client setup