# platfone-com/mcp [Health: Active]

**Category:** 💬 Communication  
**Repository:** https://github.com/platfone-com/mcp  
**GitHub Stars:** 4  
**npm Downloads (last month):** 147  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/platfone-com-mcp

## Description
Virtual phone number platform for AI agents — rent numbers across 200+ countries, receive SMS, and manage the full activation lifecycle. Supports stdio and HTTP transport.

## Tools
Capabilities this server exposes over MCP:

- **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.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "mcp": {
    "command": "npx",
    "args": ["-y","@platfone/mcp"],
    "env": {
      "PLATFONE_API_KEY": ""
    }
  }
}
```

**Requires environment variables:** `PLATFONE_API_KEY` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation & README

# Platfone MCP Server

[![npm version](https://img.shields.io/npm/v/@platfone/mcp)](https://www.npmjs.com/package/@platfone/mcp)
[![npm downloads](https://img.shields.io/npm/dw/@platfone/mcp)](https://www.npmjs.com/package/@platfone/mcp)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Smithery](https://smithery.ai/badge/dima-p0g6/platfone)](https://smithery.ai/server/dima-p0g6/platfone)

[Platfone](https://platfone.com) 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](https://platfone.com/docs/mcp/) · 🔧 [Setup Guide](https://platfone.com/docs/mcp/setup/) · 🔑 [Get API Key](https://platfone.com/app/api) · 📦 [npm](https://www.npmjs.com/package/@platfone/mcp)


## 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** — `stdio` and `http` from a single codebase
- **API key auth** — works with your existing Platfone API key

## Installation

See the full [Installation Guide](https://platfone.com/docs/mcp/setup) for detailed instructions.

### Quick Start

**NPM:**

```bash
PLATFONE_API_KEY=your_key npx @platfone/mcp
```

## Agent Guidelines

- Always call `check_price` first to verify cost and availability
- Then call `order_number` to rent a number
- Call `check_sms` until SMS is received or expired
- Use `retry_activation` if no SMS arrives
- Use `cancel_activation` to 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](https://github.com/platfone-com/mcp/blob/HEAD/docs/DEVELOPMENT.md) 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](https://github.com/platfone-com/mcp/blob/HEAD/LICENSE.md). Licensed under the MIT License.

Use of the Platfone API is subject to [Terms of Service](https://platfone.com/compliance#terms) and [Privacy Policy](https://platfone.com/compliance#privacy).

