MCP server for AI assistants
Connect Claude, ChatGPT, Cursor or any client that speaks the Model Context Protocol to your SMS4You account. The assistant can find a service, quote prices, buy a virtual number or a temporary inbox and read the verification code for you - within a daily spending limit you set.
https://mcp.sms4you.org/mcp
Connect your assistant
There are two ways in. Both end up with the same tools and the same daily limit.
Sign in (OAuth)
For assistants where you add a connector by URL: claude.ai, Claude Desktop, ChatGPT and other clients with OAuth support.
Add the server URL, sign in to SMS4You, set a daily limit on the consent screen and approve.
MCP key
For clients configured with a header: Claude Code, Cursor, scripts and agents.
Create a key of type AI assistant (MCP) in
Profile → API tokens and send it as
Authorization: Bearer <key>.
claude.ai, Claude Desktop
- Open the connector settings and add a custom connector.
- Paste
https://mcp.sms4you.org/mcpas the URL. - Sign in on sms4you.org, choose a daily limit and click Allow.
ChatGPT
- In the settings for connectors (apps), add a custom MCP connector - your plan and workspace must allow custom connectors.
- Use
https://mcp.sms4you.org/mcpwith OAuth authentication. - Sign in on sms4you.org, choose a daily limit and click Allow.
Claude Code
/mcp in Claude Code afterwards to authenticate)claude mcp add --transport http sms4you https://mcp.sms4you.org/mcp
claude mcp add --transport http sms4you https://mcp.sms4you.org/mcp \
--header "Authorization: Bearer <your MCP key>"
Cursor and other JSON-configured clients
~/.cursor/mcp.json (the same shape works for most clients){
"mcpServers": {
"sms4you": {
"url": "https://mcp.sms4you.org/mcp",
"headers": { "Authorization": "Bearer <your MCP key>" }
}
}
}
Transport: Streamable HTTP. Browser-only MCP clients are not supported (no CORS on this endpoint).
How a purchase goes
search_servicesfinds the site or app, e.g. "telegram".get_number_priceslists the cheapest countries, or the price ladder of one country.- The assistant confirms the service, country and price with you.
buy_numberbuys the number at the exact quoted price.- You (or the assistant) enter the number on the site;
get_numberis polled every 5-10 seconds until a code arrives. complete_numbercloses the order. No code?cancel_numberrefunds it (fromcancel_available_at, usually 2 minutes after purchase).
Inboxes work the same way with get_email_prices, buy_email and get_email.
Money and safety
- Daily limit. Every MCP key and every OAuth connection has its own daily spending limit (UTC day, $10 by default). Change or remove it in Profile → API tokens. Refunds do not give the budget back.
- Same wallet. Purchases are paid from your SMS4You balance. The assistant cannot top it up:
get_topup_linkgives you a link to pay on the website yourself. - Limited access. The assistant cannot withdraw money, change your profile, create keys or reach any other part of the account. MCP keys and OAuth tokens work on this server only.
- Disconnect any time. Revoke a key or disconnect an assistant in the profile - access stops immediately.
- Prices. MCP purchases use their own price channel, which may differ slightly from the website. Prices are USD strings and are passed back exactly as quoted.
Errors
A failed tool call returns an error result whose text starts with a stable code:
| Code | Meaning |
|---|---|
price_changed | The quoted price is gone. Get prices again and buy at a current one. |
spend_limit_reached | The daily limit of this key or connection would be exceeded. |
insufficient_balance | Not enough money on the balance - use get_topup_link. |
active_limit_reached | Too many orders are waiting for a code at once. Finish or cancel one. |
purchase_blocked | Buying is blocked on the account; the message says until when. |
email_not_verified | The account email must be confirmed on the website first. |
cancel_too_early | Cancelling is possible from cancel_available_at. |
no_numbers, no_inboxes | Nothing in stock for this choice right now. |
not_found | No order with this id on the account. |
busy | Another purchase with the same key is in progress. Retry in a few seconds. |
provider_error | The supplier refused; the message explains, nothing is charged. |
HTTP-level: 401 without valid credentials (the response points clients to the OAuth metadata), 429 when the per-key rate limit is hit, 503 while the server is switched off.
Tool reference
Loading the tool list…