VirtualSMS

Verificação de SMS com números de telefone SIM físicos reais em mais de 145 países e mais de 2000 serviços para agentes de IA.

Documentação

Servidor MCP VirtualSMS

CI npm version smithery badge License: MIT GitHub Stars

Links rápidos: Início rápido · Por que VirtualSMS · O que você pode construir · Ferramentas · Perguntas · Exemplos · Changelog · Política de segurança · Status

VirtualSMS é uma plataforma de verificação de contas para desenvolvedores e agentes de IA. Ela combina verificação SMS única, aluguel de números dedicados, proxies com correspondência de país e sessões privadas de navegador em nuvem por trás de uma única API, um único servidor MCP e um único saldo pré-pago.

Infraestrutura para agentes de IA que precisam de verificação telefônica no mundo real.

Os números são números móveis emitidos por operadoras, respaldados por chips SIM físicos reais em redes de operadoras, não VoIP, por isso passam nas verificações de tipo de linha que rejeitam números VoIP no cadastro.

A partir de um único saldo pré-pago, você pode:

  • receber códigos SMS únicos a partir de $0,05
  • alugar números dedicados de 1 a 30 dias
  • comprar proxies residenciais, móveis e de datacenter com correspondência de país
  • iniciar sessões privadas de navegador em nuvem que funcionam junto com seu número e proxy (beta)

Todos os quatro funcionam juntos a partir de um único saldo pré-pago, uma única API e um único painel. Use apenas as partes que você precisa ou combine-as em um único fluxo de verificação.

A maioria dos provedores resolve apenas uma parte do fluxo de verificação. A VirtualSMS combina números, aluguéis, proxies e sessões de navegador em nuvem por trás de uma única API, SDKs e um servidor MCP, para que você use apenas as partes que precisa ou as combine em um único fluxo de trabalho.

A VirtualSMS pode ser usada manualmente por indivíduos, integrada a aplicações com SDKs e APIs, ou conduzida por agentes de IA por meio do MCP. Use a plataforma por meio de uma API REST, SDKs oficiais para Node, Python, PHP, Ruby e .NET, um servidor MCP hospedado ou ferramentas de automação como n8n.

Este servidor expõe essa plataforma a qualquer cliente MCP. Construído para agentes de IA. Projetado para fluxos de trabalho de agentes de IA. Funciona com Claude Code, Claude Desktop, Cursor, Windsurf e qualquer cliente compatível com MCP, sem necessidade de escrever código de wrapper.


Início rápido

Cole isto na configuração do seu cliente MCP. Nada para instalar, sem necessidade de Node.js no cliente:

{
  "mcpServers": {
    "virtualsms": {
      "type": "streamableHttp",
      "url": "https://mcp.virtualsms.io/mcp",
      "headers": {
        "x-api-key": "vsms_your_api_key_here"
      }
    }
  }
}

Obtenha uma chave de API em virtualsms.io. Depois, peça ao seu agente:

"Compre um número do Telegram no país mais barato e aguarde o código."

Prefere executar localmente via stdio:

npx virtualsms-mcp

Por que VirtualSMS

Verificar uma conta não deveria significar juntar números de um provedor, proxies de outro e sessões de navegador de um terceiro: múltiplas contas, múltiplos saldos e APIs, e suporte distribuído entre fornecedores. A VirtualSMS reúne essas partes em um único saldo, uma única API e um único servidor MCP.

A VirtualSMS combina todos os três em uma única conta e oferece uma única forma de gerenciá-los:

  • Números móveis emitidos por operadoras. Respaldados por chips SIM físicos reais, não VoIP, então são resolvidos como móveis no cadastro.
  • Proxies com correspondência de país. Pools residenciais, móveis e de datacenter, para que o número e o IP concordem.
  • Sessões privadas de navegador em nuvem. Beta.
  • API REST. Documentada em virtualsms.io/docs.
  • Servidor MCP hospedado. Este repositório, disponível em https://mcp.virtualsms.io/mcp.
  • Um único saldo pré-pago. Verificação, aluguéis e proxies usam todos o mesmo saldo.

