io.github.platfone-com/platfone
Virtual phone numbers for AI agents — rent numbers in 200+ countries, receive SMS.
What can you do with io.github.platfone-com/platfone?
- 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
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
claude mcp add --transport http platfone 'https://mcp.platfone.com/mcp'
{
"mcpServers": {
"platfone": {
"type": "http",
"url": "https://mcp.platfone.com/mcp"
}
}
}
@platfone/mcpclaude mcp add platfone -e 'PLATFONE_API_KEY=<your platfone_api_key>' -- npx -y @platfone/mcp@1.1.8
{
"mcpServers": {
"platfone": {
"command": "npx",
"args": [
"-y",
"@platfone/mcp@1.1.8"
],
"env": {
"PLATFONE_API_KEY": "<your platfone_api_key>"
}
}
}
}
Environment variables
PLATFONE_API_KEYrequired secret Your Platfone API key from https://platfone.com/app/api
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
Platfone MCP Server
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
Why MCP?
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.
Features
- 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
Installation
See the full Installation Guide for detailed instructions.
Quick Start
NPM:
PLATFONE_API_KEY=your_key npx @platfone/mcp
Agent Guidelines
- 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
Tools
| 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.
Typical AI Agent Flow
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)
Development
Read the full Development Guide for setup instructions and testing tips.
Troubleshooting
| 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 |
License
See LICENSE.md. Licensed under the MIT License.
Use of the Platfone API is subject to Terms of Service and Privacy Policy.
Frequently asked questions
What is io.github.platfone-com/platfone?
Virtual phone numbers for AI agents — rent numbers in 200+ countries, receive SMS.
How do I install io.github.platfone-com/platfone?
It runs as a remote server. In Claude Code: claude mcp add --transport http platfone 'https://mcp.platfone.com/mcp'. For other clients, paste the JSON configuration from this page into their MCP settings.
Does io.github.platfone-com/platfone need an API key?
Yes. It expects PLATFONE_API_KEY, which you set in its configuration.
Is io.github.platfone-com/platfone open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains io.github.platfone-com/platfone?
It is published by platfone-com. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.