virtualsms-mcp 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -32
- package/package.json +18 -7
package/README.md
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
# VirtualSMS MCP Server
|
|
1
|
+
# VirtualSMS MCP Server — SMS Verification for AI Agents
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/virtualsms-mcp)
|
|
4
|
+
[](./LICENSE)
|
|
5
|
+
[](https://github.com/virtualsms-io/mcp-server)
|
|
4
6
|
|
|
5
|
-
**
|
|
7
|
+
**VirtualSMS MCP Server** is a [Model Context Protocol](https://modelcontextprotocol.io) server that gives AI agents access to a complete SMS verification API. Get a virtual phone number, receive SMS online, and extract verification codes — all without leaving your AI workflow.
|
|
8
|
+
|
|
9
|
+
Powered by [VirtualSMS.io](https://virtualsms.io) — a phone verification service running on own infrastructure across 200+ countries.
|
|
6
10
|
|
|
7
11
|
---
|
|
8
12
|
|
|
@@ -22,6 +26,35 @@ Get your API key at [virtualsms.io](https://virtualsms.io).
|
|
|
22
26
|
|
|
23
27
|
---
|
|
24
28
|
|
|
29
|
+
## What is VirtualSMS?
|
|
30
|
+
|
|
31
|
+
[VirtualSMS.io](https://virtualsms.io) is a **temporary phone number API** for SMS verification. Unlike resellers that aggregate other providers, VirtualSMS operates its own modem infrastructure — giving you direct access to real SIM cards across 200+ countries.
|
|
32
|
+
|
|
33
|
+
Use it to verify accounts on WhatsApp, Telegram, Google, Instagram, and 500+ other services — programmatically, via API or MCP.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Why VirtualSMS?
|
|
38
|
+
|
|
39
|
+
- **Own infrastructure** — Not a reseller. Real SIM cards on our own hardware.
|
|
40
|
+
- **200+ countries** — Find the cheapest number for any service worldwide.
|
|
41
|
+
- **Real-time delivery** — WebSocket push means your agent gets the code in seconds, not minutes.
|
|
42
|
+
- **Competitive pricing** — Starting from $0.02 per number.
|
|
43
|
+
- **Simple REST + WebSocket API** — Clean, documented, agent-friendly.
|
|
44
|
+
- **11 MCP tools** — Everything from price discovery to one-step code retrieval.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Migrating from SMS-Activate or DaisySMS?
|
|
49
|
+
|
|
50
|
+
If you're moving away from **SMS-Activate** or **DaisySMS** (closing March 2025), VirtualSMS is a straightforward alternative with comparable service coverage, competitive pricing, and a modern API built for programmatic use.
|
|
51
|
+
|
|
52
|
+
Just swap your API key and update the base URL — the concepts (buy number → wait for SMS → get code) are identical.
|
|
53
|
+
|
|
54
|
+
👉 [Sign up at VirtualSMS.io](https://virtualsms.io) and get started in minutes.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
25
58
|
## Configuration
|
|
26
59
|
|
|
27
60
|
### Claude Desktop
|
|
@@ -82,7 +115,7 @@ list_services()
|
|
|
82
115
|
```
|
|
83
116
|
|
|
84
117
|
#### `list_countries`
|
|
85
|
-
Get all available countries for
|
|
118
|
+
Get all available countries for phone verification.
|
|
86
119
|
|
|
87
120
|
```
|
|
88
121
|
list_countries()
|
|
@@ -137,7 +170,7 @@ Optional `status` filter: `"pending"`, `"sms_received"`, `"cancelled"`, `"comple
|
|
|
137
170
|
### Order Management Tools (API key required)
|
|
138
171
|
|
|
139
172
|
#### `buy_number`
|
|
140
|
-
Purchase a virtual phone number.
|
|
173
|
+
Purchase a virtual phone number for a specific service and country.
|
|
141
174
|
|
|
142
175
|
```
|
|
143
176
|
buy_number(service: "telegram", country: "US")
|
|
@@ -145,7 +178,7 @@ buy_number(service: "telegram", country: "US")
|
|
|
145
178
|
```
|
|
146
179
|
|
|
147
180
|
#### `check_sms`
|
|
148
|
-
Check if an SMS code has arrived
|
|
181
|
+
Check if an SMS verification code has arrived.
|
|
149
182
|
|
|
150
183
|
```
|
|
151
184
|
check_sms(order_id: "abc123")
|
|
@@ -190,22 +223,22 @@ On timeout, returns `order_id` for recovery:
|
|
|
190
223
|
|
|
191
224
|
`wait_for_code` uses a two-tier delivery system:
|
|
192
225
|
|
|
193
|
-
1. **WebSocket (instant)** — connects to `wss://virtualsms.io/ws/orders?order_id=xxx` immediately after
|
|
226
|
+
1. **WebSocket (instant)** — connects to `wss://virtualsms.io/ws/orders?order_id=xxx` immediately after purchase. When the SMS arrives, the server pushes it in real-time. Typical delivery: 2–15 seconds.
|
|
194
227
|
|
|
195
|
-
2. **Polling fallback** — if WebSocket fails to connect or disconnects, automatically falls back to polling `GET /api/v1/order/{id}` every 5 seconds.
|
|
228
|
+
2. **Polling fallback** — if WebSocket fails to connect or disconnects, automatically falls back to polling `GET /api/v1/order/{id}` every 5 seconds.
|
|
196
229
|
|
|
197
230
|
The `delivery_method` field in the response tells you which was used.
|
|
198
231
|
|
|
199
232
|
### Architecture
|
|
200
233
|
|
|
201
234
|
```
|
|
202
|
-
AI Agent (Claude/Cursor)
|
|
235
|
+
AI Agent (Claude / Cursor / any MCP client)
|
|
203
236
|
│
|
|
204
237
|
▼ MCP stdio protocol
|
|
205
238
|
VirtualSMS MCP Server (this package)
|
|
206
239
|
│
|
|
207
240
|
├──► REST API: https://virtualsms.io/api/v1/
|
|
208
|
-
│ buy_number, check_sms, cancel_order,
|
|
241
|
+
│ buy_number, check_sms, cancel_order, get_balance ...
|
|
209
242
|
│
|
|
210
243
|
└──► WebSocket: wss://virtualsms.io/ws/orders
|
|
211
244
|
real-time SMS push delivery
|
|
@@ -215,7 +248,7 @@ VirtualSMS MCP Server (this package)
|
|
|
215
248
|
|
|
216
249
|
## Typical Workflows
|
|
217
250
|
|
|
218
|
-
### Simple: Get a Telegram code
|
|
251
|
+
### Simple: Get a Telegram verification code
|
|
219
252
|
```
|
|
220
253
|
wait_for_code(service: "telegram", country: "US")
|
|
221
254
|
```
|
|
@@ -231,35 +264,24 @@ wait_for_code(service: "telegram", country: "PK")
|
|
|
231
264
|
```
|
|
232
265
|
buy_number(service: "google", country: "GB")
|
|
233
266
|
# → order_id: "abc123", phone: "+447911123456"
|
|
234
|
-
|
|
235
|
-
# Use the phone number to trigger the SMS...
|
|
236
|
-
|
|
267
|
+
# Use the number to trigger the SMS, then:
|
|
237
268
|
check_sms(order_id: "abc123")
|
|
238
|
-
#
|
|
239
|
-
cancel_order(order_id: "abc123")
|
|
269
|
+
# or cancel if no longer needed:
|
|
270
|
+
cancel_order(order_id: "abc123")
|
|
240
271
|
```
|
|
241
272
|
|
|
242
273
|
---
|
|
243
274
|
|
|
244
275
|
## Crash Recovery
|
|
245
276
|
|
|
246
|
-
If your
|
|
277
|
+
If your session is interrupted mid-verification:
|
|
247
278
|
|
|
248
|
-
1. **Restart the MCP server**
|
|
249
|
-
2. **List active orders:**
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
```
|
|
253
|
-
3. **Check for codes:**
|
|
254
|
-
```
|
|
255
|
-
check_sms(order_id: "abc123")
|
|
256
|
-
```
|
|
257
|
-
4. **Cancel if no longer needed:**
|
|
258
|
-
```
|
|
259
|
-
cancel_order(order_id: "abc123")
|
|
260
|
-
```
|
|
279
|
+
1. **Restart the MCP server**
|
|
280
|
+
2. **List active orders:** `active_orders(status: "pending")`
|
|
281
|
+
3. **Check for codes:** `check_sms(order_id: "abc123")`
|
|
282
|
+
4. **Cancel if not needed:** `cancel_order(order_id: "abc123")`
|
|
261
283
|
|
|
262
|
-
|
|
284
|
+
`wait_for_code` always returns `order_id` even on timeout — use it to recover.
|
|
263
285
|
|
|
264
286
|
---
|
|
265
287
|
|
|
@@ -267,4 +289,4 @@ The `wait_for_code` tool always returns `order_id` even on timeout — this is y
|
|
|
267
289
|
|
|
268
290
|
MIT — See [LICENSE](./LICENSE)
|
|
269
291
|
|
|
270
|
-
Built with ❤️ by [VirtualSMS.io](https://virtualsms.io)
|
|
292
|
+
Built with ❤️ by [VirtualSMS.io](https://virtualsms.io) — virtual phone numbers for SMS verification, built on own infrastructure.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "virtualsms-mcp",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "MCP server for VirtualSMS — receive SMS verification codes with AI agents",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "MCP server for VirtualSMS — receive SMS verification codes with AI agents. Virtual phone numbers for WhatsApp, Telegram, Google & 200+ services. SMS-Activate & DaisySMS alternative.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"virtualsms-mcp": "dist/index.js"
|
|
@@ -14,22 +14,33 @@
|
|
|
14
14
|
},
|
|
15
15
|
"keywords": [
|
|
16
16
|
"mcp",
|
|
17
|
+
"mcp-server",
|
|
18
|
+
"model-context-protocol",
|
|
17
19
|
"sms",
|
|
18
|
-
"verification",
|
|
20
|
+
"sms-verification",
|
|
21
|
+
"sms-activate",
|
|
19
22
|
"virtual-number",
|
|
23
|
+
"virtual-phone-number",
|
|
20
24
|
"phone-verification",
|
|
21
|
-
"sms
|
|
22
|
-
"
|
|
25
|
+
"receive-sms",
|
|
26
|
+
"ai-agent",
|
|
27
|
+
"claude",
|
|
28
|
+
"cursor",
|
|
29
|
+
"daisysms-alternative",
|
|
30
|
+
"temporary-phone-number",
|
|
31
|
+
"whatsapp-verification",
|
|
32
|
+
"telegram-verification",
|
|
33
|
+
"virtualsms"
|
|
23
34
|
],
|
|
24
35
|
"author": "VirtualSMS",
|
|
25
36
|
"license": "MIT",
|
|
26
37
|
"homepage": "https://virtualsms.io",
|
|
27
38
|
"repository": {
|
|
28
39
|
"type": "git",
|
|
29
|
-
"url": "https://github.com/virtualsms/mcp-server"
|
|
40
|
+
"url": "git+https://github.com/virtualsms-io/mcp-server.git"
|
|
30
41
|
},
|
|
31
42
|
"bugs": {
|
|
32
|
-
"url": "https://github.com/virtualsms/mcp-server/issues"
|
|
43
|
+
"url": "https://github.com/virtualsms-io/mcp-server/issues"
|
|
33
44
|
},
|
|
34
45
|
"engines": {
|
|
35
46
|
"node": ">=18"
|