Tudo abaixo expande esses seis pontos.


O que você pode construir

Trabalhos concretos que este servidor faz hoje. Cada um é um pedido em linguagem simples que seu agente transforma em chamadas de ferramenta:

Você querPeça ao seu agenteFerramentas que ele usa
Verificar uma conta do WhatsApp a partir do Claude Code"Consiga um código do WhatsApp em um número do Reino Unido"create_order → wait_for_sms
Criar uma conta do Telegram a partir do Cursor"Compre um número do Telegram no país mais barato e aguarde o código"find_cheapest → create_order → wait_for_sms
Recuperar códigos de verificação automaticamente"Aguarde o código e cole-o no formulário"wait_for_sms
Testar fluxos de OTP durante o QA"Execute o fluxo de cadastro dez vezes e relate quais códigos chegaram"create_order → wait_for_sms → cancel_order
Provisionar números temporários durante o CI"Dê à suíte de testes um número novo e depois libere-o"create_order → get_sms → cancel_order
Manter um número por uma semana"Alugue um número britânico por 7 dias"rentals_available → create_rental
Fazer o número e o IP concordarem"Compre um proxy do Reino Unido para corresponder ao meu número do Reino Unido"list_proxy_catalog → buy_proxy → generate_proxy_endpoint
Verificar um número antes de confiar nele"Este número é VoIP?"check_number (nenhuma chave de API necessária)
Recuperar um número que ficou silencioso"Aquele número nunca recebeu o código, troque-o"swap_number

Versões executáveis dos dois primeiros estão em examples/.


Configuração do cliente

Todo cliente executa o mesmo comando stdio npx virtualsms-mcp. Apenas o local e o formato do arquivo diferem. A configuração hospedada acima funciona em qualquer lugar onde streamableHttp seja suportado e é o caminho recomendado.

Claude Desktop

Edite ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ou %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "virtualsms": {
      "command": "npx",
      "args": ["virtualsms-mcp"],
      "env": {
        "VIRTUALSMS_API_KEY": "vsms_your_api_key_here"
      }
    }
  }
}

Saia e reabra o Claude Desktop. Uma configuração pronta para uso e uma transcrição de exemplo estão em examples/03-claude-desktop-config/.

Claude Code, Cursor, Windsurf, OpenClaw, Codex, Hermes, Cline, Zed, Continue.dev

Claude Code (CLI)

claude mcp add --scope user virtualsms npx virtualsms-mcp -e VIRTUALSMS_API_KEY=vsms_your_api_key_here

Cursor

Edite ~/.cursor/mcp.json:

{
  "mcpServers": {
    "virtualsms": {
      "command": "npx",
      "args": ["virtualsms-mcp"],
      "env": {
        "VIRTUALSMS_API_KEY": "vsms_your_api_key_here"
      }
    }
  }
}

Windsurf

Edite ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "virtualsms": {
      "command": "npx",
      "args": ["virtualsms-mcp"],
      "env": {
        "VIRTUALSMS_API_KEY": "vsms_your_api_key_here"
      }
    }
  }
}

OpenClaw

Edite ~/.openclaw/mcp.json:

{
  "mcpServers": {
    "virtualsms": {
      "command": "npx",
      "args": ["virtualsms-mcp"],
      "env": {
        "VIRTUALSMS_API_KEY": "vsms_your_api_key_here"
      }
    }
  }
}

Codex (OpenAI Codex CLI)

Edite ~/.codex/config.toml:

[mcp_servers.virtualsms]
command = "npx"
args = ["virtualsms-mcp"]
env = { VIRTUALSMS_API_KEY = "vsms_your_api_key_here" }

Hermes

Edite a configuração MCP do Hermes:

{
  "mcpServers": {
    "virtualsms": {
      "command": "npx",
      "args": ["virtualsms-mcp"],
      "env": {
        "VIRTUALSMS_API_KEY": "vsms_your_api_key_here"
      }
    }
  }
}

