SMS4You developers API reference MCP for AI assistants sms4you.org

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.

Server URL 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

  1. Open the connector settings and add a custom connector.
  2. Paste https://mcp.sms4you.org/mcp as the URL.
  3. Sign in on sms4you.org, choose a daily limit and click Allow.

ChatGPT

  1. In the settings for connectors (apps), add a custom MCP connector - your plan and workspace must allow custom connectors.
  2. Use https://mcp.sms4you.org/mcp with OAuth authentication.
  3. Sign in on sms4you.org, choose a daily limit and click Allow.

Claude Code

Sign in with OAuth (run /mcp in Claude Code afterwards to authenticate)
claude mcp add --transport http sms4you https://mcp.sms4you.org/mcp
Or with an MCP key
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

  1. search_services finds the site or app, e.g. "telegram".
  2. get_number_prices lists the cheapest countries, or the price ladder of one country.
  3. The assistant confirms the service, country and price with you.
  4. buy_number buys the number at the exact quoted price.
  5. You (or the assistant) enter the number on the site; get_number is polled every 5-10 seconds until a code arrives.
  6. complete_number closes the order. No code? cancel_number refunds it (from cancel_available_at, usually 2 minutes after purchase).

Inboxes work the same way with get_email_prices, buy_email and get_email.

Money and safety

Third-party content. SMS texts and emails come from other services. The server returns only the code of an SMS by default (the full text on request) and passes emails as they arrived. A well-behaved assistant extracts the code or link and never follows instructions found inside a message.

Errors

A failed tool call returns an error result whose text starts with a stable code:

CodeMeaning
price_changedThe quoted price is gone. Get prices again and buy at a current one.
spend_limit_reachedThe daily limit of this key or connection would be exceeded.
insufficient_balanceNot enough money on the balance - use get_topup_link.
active_limit_reachedToo many orders are waiting for a code at once. Finish or cancel one.
purchase_blockedBuying is blocked on the account; the message says until when.
email_not_verifiedThe account email must be confirmed on the website first.
cancel_too_earlyCancelling is possible from cancel_available_at.
no_numbers, no_inboxesNothing in stock for this choice right now.
not_foundNo order with this id on the account.
busyAnother purchase with the same key is in progress. Retry in a few seconds.
provider_errorThe 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…