
Sms
io.github.virtualsms-io由 GitHub 帳號 virtualsms-io 發布v1.3.3更新於 Oct 24, 2026
Real SIM numbers for AI agents: SMS verification, rentals, proxies, cloud browser, x402 deposits.
概覽
VirtualSMS 讓助理用同一筆預付餘額購買真實 SIM 手機號碼、等待簡訊驗證碼、租用號碼,並購買同國家代理。
- 可以做什麼
- 查詢並比價驗證服務與國家,包括最便宜國家查找與自然語言服務搜尋,並可在不需金鑰的情況下檢查號碼線路類型。為指定服務與國家購買號碼,接著輪詢或阻塞等待簡訊驗證碼送達,並可檢視、列出、換號或取消訂單並取得退款。依天數租用專用號碼,分為完整權限與服務鎖定兩種方案,查詢庫存與價格並續租。瀏覽代理目錄,購買住宅、行動或資料中心代理並產生代理端點。檢視帳戶餘額、個人資料、統計與交易紀錄;啟用後可取得額外的工作階段工具。
- 適用情境
- 適用於助理需要完成要求手機號碼的註冊或登入、以新號碼測試 OTP 流程,或需要號碼與同國家 IP 來自同一處的情境。不適用於發送簡訊、長期企業號碼或移入既有號碼。
- 執行需求
- 需要 VirtualSMS 帳戶與 API 金鑰:託管端點透過 x-api-key 標頭提供,本機 npm 套件(以 npx 執行,需 Node.js)透過 VIRTUALSMS_API_KEY 環境變數提供。需要能連線 VirtualSMS API 與 WebSocket 服務的網路。選用變數可開啟額外的工作階段與早期發布工具。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Sms,將其新增到工作區。
- 連接 x-api-key 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
- 為需要使用其工具的對話啟用該服務。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
交給代理程式安裝
把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。
閱讀 https://sourceweft.com/mcp/io.github.virtualsms-io%2Fsms/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。其他 MCP 客戶端
把它新增到你客戶端的 mcpServers 設定中。
{
"mcpServers": {
"sms": {
"type": "http",
"url": "https://mcp.virtualsms.io/mcp",
"headers": {
"x-api-key": "<YOUR_API_KEY>"
}
}
}
}README
VirtualSMS MCP Server
[CI] [npm version] [smithery badge] [License: MIT] [GitHub Stars]
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:
Runnable versions of the first two live in examples/.
Client setup
Every client runs the same npx virtualsms-mcp stdio command. Only the file location and format differ. The hosted config above works anywhere streamableHttp is supported and is the recommended path.
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Quit and reopen Claude Desktop. A drop-in config plus a worked transcript lives in examples/03-claude-desktop-config/.
Claude Code, Cursor, Windsurf, OpenClaw, Codex, Hermes, Cline, Zed, Continue.dev
Claude Code (CLI)
Cursor
Edit ~/.cursor/mcp.json:
Windsurf
Edit ~/.codeium/windsurf/mcp_config.json:
OpenClaw
Edit ~/.openclaw/mcp.json:
Codex (OpenAI Codex CLI)
Edit ~/.codex/config.toml:
Hermes
Edit your Hermes MCP config:
Cline (VS Code)
Open the Cline MCP settings panel and add:
Zed
Edit ~/.config/zed/settings.json:
Continue.dev
Edit ~/.continue/config.yaml:
Does this work with ChatGPT?
Yes, via ChatGPT's Developer Mode. Open Settings, turn on Developer mode, then add https://mcp.virtualsms.io/mcp as a custom connector (Plus, Pro, Business, Enterprise and Edu plans; not available on the free tier). Setup is a URL paste rather than a config file, so it differs from the client setups above. ChatGPT only connects to remote MCP servers over SSE or streaming HTTP, so use the hosted endpoint, not the local stdio command. The REST API is still there if you would rather build a custom GPT or Action instead.
Configuration
Tools
40 tools by default. Set VIRTUALSMS_ENABLE_SESSIONS=1 to expose 3 more.
Tool names are shown below without the virtualsms_ prefix for readability. The real wire names are prefixed: virtualsms_create_order, virtualsms_get_sms, and so on.
Activation and account (18 tools)
The core SMS verification surface: discover a service, price it, buy a number, get the code.
get_smsvswait_for_sms:wait_for_smsis the recommended default for interactive agent workflows. It blocks and returns the moment the SMS arrives over WebSocket. Useget_smsfor batch jobs, cron-driven polling, or when you already manage your own polling loop.
wait_for_smstakes anorder_id, not a service and country. Callcreate_orderfirst, then pass the returnedorder_id. That is the two-step buy-and-wait flow.
Rentals (9 tools)
Keep a number by the day instead of buying a single verification. Two tiers:
- Full Access: local SIM inventory, for a whole number that works across any service. Every country in stock today lists 1, 7 and 30 days, at prices that vary per country. Durations and prices are not hardcoded here on purpose: call
rentals_availablefor the live list per country and treat that as authoritative. - Platform: sourced via our global supplier network, locked to one chosen service, durations of 1, 3 or 7 days. Call
rentals_pricefor the exact retail price of a (service, country, duration) combo.
Stock, durations and pricing all differ per tier and per country, so call rentals_available before committing to either. An active rental can be extended with extend_rental at the current catalog price, in the same durations its tier allows.
Both tiers carry the same refund terms: cancel for a full refund within 20 minutes of purchase and before the first SMS arrives. Platform cancels are additionally subject to a 2 minute minimum hold, so a cancel inside the first 2 minutes is rejected and has to be retried.
Proxy (10 tools)
Matching-country proxies, so the number and the IP agree. Three pools: residential, mobile and datacenter. Buy traffic by the GB, then generate a connection string.
Other (3 tools)
Session tools (3 more, off by default)
Beta, invite-only. The browser stack is early. It works, but the shape of these tools can still change and there is no stability guarantee yet. Join https://t.me/VirtualSMS_io for beta access and updates.
Served only when VIRTUALSMS_ENABLE_SESSIONS is set to 1, true or yes. Not exposed on the default surface.
Typical workflows
Get a verification code
Find the cheapest country first
Number not receiving? Swap it
Rent a number for a month
Stock is per country and per tier, so discover first and rent second. rentals_available(tier: "platform") covers a different, service-locked catalogue.
Pair a number with a matching-country proxy
Questions
What is account verification infrastructure?
Account verification infrastructure is the stack that gets a real account through a signup flow that demands a phone number. It has five layers, and a gap in any one of them fails the whole chain:
- Numbers. A carrier-issued mobile line, because the line type gets checked.
- SMS. The verification code, delivered to that number and readable by software rather than by a human holding a handset.
- Proxy. An IP in the same country as the number, so the two agree.
- Browser. A clean environment to drive the signup itself.
- Automation. An API or an agent that runs the chain end to end, unattended.
Most providers sell the first two layers and leave you to source the rest, which is exactly where the number, the IP and the browser stop telling the same story. VirtualSMS provides the infrastructure behind all five.
VirtualSMS is an account verification platform for individuals, 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.
What is an MCP server for SMS verification?
MCP (Model Context Protocol) is an open standard that lets an AI client call external tools. An MCP server for SMS verification exposes phone-number and verification-code operations as tools an agent can call directly, so the agent buys the number, waits for the code and reads it back without any glue code from you. This repo is that server for VirtualSMS: 40 tools covering verification, rentals and proxies. If you are not driving an agent at all, the same operations are available as a plain REST verification API.
When should I use this?
- Your AI agent needs to sign in to or register an account that demands a phone number.
- You are testing an OTP or signup flow and want fresh numbers on demand instead of a drawer of test SIMs.
- You need a verification code retrieved automatically, in CI or in an unattended job.
- You need a number and a matching-country IP that agree with each other.
- You are driving signup automation in a browser and would rather the number, the IP and the browser came from one place than three.
- You need a temporary phone number for one code, or a dedicated one you keep for up to 30 days.
- You want per-code pricing from $0.05 with no subscription and no monthly number rental.
When should I NOT use this?
Honest answers, so you do not waste an afternoon:
- You need to send SMS. This platform receives; it does not send. Use a messaging provider such as Twilio.
- You need a permanent number for your business. Verification numbers are temporary by design, and rentals run in days, not years. Buy a real line from a carrier.
- You need codes on a number you already own. There is no port-in. The numbers come from our inventory.
- You are running A2P marketing campaigns. Wrong tool entirely.
- You are trying to evade a platform's terms of service. Whether your use complies with the terms of the service you verify against is your responsibility, not ours.
Can Claude or Cursor receive SMS verification codes?
Yes, through this server. Claude Code, Claude Desktop, Cursor, Windsurf, Cline, Zed, Continue.dev, Codex, OpenClaw and Hermes are all MCP clients, and each one is a config paste away (see Client setup). Once installed, "buy a Telegram number and wait for the code" is a request the agent can carry out end to end. ChatGPT can reach it too, through Developer Mode custom connectors (see Does this work with ChatGPT?), or through the REST API if you would rather not enable Developer Mode.
How do AI agents receive OTP codes automatically?
Two tool calls. create_order buys a number for a given service and country and returns an order_id. wait_for_sms then blocks on that order_id and returns the moment the code arrives, pushed over WebSocket, typically in 2 to 15 seconds. The agent never polls, never sleeps in a loop, and never needs a human to read a phone. If you would rather drive your own loop, get_sms polls a single order instead.
How is this different from Twilio?
Twilio is a full communications platform: send and receive SMS and voice, long-lived numbers, A2P campaigns, the lot. VirtualSMS does one job, which is receiving verification codes on demand. The practical differences:
- Line type. Twilio numbers are VoIP. Many services reject VoIP numbers at signup. VirtualSMS numbers are real physical SIM cards on carrier networks, so they resolve as mobile.
- Pricing shape. Twilio bills you for a number every month whether you use it or not. VirtualSMS bills per code from $0.05, with no subscription.
- Direction. Twilio sends and receives. This receives.
If you need to send messages, use Twilio. If you need to receive a verification code, this is purpose-built for it.
Why real physical SIM cards instead of VoIP?
Verification systems check the line type of the number you give them. VoIP numbers are cheap and disposable at scale, so they correlate with fraud, and a large share of services reject them outright at signup. Real physical SIM cards sit on carrier networks and resolve as mobile, which is exactly what those checks are looking for: a non-VoIP number that behaves like a real handset.
You do not have to take that on faith. check_number runs a carrier and line-type lookup on any E.164 number, needs no API key, and will tell you whether a number reads as mobile, landline or VoIP.
Alternatives and comparisons
Developers searching for textverified mcp, sms-activate mcp, 5sim mcp, daisysms mcp or smspool mcp are usually asking one question: which SMS verification provider can an AI agent drive natively? This section answers that without a scoreboard.
VirtualSMS publishes this MCP server, so any MCP client calls it directly with no wrapper code: 40 tools, 2500+ services, 145+ countries, from $0.05 per code, on real physical SIM cards, plus number rentals and matching-country proxies from the same balance.
SMS-Activate shut down in December 2025. If your integration pointed there, it is gone, and the migration is a new API key and a new base URL rather than a rewrite: the shape of the job, buy a number then read the code, is the same here.
TextVerified, 5SIM, DaisySMS and SMSPool are all active SMS verification providers, each with its own API, pricing, coverage and terms. Check their current documentation for what they offer today.
We deliberately do not publish a comparison table of competitors' prices, service counts or coverage. Those numbers move week to week, we have no privileged view into anyone else's inventory, and a stale table dressed up as research is worse than no table at all. The VirtualSMS numbers above are ours and we stand behind them. Compare them against whatever you are using now.
How it works
WebSocket and polling
wait_for_sms uses a two-tier delivery system:
- WebSocket, instant. Connects to
wss://virtualsms.io/ws/orders?order_id=xxx&api_key=your_key. When the SMS arrives the server pushes it in real time. Typical delivery: 2 to 15 seconds. - Polling fallback. If the WebSocket fails to connect or drops, the tool falls back to polling every 5 seconds for the remaining timeout.
The delivery_method field in the response tells you which path was used: websocket, polling, or instant when the code had already landed before you called.
This server pushes over a held-open WebSocket; it never calls you back. If you would rather VirtualSMS POST events to a URL you own, the platform runs a separate webhook subscription system, configured from the dashboard and driven by the REST API rather than by this MCP server.
Architecture
Crash recovery
If your session is interrupted mid-verification:
- Restart the MCP server.
- List active orders:
list_orders(status: "pending") - Check for codes:
get_sms(order_id: "abc123") - Cancel if not needed:
cancel_order(order_id: "abc123")
wait_for_sms always returns order_id, even on timeout, so you can recover.
Hosted endpoint and status
- Hosted MCP endpoint:
https://mcp.virtualsms.io/mcp. TLS-only StreamableHTTP, fronted by Cloudflare. - Platform status and uptime: virtualsms.io/status, polled live: website and dashboard, SMS gateway, REST API, Telegram bot and database. The hosted MCP endpoint runs as a separate service and is not yet a row on that page.
- Target SLA: 99.9% on the hosted MCP path. A target we hold ourselves to rather than a contractual guarantee, and one the status page above does not yet measure.
- Coverage: 145+ countries online, 2500+ services indexed.
- Data retention: SMS message bodies are retained 7 days, then permanently deleted. Order metadata (phone number, service, country, timestamps) is retained for the lifetime of your account. See SECURITY.md for full details.
- Vulnerability disclosure: email
[email protected]or open a private security advisory.
Examples
Three runnable examples are checked into this repo. Each is node run.mjs away once VIRTUALSMS_API_KEY is set.
examples/01-quick-balance-check/: 5-second hosted MCP smoke test (get_balance).examples/02-buy-sms-and-wait-for-code/: full verification flow,find_cheapest→create_order→wait_for_sms→ cancel-on-timeout. The canonical pattern for AI agents.examples/03-claude-desktop-config/: drop-in Claude Desktop config plus a transcript of "ask Claude what's my balance" over StreamableHTTP.
SDKs and tools
The same platform, from whatever you already write in:
Build and contribute
Two transports share one tool table: src/index.ts (stdio) and src/http-server.ts (StreamableHTTP). Tool definitions and handlers live in src/tools.ts. If you add a tool, wire it into both transports. src/__tests__/transport-parity.test.ts fails the build if you forget, and src/__tests__/docs-tool-names.test.ts fails if the docs name a tool that does not exist.
Issues and pull requests: github.com/virtualsms-io/mcp-server.
Release notes for v1.0.0 to v1.3.1 are in CHANGELOG.md.
Security
API keys are passed via the x-api-key header (hosted) or the VIRTUALSMS_API_KEY environment variable (local stdio), and are rotatable from your account at virtualsms.io. Full policy, retention detail and disclosure process: SECURITY.md.
Report vulnerabilities to [email protected].
License
MIT. See LICENSE.
Built by VirtualSMS.io. Account verification for developers and AI agents, on real physical SIM cards: 2500+ services · 145+ countries · from $0.05 per code.
來源:README.md,提交 4878ead
工具
0版本歷史
2- v1.3.3最新Sep 23, 2026
- v1.3.2Sep 16, 2026
評分
已滿足適用檢查項的 85%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通必需25 分
- 已宣告認證方式必需10 分
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分