Cline (VS Code)

Abra o painel de configurações MCP do Cline e adicione:

{
  "virtualsms": {
    "command": "npx",
    "args": ["virtualsms-mcp"],
    "env": {
      "VIRTUALSMS_API_KEY": "vsms_your_api_key_here"
    }
  }
}

Zed

Edite ~/.config/zed/settings.json:

{
  "context_servers": {
    "virtualsms": {
      "command": {
        "path": "npx",
        "args": ["virtualsms-mcp"],
        "env": {
          "VIRTUALSMS_API_KEY": "vsms_your_api_key_here"
        }
      }
    }
  }
}

Continue.dev

Edite ~/.continue/config.yaml:

mcpServers:
  - name: virtualsms
    command: npx
    args:
      - virtualsms-mcp
    env:
      VIRTUALSMS_API_KEY: vsms_your_api_key_here

Funciona com o ChatGPT?

Sim, por meio do Modo Desenvolvedor do ChatGPT. Abra as Configurações, ative o Modo Desenvolvedor e adicione https://mcp.virtualsms.io/mcp como um conector personalizado (planos Plus, Pro, Business, Enterprise e Edu; não disponível no plano gratuito). A configuração é colar uma URL em vez de um arquivo de configuração, então difere das configurações de cliente acima. O ChatGPT só se conecta a servidores MCP remotos via SSE ou HTTP de streaming, então use o endpoint hospedado, não o comando stdio local. A API REST continua disponível se você preferir criar um GPT personalizado ou uma Action.


Configuração

VariávelObrigatóriaPadrãoDescrição
VIRTUALSMS_API_KEYSim, para ferramentas de contanenhumSua chave de API da VirtualSMS. As chaves têm um prefixo vsms_
VIRTUALSMS_BASE_URLNãohttps://virtualsms.ioURL base da API
VIRTUALSMS_ENABLE_SESSIONSNãodesativadoServe 3 ferramentas adicionais de sessão quando definido como 1, true ou yes. Desativado por padrão
VIRTUALSMS_ENABLE_RELEASENãodesativadoServe a ferramenta de aluguel em lançamento antecipado quando definido como 1, true ou yes. Desativado por padrão enquanto os termos de reembolso estão sendo definidos

Ferramentas

40 ferramentas por padrão. Defina VIRTUALSMS_ENABLE_SESSIONS=1 para expor mais 3.

Os nomes das ferramentas são mostrados abaixo sem o prefixo virtualsms_ para facilitar a leitura. Os nomes reais na comunicação têm o prefixo: virtualsms_create_order, virtualsms_get_sms e assim por diante.

Ativação e conta (18 ferramentas)

A superfície principal de verificação por SMS: descubra um serviço, consulte o preço, compre um número, obtenha o código.

FerramentaAutenticaçãoDescrição
list_servicesSimTodos os serviços de verificação disponíveis. Filtro opcional por search
list_countriesSimTodos os países disponíveis. Filtro opcional por service
get_priceNãoPreço e disponibilidade para um par de serviço e país
find_cheapestNãoPaíses mais baratos para um serviço, ordenados por preço, com níveis de estoque
search_servicesSimBusca de serviço em linguagem natural. "telega" encontra o Telegram
get_balanceSimSaldo da conta em USD
get_profileSimE-mail, link do Telegram, saldo, gasto total ao longo da vida, total de pedidos, chaves de API ativas
get_statsSimPedidos, taxa de sucesso, gastos e detalhamento por status/serviço/país
get_transactionsSimHistórico de transações com filtros de tipo, intervalo de datas e paginação
create_orderSimCompre um número para um serviço e país. Retorna order_id e phone_number
get_smsSimConsulte um pedido para obter o código. Use para trabalhos em lote e cron
wait_for_smsSimBloqueia até o SMS chegar em um order_id existente, ou até o tempo limite
get_orderSimDetalhes completos do pedido e todas as mensagens recebidas
list_ordersSimSeus pedidos ativos. Essencial para recuperação de falhas
order_historySimPedidos passados com filtros de status, serviço, país e data
cancel_orderSimCancele e reembolse, se nenhum SMS chegou. Cooldown de 120s após a compra
cancel_all_ordersSimCancele em massa todos os pedidos ativos
swap_numberSimTroque por um número novo, mesmo serviço e país, sem custo extra. Cooldown de 120s

