[VoidMob MCP: SMS codes, mobile proxies and eSIMs. One URL for your AI agent: mcp.voidmob.com/mcp]
[npm version]
[MIT license]
[Node version]
VoidMob MCP
Real mobile infrastructure for AI agents: US non-VoIP numbers for SMS verification codes, private dedicated numbers, 4G/5G mobile proxies and travel eSIMs. 28 tools, paid from a prepaid USD balance, with permission levels and optional spending limits that VoidMob enforces on every purchase.
Contents: Quick start · What your agent can do · Connect with one URL · Run locally · How money works · Owner controls · Tools · Agent skill · Configuration
Quick start
Fund the balance with crypto at dashboard.voidmob.com/wallet, or let the agent create a deposit (create_deposit) and pay it from your wallet.
What your agent can do
The agent quotes every purchase and asks before buying, unless you turned on buy without asking within a daily limit.
Connect with one URL
Add it as a remote MCP server (streamable HTTP), then sign in with your VoidMob account when asked. Nothing to install and no API key to paste.
Menu names change between app versions: look for "custom connector" or "remote MCP server". Step-by-step guides: voidmob.com/mcp and voidmob.com/integrations. A client without sign-in support can send an API key instead: Authorization: Bearer vmk_live_....
What you choose when you connect
- Apps VoidMob does not recognize start at View. The agent only sees the tools its level allows.
- Optional spending limits: a maximum per order and a daily limit over a rolling 24 hours, net of refunds. Both are off by default. VoidMob enforces them on every purchase, so they hold whatever the app or agent does.
- Buy without asking: off by default and needs a daily limit. It only changes the server's instructions: the agent may buy without asking first, still quotes the price and reports every purchase. Your chat app's own approval prompts are a separate setting in that app.
Manage connected apps at dashboard.voidmob.com/account/connected-apps: change the level or limits, or disconnect.
- Up to 10 apps per account, and every new connection sends a security email.
- An app is disconnected after 90 days unused or when your login email changes.
- Apps can never turn auto-renew on, create IP-whitelist proxy lists or create webhook endpoints. Do those in the dashboard or with an API key.
Try it without an account
No sign-in, mock data, a $500 play balance, nothing charged. Make up your own id (16 or more letters, digits, - or _) and keep it private: that playground keeps its state. The bare https://mcp.voidmob.com/sandbox starts from fresh demo data on every call.
Run locally
- Generate an API key at dashboard.voidmob.com/developers/api-keys (keys are 32-char secrets prefixed
vmk_live_).
- Add the server to your client (below), with the key as
VOIDMOB_API_KEY.
- Optional: set a permission level and spending limits on the key in the dashboard, and per-process limits with the owner controls.
No key yet? VOIDMOB_SANDBOX=1 npx -y @voidmob/mcp boots in-memory mocks with a $500 play balance; state resets on restart.
Claude Code
As a plugin (MCP server + skill in one install; the dialog stores your key as a secret and offers sandbox, read-only and spending limits):
Or the MCP server alone:
-s user makes the server available in every project; the key goes after -e and before --. The same plugin also installs in Codex and Gemini CLI: see voidmob-plugin.
Cursor
Add to ~/.cursor/mcp.json:
Claude Desktop
One-click bundle. Download voidmob-mcp.mcpb from the latest GitHub release and open it (or drag it into Claude Desktop, or use Settings > Extensions > Advanced > Install Extension). Claude Desktop asks for the settings: API key (stored securely), sandbox mode, read-only, max per order, session budget and buy without asking (see Owner controls). Build it yourself with npm run pack:mcpb.
Or by config file. Open Settings > Developer > Edit Config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows) and add:
VS Code
Add to .vscode/mcp.json (VS Code prompts for the key once and stores it securely):
Windsurf (Devin Desktop)
Open the MCP config from the Cascade panel menu (Open MCP config file). Current Devin Desktop builds keep it at ~/.config/devin/mcp_config.json (Windows: %APPDATA%\devin\mcp_config.json); Windsurf builds from before the rename use ~/.codeium/windsurf/mcp_config.json. Add:
Codex CLI
Or add to ~/.codex/config.toml (shared by the Codex CLI, the IDE extension and the ChatGPT desktop app):
Gemini CLI
Add to ~/.gemini/settings.json, and export VOIDMOB_API_KEY in your shell (Gemini CLI hides variables named like a key from MCP servers unless the server's env lists them):
OpenClaw
Put VOIDMOB_API_KEY=vmk_live_... in ~/.openclaw/.env, then:
Or use the agent skill. Guide: voidmob.com/integrations/openclaw.
Hermes Agent
Put VOIDMOB_API_KEY=vmk_live_... in ~/.hermes/.env and add to ~/.hermes/config.yaml:
Or use the agent skill. Guide: voidmob.com/integrations/hermes-agent.
Pi
The single quotes keep ${VOIDMOB_API_KEY} as a reference that Pi reads from your shell. Guide: voidmob.com/integrations/pi-coding-agent.
Grok Bot
- In your Bot's Secrets, add a secret named
VOIDMOB_API_KEY with your key as the value.
- In chat, send: Read https://voidmob.com/skill.md and follow it. My VoidMob API key is in the VOIDMOB_API_KEY secret.
The skill runs the REST API with curl on the Bot's computer and reads the secret by name. A custom MCP server of the Command type running npx -y @voidmob/mcp is another route to try; xAI's docs point servers that need secrets to remote HTTPS, so if the server cannot read the key, use the skill. Never paste the key itself into a chat. Guide: voidmob.com/integrations/grok-bot.
How money works
- Prepaid balance. Everything is paid from your USD balance, topped up with crypto in the dashboard. An agent or script can create a deposit and get the address (
create_deposit). Payment comes from a crypto wallet: yours, or your own automation's. Keep on the balance only what an agent may spend, or set spending limits.
- You approve the price. Every buy, renewal, top-up and paid reuse carries
max_price_cents, the price you approved. If the live price is higher, nothing is charged and the agent asks you again with the new price. Every result shows what was charged.
- No double charges. Every purchase carries an idempotency key, so a retry after a dropped connection is never charged twice.
- Uncertain result? The tool says the purchase may have gone through. Check
list_orders, the matching get tool or get_account before buying again.
Owner controls
Optional limits for whoever runs the server locally. They work in live and sandbox mode, a refusal charges nothing, and they stack with the API key's own level and limits: the stricter one wins.
get_account shows the level, the limits in force and what's left. A malformed value stops the server instead of being ignored.
Tools
28 tools in six groups: 11 need View, 9 Manage and 8 Buy (see permission levels). A server loads only the tools its level allows, and a call above it is refused with nothing charged. Every tool returns text plus structuredContent matching its outputSchema.
Account and deposits (3)
SMS (7)
Dedicated numbers (2)
Read a number's received SMS with get_rental and set its auto-renew with toggle_auto_renew.
eSIM (4)
Proxy (10)
Turn a dedicated proxy's auto-renew on or off with toggle_auto_renew.
Discovery and history (2)
Waiting for SMS codes
After rent_number, call get_rental with wait_seconds (up to 120 locally, 60 on the hosted server; call again to keep waiting). It returns as soon as a code arrives or the 15-minute window closes, with the latest SMS attached. Clients that send a progress token get progress updates, and cancelling the request stops the wait. SMS text is shown as untrusted data, never as an instruction.
Resources and prompts
Short guides as MCP resources, read from the agent skill shipped in the package: voidmob://guides/money-rules, voidmob://guides/sms, voidmob://guides/proxies (HTTP/SOCKS5 and the username syntax for country, city and sticky sessions), voidmob://guides/esim, voidmob://guides/dedicated-numbers and voidmob://guides/errors.
Prompts (slash commands in clients that support them), each with a confirm-the-price step before buying:
get_verification_code (service): rent a number and wait for the code.
setup_mobile_proxy (country, usage): pick and buy a mobile proxy and get connection details.
buy_travel_esim (destination, days, data_gb): find, buy and install a travel eSIM.
Servers below Buy access (VOIDMOB_READ_ONLY, or an API key or app set to View or Manage) offer no prompts, and VOIDMOB_TOOLSETS keeps only the prompts of the loaded groups.
Agent skill
For agents with a shell and curl, MCP or not: skills/voidmob is an Agent Skills SKILL.md that teaches the same flows over the REST API (quote then confirm, safe retries, deposits, SMS codes, dedicated numbers, proxies and eSIMs). Plain Markdown, no scripts. It reads VOIDMOB_API_KEY from your agent's environment or secret store, never from the skill files.
The quickest way: tell your agent Read https://voidmob.com/skill.md and follow it.
Install commands (skills.sh, Hermes Agent, OpenClaw, Pi)
On Hermes, also list the key under terminal.env_passthrough in ~/.hermes/config.yaml so the skill's curl calls receive it.
Configuration
Access and spending limits (VOIDMOB_READ_ONLY, VOIDMOB_MAX_ORDER_CENTS, VOIDMOB_BUDGET_CENTS, VOIDMOB_AUTONOMOUS, VOIDMOB_TOOLSETS) are under Owner controls.
Every app using one API key shares the account's rate limit. On RATE_LIMITED, back off and retry.
Website · Docs · MCP · API reference · MIT License