Platfone provides virtual phone numbers for account verification, testing, and automation workflows. The Platfone MCP server enables AI agents to obtain temporary numbers and receive SMS messages from MCP-compatible clients like Claude, VS Code Copilot, Codex, etc.
📖 Docs · 🔧 Setup Guide · 🔑 Get API Key · 📦 npm
Instead of manually integrating the API, AI agents can:
- Order numbers autonomously by country and service name
- Wait for SMS codes
- Retry or cancel activations
All via structured tool calls — no custom backend required.
- Full activation lifecycle — from ordering a number to receiving SMS
- ETag-cached catalog — countries and services are cached in-memory with 5-minute TTL and ETag-based conditional refresh — never sent to the agent
- Human-friendly inputs — use "Israel" or "Telegram" instead of IDs; names are auto-resolved server-side
- Dual transport —
stdioandhttpfrom a single codebase - API key auth — works with your existing Platfone API key
See the full Installation Guide for detailed instructions.
NPM:
PLATFONE_API_KEY=your_key npx @platfone/mcp- Always call
check_pricefirst to verify cost and availability - Then call
order_numberto rent a number - Call
check_smsuntil SMS is received or expired - Use
retry_activationif no SMS arrives - Use
cancel_activationto release funds if no longer needed
| Tool | Description |
|---|---|
get_balance |
Check account balance: total, reserved, and available funds. |
check_price |
Check pricing and availability for a country + service pair before ordering. |
order_number |
Order a virtual phone number. Accepts names ("Israel") or IDs ("il"). Returns activation_id + phone. |
check_sms |
Poll activation state. Returns SMS code when received, or current status with polling instructions. |
retry_activation |
Request another SMS on the same number. Free of charge. |
cancel_activation |
Cancel an active activation before SMS is received. Refunds reserved amount. |
Note: Country and service catalogs are cached server-side and auto-resolved from human-readable names. The agent never receives the full catalog — only resolved IDs or disambiguation hints.
1. check_price (country: "Israel", service: "Telegram") → verify cost & availability
2. order_number (country: "Israel", service: "Telegram") → returns activation_id + phone
3. check_sms (activation_id) → poll or check once for SMS
Optional steps:
retry_activation— request another SMS on the same number (free)cancel_activation— cancel before SMS arrives (refunds balance)
Read the full Development Guide for setup instructions and testing tips.
| Error | Solution |
|---|---|
UnauthorizedException |
Check your PLATFONE_API_KEY is valid |
PaymentRequiredException |
Top up your Platfone balance |
NoNumbersAvailableException |
Try a different country or service |
TooManyRequestsException |
Rate limited — wait and retry |
MaxPriceExceededException |
Retry order_number with the suggested max_price and returned order_id |
TooManyActivationsException |
Max concurrent active activations reached — cancel or wait for expiry |
See LICENSE.md. Licensed under the MIT License.
Use of the Platfone API is subject to Terms of Service and Privacy Policy.