get_sms vs wait_for_sms: wait_for_sms é o padrão recomendado para fluxos de trabalho interativos com agentes. Ele bloqueia e retorna no momento em que o SMS chega via WebSocket. Use get_sms para trabalhos em lote, consultas agendadas por cron ou quando você já gerencia seu próprio loop de consulta.

wait_for_sms recebe um order_id, não um serviço e país. Chame create_order primeiro e depois passe o order_id retornado. Esse é o fluxo de comprar e aguardar em duas etapas.

Aluguéis (9 ferramentas)

Mantenha um número por dia em vez de comprar uma verificação única. Dois níveis:

  • Acesso Total: inventário local de SIM, para um número completo que funciona em qualquer serviço. Todos os países em estoque hoje listam 1, 7 e 30 dias, com preços que variam por país. Durações e preços não são fixos aqui de propósito: chame rentals_available para a lista atualizada por país e trate-a como autoritativa.
  • Plataforma: obtido por meio de nossa rede global de fornecedores, bloqueado a um serviço escolhido, com durações de 1, 3 ou 7 dias. Chame rentals_price para o preço exato de varejo de uma combinação (serviço, país, duração).

Estoque, durações e preços diferem por nível e por país, então chame rentals_available antes de se comprometer com qualquer um. Um aluguel ativo pode ser estendido com extend_rental pelo preço atual do catálogo, nas mesmas durações que seu nível permite.

Ambos os níveis têm os mesmos termos de reembolso: cancele para reembolso total dentro de 20 minutos da compra e antes da chegada do primeiro SMS. Cancelamentos de Plataforma estão adicionalmente sujeitos a uma retenção mínima de 2 minutos, então um cancelamento dentro dos primeiros 2 minutos é rejeitado e precisa ser tentado novamente.

FerramentaAuthDescrição
rentals_pricingSimNíveis de preço de Acesso Total: durações e preços
rentals_availableSimPaíses com estoque de aluguel, contagens e preços, por nível
rentals_servicesSimServiços disponíveis para aluguel no nível Plataforma em um país, com estoque e preço
rentals_priceSimPreço de varejo para uma combinação de serviço, país e duração
create_rentalSimAlugue um número. Verifique disponibilidade e preço primeiro
list_rentalsSimSeus aluguéis em ambos os níveis, filtráveis por status
get_rentalSimDetalhes completos de um aluguel: nível, número, bloqueio de serviço, status, expiração, SMS
extend_rentalSimEstenda um aluguel ativo. Cobra o preço atual do catálogo
cancel_rentalSimReembolso total, dentro de 20 minutos da compra e antes de qualquer SMS
Proxy (10 ferramentas)

Proxies de países correspondentes, para que o número e o IP concordem. Três pools: residencial, móvel e datacenter. Compre tráfego por GB e depois gere uma string de conexão.

