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
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ê quer | Peça ao seu agente | Ferramentas 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ável | Obrigatória | Padrão | Descrição |
|---|---|---|---|
VIRTUALSMS_API_KEY | Sim, para ferramentas de conta | nenhum | Sua chave de API da VirtualSMS. As chaves têm um prefixo vsms_ |
VIRTUALSMS_BASE_URL | Não | https://virtualsms.io | URL base da API |
VIRTUALSMS_ENABLE_SESSIONS | Não | desativado | Serve 3 ferramentas adicionais de sessão quando definido como 1, true ou yes. Desativado por padrão |
VIRTUALSMS_ENABLE_RELEASE | Não | desativado | Serve 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.
| Ferramenta | Autenticação | Descrição |
|---|---|---|
list_services | Sim | Todos os serviços de verificação disponíveis. Filtro opcional por search |
list_countries | Sim | Todos os países disponíveis. Filtro opcional por service |
get_price | Não | Preço e disponibilidade para um par de serviço e país |
find_cheapest | Não | Países mais baratos para um serviço, ordenados por preço, com níveis de estoque |
search_services | Sim | Busca de serviço em linguagem natural. "telega" encontra o Telegram |
get_balance | Sim | Saldo da conta em USD |
get_profile | Sim | E-mail, link do Telegram, saldo, gasto total ao longo da vida, total de pedidos, chaves de API ativas |
get_stats | Sim | Pedidos, taxa de sucesso, gastos e detalhamento por status/serviço/país |
get_transactions | Sim | Histórico de transações com filtros de tipo, intervalo de datas e paginação |
create_order | Sim | Compre um número para um serviço e país. Retorna order_id e phone_number |
get_sms | Sim | Consulte um pedido para obter o código. Use para trabalhos em lote e cron |
wait_for_sms | Sim | Bloqueia até o SMS chegar em um order_id existente, ou até o tempo limite |
get_order | Sim | Detalhes completos do pedido e todas as mensagens recebidas |
list_orders | Sim | Seus pedidos ativos. Essencial para recuperação de falhas |
order_history | Sim | Pedidos passados com filtros de status, serviço, país e data |
cancel_order | Sim | Cancele e reembolse, se nenhum SMS chegou. Cooldown de 120s após a compra |
cancel_all_orders | Sim | Cancele em massa todos os pedidos ativos |
swap_number | Sim | Troque por um número novo, mesmo serviço e país, sem custo extra. Cooldown de 120s |
get_smsvswait_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. Useget_smspara trabalhos em lote, consultas agendadas por cron ou quando você já gerencia seu próprio loop de consulta.
wait_for_smsrecebe umorder_id, não um serviço e país. Chamecreate_orderprimeiro e depois passe oorder_idretornado. 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_availablepara 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_pricepara 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.
| Ferramenta | Auth | Descrição |
|---|---|---|
rentals_pricing | Sim | Níveis de preço de Acesso Total: durações e preços |
rentals_available | Sim | Países com estoque de aluguel, contagens e preços, por nível |
rentals_services | Sim | Serviços disponíveis para aluguel no nível Plataforma em um país, com estoque e preço |
rentals_price | Sim | Preço de varejo para uma combinação de serviço, país e duração |
create_rental | Sim | Alugue um número. Verifique disponibilidade e preço primeiro |
list_rentals | Sim | Seus aluguéis em ambos os níveis, filtráveis por status |
get_rental | Sim | Detalhes completos de um aluguel: nível, número, bloqueio de serviço, status, expiração, SMS |
extend_rental | Sim | Estenda um aluguel ativo. Cobra o preço atual do catálogo |
cancel_rental | Sim | Reembolso 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.
| Ferramenta | Auth | Descrição |
|---|---|---|
list_proxy_catalog | Sim | Tipos de pool, países e preço por GB. Comece aqui |
list_proxy_locations | Não | Cidades, estados, ASNs ou CEPs para um tipo de pool mais país. Nenhuma compra necessária |
buy_proxy | Sim | Compre tráfego de proxy em GB. Retorna credenciais e saldo restante |
list_proxies | Sim | Seus proxies com GB restante e credenciais. Retorna valores proxy_id |
generate_proxy_endpoint | Sim | Construa 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_proxy | Sim | Solicite um novo IP de saída para um proxy existente |
test_proxy | Sim | Prove que um proxy funciona. Relata IP de saída, país, cidade, ISP e latência |
get_proxy_usage | Sim | GB em cache usados e restantes, além da contagem de solicitações, para um proxy |
get_proxy_usage_history | Sim | Série de tráfego e solicitações por dia nos últimos 7 ou 30 dias |
set_proxy_targeting | Sim | Persista uma segmentação geográfica padrão em um sub-usuário de proxy |
Outros (3 ferramentas)
| Ferramenta | Auth | Descrição |
|---|---|---|
retry_order | Sim | Solicite o reenvio do SMS para o mesmo número. Nem todos os tipos de pedido suportam |
check_number | Não | Consulta 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_session | Sim | Beta, 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.
| Ferramenta | Descrição |
|---|---|
navigate_session | Navegue uma sessão de navegador ativa para uma URL |
session_viewer | URL do visualizador ao vivo e status atual para uma sessão ativa |
stop_session | Pare 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:
- Números. Uma linha móvel emitida por operadora, porque o tipo de linha é verificado.
- SMS. O código de verificação, entregue nesse número e legível por software em vez de um humano segurando um aparelho.
- Proxy. Um IP no mesmo país do número, para que os dois concordem.
- Navegador. Um ambiente limpo para conduzir a própria inscrição.
- 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:
- 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. - 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:
- Reinicie o servidor MCP.
- Liste pedidos ativos:
list_orders(status: "pending") - Verifique se há códigos:
get_sms(order_id: "abc123") - 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.ioou 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.
examples/01-quick-balance-check/: teste de fumaça MCP hospedado de 5 segundos (get_balance).examples/02-buy-sms-and-wait-for-code/: fluxo completo de verificação,find_cheapest→create_order→wait_for_sms→ cancelar em caso de timeout. O padrão canônico para agentes de IA.examples/03-claude-desktop-config/: configuração pronta para uso do Claude Desktop, além de uma transcrição de "pergunte ao Claude qual é o meu saldo" via StreamableHTTP.
SDKs e ferramentas
A mesma plataforma, a partir do que você já usa para escrever:
| Repositório | O que é |
|---|---|
| node-sdk | SDK oficial Node.js / TypeScript |
| python-sdk | SDK oficial Python |
| virtualsms-php-sdk | SDK oficial PHP |
| ruby-sdk | SDK oficial Ruby |
| dotnet-sdk | SDK oficial .NET |
| go-sdk | SDK oficial Go |
| rust-sdk | SDK oficial Rust |
| swift-sdk | SDK oficial Swift |
| java-sdk | SDK oficial Java |
| api-docs | Fonte da documentação da API REST |
| examples | Exemplos executáveis em várias linguagens |
| n8n-nodes-virtualsms | Nós da comunidade n8n |
| automation-integrations | Integrações com Make, Zapier e fluxos de trabalho |
| virtual-number-checker | Ferramenta de consulta de operadora e tipo de linha |
| claude-skill-sms-verification | Habilidade do Claude para verificação de SMS |
| cursor-rules-sms-verification | Regras 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.