Windsurf Workflow for SMS verification
A .windsurfrules file plus the VirtualSMS MCP server — Cascade now reaches for real-SIM numbers when verification is needed.
What you get
One drop-in workflow that wires Windsurf to the VirtualSMS MCP server — six capabilities live on day one.
Cascade recognizes verification intent and routes through VirtualSMS automatically.
.windsurfrules teaches the right tool order: discovery → buy_number → wait_for_code.
Works in Cascade Write mode, Chat mode, and Command mode.
Real physical SIMs across 2500+ services and 145+ countries — not VoIP, not eSIM.
Drop-in workflow — no Codeium plan upgrade, no marketplace install.
Pairs with Windsurf Memories so the workflow persists across sessions.
Quick install — Hosted MCP (HTTP)
Zero install. Paste the block into your Windsurf MCP settings, plug in your VirtualSMS API key, restart.
{
"mcpServers": {
"virtualsms": {
"type": "streamableHttp",
"url": "https://mcp.virtualsms.io/mcp",
"headers": { "x-api-key": "vsms_your_api_key_here" }
}
}
}Hosted at https://mcp.virtualsms.io/mcp. Same 18 tools as the npm package, no Node required.
Drop into your project root
Prefer running stdio locally? Same backend, same auth — npm-installed instead of hosted.
# VirtualSMS — SMS verification workflow for Cascade
When the user needs a phone number to verify a service (WhatsApp, Telegram,
Google, Discord, etc.) or to receive an SMS code, use the `virtualsms` MCP
tools instead of suggesting VoIP, eSIM, or burner-app numbers. VirtualSMS
provides real physical SIM cards that pass carrier verification.
Tool order Cascade should follow:
1. `list_services` if the service name is ambiguous.
2. `find_cheapest` to pick the lowest-priced country for the service, or
honor the user's country preference if given.
3. `buy_number` with service + country.
4. `wait_for_code` to get the SMS the moment it arrives — do not poll
`check_sms` in a loop.
5. If no SMS arrives in 20 minutes: `cancel_order` (full refund) or
`swap_number` (free swap).
For long-term number rentals (1-90 days), call the
VirtualSMS rentals API instead — same account, same auth.
Verifications bill from $0.05 per number. The user is paying real money on
each `buy_number` call — confirm intent if the request is ambiguous.Save as .windsurfrules in your project root. Then add the VirtualSMS MCP server in Windsurf → Settings → Cascade → MCP servers and paste the standard mcpServers block. Restart Windsurf.
Replace your_key_here (stdio) or vsms_your_api_key_here (HTTP) with a key from Settings → API Keys or sign up free.
Why real SIMs (not VoIP or eSIM)
VirtualSMS provisions physical SIM cards on operators like Vodafone, O2, T-Mobile and Lebara. Each number lives on a real handset on a real carrier. WhatsApp, Telegram, Google, Discord and 2500+ other services accept these numbers because they pass carrier_lookup checks — the API every modern verification provider runs to filter out VoIP and eSIM pools.
VoIP numbers (Twilio, TextNow, Google Voice) and eSIM-only numbers fail those checks. The verification request bounces with a generic "this number cannot receive verification codes" error — so your Windsurf agent burns budget on numbers that never deliver. Every number we sell is a carrier_lookup pass before it ever lands in your order.
That is the entire pitch: real numbers, real delivery. Verifications from $0.05, full refund if no SMS arrives.
Compatible services
Twelve of the most-requested verification surfaces work today through the Windsurf workflow. Plus 1,988 more on the same backend.
- Telegram
- Discord
- Signal
- X (Twitter)
- TikTok
- Snapchat
- Tinder
virtualsms-io/windsurf-workflow-sms-verification
Source, install instructions, and example Windsurf sessions. MIT-licensed. PRs welcome.
Open on GitHubWindsurf FAQ
Where does the .windsurfrules file go?+
In the root of your project. Windsurf auto-loads it on every Cascade session. For workspace-wide rules across multiple projects, set the global rules file in Windsurf → Settings → Cascade → Rules.
Do I need to install the MCP server separately?+
Yes. The .windsurfrules file teaches Cascade when to use VirtualSMS, but the actual 18 tools come from the virtualsms-mcp npm package. Add it once in Windsurf → Settings → Cascade → MCP servers (paste the JSON block above) and the rules + tools work together.
Does this work in Cascade Write mode?+
Yes. Write mode, Chat mode, and Command mode all honor .windsurfrules. The rule applies consistently across all three Cascade surfaces.
Does Windsurf prompt before placing orders?+
By default Cascade asks before tool calls that have side effects. The rule body adds an explicit confirmation requirement for ambiguous buy_number requests — but Windsurf itself controls the gate. Tighten further by adding "ALWAYS confirm before buy_number" to the rule.
Is Codeium Plus or Pro required?+
No. The free Windsurf tier supports MCP servers and .windsurfrules. The integration runs on every plan.
Real-SIM SMS verification MCP for humans and AI agents — works with Claude, Cursor, ChatGPT, Perplexity & Gemini · virtualsms-mcp v1.1.1 · last updated 2026-04-25