FerramentaAuthDescrição
list_proxy_catalogSimTipos de pool, países e preço por GB. Comece aqui
list_proxy_locationsNãoCidades, estados, ASNs ou CEPs para um tipo de pool mais país. Nenhuma compra necessária
buy_proxySimCompre tráfego de proxy em GB. Retorna credenciais e saldo restante
list_proxiesSimSeus proxies com GB restante e credenciais. Retorna valores proxy_id
generate_proxy_endpointSimConstrua uma string de conexão pronta para uso: segmentação por país, estado, cidade, CEP ou ASN, rotativo ou fixo, HTTP ou SOCKS5
rotate_proxySimSolicite um novo IP de saída para um proxy existente
test_proxySimProve que um proxy funciona. Relata IP de saída, país, cidade, ISP e latência
get_proxy_usageSimGB em cache usados e restantes, além da contagem de solicitações, para um proxy
get_proxy_usage_historySimSérie de tráfego e solicitações por dia nos últimos 7 ou 30 dias
set_proxy_targetingSimPersista uma segmentação geográfica padrão em um sub-usuário de proxy
Outros (3 ferramentas)
FerramentaAuthDescrição
retry_orderSimSolicite o reenvio do SMS para o mesmo número. Nem todos os tipos de pedido suportam
check_numberNãoConsulta de operadora e tipo de linha para qualquer número E.164: móvel, fixo ou VoIP, além de risco de spam
start_manual_registration_sessionSimBeta, somente convite. Inicie um navegador em nuvem correspondente ao país que você mesmo dirige em um visualizador ao vivo. Navegação orientada por agente é um opt-in separado (as ferramentas de sessão). Junte-se a https://t.me/VirtualSMS_io para acesso beta
Ferramentas de sessão (mais 3, desativadas por padrão)

Beta, somente convite. A pilha do navegador é inicial. Funciona, mas a forma dessas ferramentas ainda pode mudar e não há garantia de estabilidade ainda. Junte-se a https://t.me/VirtualSMS_io para acesso beta e atualizações.

Servido apenas quando VIRTUALSMS_ENABLE_SESSIONS está definido como 1, true ou yes. Não exposto na superfície padrão.

FerramentaDescrição
navigate_sessionNavegue uma sessão de navegador ativa para uma URL
session_viewerURL do visualizador ao vivo e status atual para uma sessão ativa
stop_sessionPare uma sessão de navegador ativa e libere-a

Fluxos de trabalho típicos

Obter um código de verificação

create_order(service: "telegram", country: "US")
→ {order_id: "abc123", phone_number: "+14155552671", status: "pending"}

wait_for_sms(order_id: "abc123", timeout_seconds: 180)
→ {success: true, code: "12345", delivery_method: "websocket", elapsed_seconds: 8}

Encontre o país mais barato primeiro

find_cheapest(service: "telegram", limit: 3)
→ {cheapest_options: [{country: "PK", price_usd: 0.05, ...}]}

create_order(service: "telegram", country: "PK")
wait_for_sms(order_id: "abc123")

Número não está recebendo? Troque-o

swap_number(order_id: "abc123")
→ {order_id: "def456", phone_number: "+628...", status: "waiting"}

Alugue um número por um mês

rentals_available(tier: "full_access")
→ countries holding local SIM stock, each with its own duration and price list

create_rental(tier: "full_access", country: "FR", duration_hours: 720)
→ {rental_id: "rnt_1", phone_number: "+33...", expires_in_days: 30}

O estoque é por país e por nível, então descubra primeiro e alugue depois. rentals_available(tier: "platform") cobre um catálogo diferente, bloqueado por serviço.

Combine um número com um proxy de país correspondente

list_proxy_catalog()
buy_proxy(pool_type: "residential", gb: 1, country_code: "GB")
generate_proxy_endpoint(proxy_id: "px_1", country_code: "GB", protocol: "socks5")

Perguntas

O que é infraestrutura de verificação de conta?

Infraestrutura de verificação de conta é a pilha que leva uma conta real através de um fluxo de inscrição que exige um número de telefone. Tem cinco camadas, e uma lacuna em qualquer uma delas falha toda a cadeia:

  1. Números. Uma linha móvel emitida por operadora, porque o tipo de linha é verificado.
  2. SMS. O código de verificação, entregue nesse número e legível por software em vez de um humano segurando um aparelho.
  3. Proxy. Um IP no mesmo país do número, para que os dois concordem.
  4. Navegador. Um ambiente limpo para conduzir a própria inscrição.
  5. Automação. Uma API ou um agente que executa a cadeia de ponta a ponta, sem supervisão.

A maioria dos provedores vende as duas primeiras camadas e deixa você obter o resto, que é exatamente onde o número, o IP e o navegador param de contar a mesma história. A VirtualSMS fornece a infraestrutura por trás de todas as cinco.

A VirtualSMS é uma plataforma de verificação de conta para indivíduos, desenvolvedores e agentes de IA. Ela combina verificação SMS única, aluguel de números dedicados, proxies de países correspondentes e sessões privadas de navegador em nuvem atrás de uma API, um servidor MCP e um saldo pré-pago.

O que é um servidor MCP para verificação SMS?

MCP (Model Context Protocol) é um padrão aberto que permite que um cliente de IA chame ferramentas externas. Um servidor MCP para verificação SMS expõe operações de número de telefone e código de verificação como ferramentas que um agente pode chamar diretamente, então o agente compra o número, espera o código e o lê de volta sem nenhum código de integração seu. Este repositório é esse servidor para a VirtualSMS: 40 ferramentas cobrindo verificação, aluguéis e proxies. Se você não está dirigindo um agente, as mesmas operações estão disponíveis como uma API REST de verificação simples.

Quando devo usar isso?

  • Seu agente de IA precisa entrar ou registrar uma conta que exige um número de telefone.
  • Você está testando um fluxo de OTP ou inscrição e quer números novos sob demanda em vez de uma gaveta de SIMs de teste.
  • Você precisa de um código de verificação recuperado automaticamente, em CI ou em um trabalho não supervisionado.
  • Você precisa de um número e um IP de país correspondente que concordem entre si.
  • Você está conduzindo automação de inscrição em um navegador e prefere que o número, o IP e o navegador venham de um lugar em vez de três.
  • Você precisa de um número de telefone temporário para um código, ou um dedicado que mantém por até 30 dias.
  • Você quer preço por código a partir de $0,05 sem assinatura e sem aluguel mensal de número.

Quando NÃO devo usar isso?

Respostas honestas, para você não perder uma tarde:

  • Você precisa enviar SMS. Esta plataforma recebe; não envia. Use um provedor de mensagens como Twilio.
  • Você precisa de um número permanente para seu negócio. Números de verificação são temporários por design, e aluguéis duram dias, não anos. Compre uma linha real de uma operadora.
  • Você precisa de códigos em um número que já possui. Não há portabilidade. Os números vêm do nosso inventário.
  • Você está executando campanhas de marketing A2P. Ferramenta totalmente errada.
  • Você está tentando evadir os termos de serviço de uma plataforma. Se seu uso está em conformidade com os termos do serviço contra o qual você verifica é sua responsabilidade, não nossa.

Claude ou Cursor podem receber códigos de verificação SMS?

Sim, através deste servidor. Claude Code, Claude Desktop, Cursor, Windsurf, Cline, Zed, Continue.dev, Codex, OpenClaw e Hermes são todos clientes MCP, e cada um está a uma colagem de configuração de distância (veja Configuração do cliente). Uma vez instalado, "compre um número Telegram e espere o código" é uma solicitação que o agente pode executar de ponta a ponta. O ChatGPT também pode alcançá-lo, através de conectores personalizados do Developer Mode (veja Isso funciona com ChatGPT?), ou através da API REST se você preferir não habilitar o Developer Mode.

Como os agentes de IA recebem códigos OTP automaticamente?

Duas chamadas de ferramenta. create_order compra um número para um determinado serviço e país e retorna um order_id. wait_for_sms então bloqueia nesse order_id e retorna no momento em que o código chega, enviado via WebSocket, tipicamente em 2 a 15 segundos. O agente nunca faz polling, nunca dorme em um loop e nunca precisa de um humano para ler um telefone. Se você preferir conduzir seu próprio loop, get_sms faz polling de um único pedido.

Como isso é diferente do Twilio?

Twilio é uma plataforma de comunicação completa: enviar e receber SMS e voz, números de longa duração, campanhas A2P, tudo. A VirtualSMS faz um trabalho, que é receber códigos de verificação sob demanda. As diferenças práticas:

  • Tipo de linha. Os números Twilio são VoIP. Muitos serviços rejeitam números VoIP na inscrição. Os números VirtualSMS são SIMs físicos reais em redes de operadoras, então eles resolvem como móveis.
  • Formato de preço. Twilio cobra por um número todo mês, use ou não. A VirtualSMS cobra por código a partir de $0,05, sem assinatura.
  • Direção. Twilio envia e recebe. Este recebe.

Se você precisa enviar mensagens, use Twilio. Se você precisa receber um código de verificação, este é feito para isso.

Por que SIMs físicos reais em vez de VoIP?

Os sistemas de verificação verificam o tipo de linha do número que você fornece. Números VoIP são baratos e descartáveis em escala, então correlacionam com fraude, e uma grande parcela de serviços os rejeita diretamente na inscrição. SIMs físicos reais estão em redes de operadoras e resolvem como móveis, que é exatamente o que essas verificações procuram: um número não-VoIP que se comporta como um aparelho real.

Você não precisa aceitar isso por fé. check_number executa uma consulta de operadora e tipo de linha em qualquer número E.164, não precisa de chave de API e dirá se um número lê como móvel, fixo ou VoIP.


Alternativas e comparações

Desenvolvedores pesquisando por textverified mcp, sms-activate mcp, 5sim mcp, daisysms mcp ou smspool mcp geralmente estão fazendo uma pergunta: qual provedor de verificação SMS um agente de IA pode conduzir nativamente? Esta seção responde isso sem um placar.

VirtualSMS publica este servidor MCP, então qualquer cliente MCP o chama diretamente sem código de wrapper: 40 ferramentas, 2500+ serviços, 145+ países, a partir de $0,05 por código, em SIMs físicos reais, além de aluguéis de números e proxies de países correspondentes do mesmo saldo.

SMS-Activate encerrou em dezembro de 2025. Se sua integração apontava para lá, ela se foi, e a migração é uma nova chave de API e uma nova URL base em vez de uma reescrita: a forma do trabalho, comprar um número e depois ler o código, é a mesma aqui.

TextVerified, 5SIM, DaisySMS e SMSPool são todos provedores ativos de verificação SMS, cada um com sua própria API, preços, cobertura e termos. Verifique a documentação atual deles para o que oferecem hoje.

Deliberadamente não publicamos uma tabela de comparação de preços, contagens de serviços ou cobertura dos concorrentes. Esses números mudam semana a semana, não temos visão privilegiada do inventário de ninguém, e uma tabela desatualizada vestida de pesquisa é pior do que nenhuma tabela. Os números da VirtualSMS acima são nossos e nós os defendemos. Compare-os com o que você está usando agora.


Como funciona

WebSocket e polling

wait_for_sms usa um sistema de entrega de dois níveis:

  1. WebSocket, instantâneo. Conecta a wss://virtualsms.io/ws/orders?order_id=xxx&api_key=your_key. Quando o SMS chega, o servidor o envia em tempo real. Entrega típica: 2 a 15 segundos.
  2. Fallback de polling. Se o WebSocket falhar ao conectar ou cair, a ferramenta cai para polling a cada 5 segundos pelo tempo limite restante.

O campo delivery_method na resposta informa qual caminho foi usado: websocket, polling ou instant quando o código já havia chegado antes de você chamar.

Este servidor envia via WebSocket mantido aberto; ele nunca chama você de volta. Se você preferir que a VirtualSMS faça POST de eventos para uma URL sua, a plataforma executa um sistema separado de assinatura de webhook, configurado no painel e dirigido pela API REST em vez deste servidor MCP.

Arquitetura

AI Agent (Claude / Cursor / Codex / Windsurf / any MCP client)
    │
    ▼ MCP (stdio or StreamableHTTP)
VirtualSMS MCP Server (this package)
    │
    ├──► REST API: https://virtualsms.io/docs
    │        create_order, get_sms, cancel_order, get_balance ...
    │
    └──► WebSocket: wss://virtualsms.io/ws/orders
             real-time SMS push delivery

Recuperação de falhas

Se sua sessão for interrompida no meio de uma verificação:

  1. Reinicie o servidor MCP.
  2. Liste pedidos ativos: list_orders(status: "pending")
  3. Verifique se há códigos: get_sms(order_id: "abc123")
  4. Cancele se não for necessário: cancel_order(order_id: "abc123")

wait_for_sms sempre retorna order_id, mesmo em caso de timeout, para que você possa se recuperar.


Endpoint hospedado e status

  • Endpoint MCP hospedado: https://mcp.virtualsms.io/mcp. StreamableHTTP somente TLS, com Cloudflare na frente.
  • Status da plataforma e uptime: virtualsms.io/status, consultado ao vivo: site e painel, gateway de SMS, API REST, bot do Telegram e banco de dados. O endpoint MCP hospedado roda como um serviço separado e ainda não aparece como uma linha nessa página.
  • SLA alvo: 99,9% no caminho MCP hospedado. Uma meta que nos impomos, e não uma garantia contratual, e que a página de status acima ainda não mede.
  • Cobertura: 145+ países online, 2500+ serviços indexados.
  • Retenção de dados: os corpos das mensagens de SMS são retidos por 7 dias e depois excluídos permanentemente. Os metadados dos pedidos (número de telefone, serviço, país, carimbos de data/hora) são retidos durante toda a vida da sua conta. Consulte SECURITY.md para detalhes completos.
  • Divulgação de vulnerabilidades: envie um e-mail para security@virtualsms.io ou abra um aviso de segurança privado.

👉 Cadastre-se em VirtualSMS.io


Exemplos

Três exemplos executáveis estão incluídos neste repositório. Cada um está a node run.mjs de distância, uma vez que VIRTUALSMS_API_KEY esteja definido.

SDKs e ferramentas

A mesma plataforma, a partir do que você já usa para escrever:

RepositórioO que é
node-sdkSDK oficial Node.js / TypeScript
python-sdkSDK oficial Python
virtualsms-php-sdkSDK oficial PHP
ruby-sdkSDK oficial Ruby
dotnet-sdkSDK oficial .NET
go-sdkSDK oficial Go
rust-sdkSDK oficial Rust
swift-sdkSDK oficial Swift
java-sdkSDK oficial Java
api-docsFonte da documentação da API REST
examplesExemplos executáveis em várias linguagens
n8n-nodes-virtualsmsNós da comunidade n8n
automation-integrationsIntegrações com Make, Zapier e fluxos de trabalho
virtual-number-checkerFerramenta de consulta de operadora e tipo de linha
claude-skill-sms-verificationHabilidade do Claude para verificação de SMS
cursor-rules-sms-verificationRegras do Cursor para verificação de SMS

Compilar e contribuir

git clone https://github.com/virtualsms-io/mcp-server.git
cd mcp-server
npm install
npm run build      # tsc
npm test           # vitest
npx tsc --noEmit   # typecheck only

Dois transportes compartilham uma única tabela de ferramentas: src/index.ts (stdio) e src/http-server.ts (StreamableHTTP). As definições e manipuladores de ferramentas ficam em src/tools.ts. Se você adicionar uma ferramenta, conecte-a em ambos os transportes. src/__tests__/transport-parity.test.ts falha na compilação se você esquecer, e src/__tests__/docs-tool-names.test.ts falha se a documentação nomear uma ferramenta que não existe.

Issues e pull requests: github.com/virtualsms-io/mcp-server.

As notas de versão de v1.0.0 a v1.3.1 estão em CHANGELOG.md.

Segurança

As chaves de API são passadas pelo cabeçalho x-api-key (hospedado) ou pela variável de ambiente VIRTUALSMS_API_KEY (stdio local) e podem ser rotacionadas pela sua conta em virtualsms.io. Política completa, detalhes de retenção e processo de divulgação: SECURITY.md.

Reporte vulnerabilidades para security@virtualsms.io.

Licença

MIT. Consulte LICENSE.

Construído por VirtualSMS.io. Verificação de contas para desenvolvedores e agentes de IA, em chips SIM físicos reais: 2500+ serviços · 145+ países · a partir de US$ 0,05 por código.