VirtualSMS

Verificación de SMS con números de teléfono SIM físicos reales en más de 145 países y más de 2000 servicios para agentes de IA.

Documentación

VirtualSMS MCP Server

CI npm version smithery badge License: MIT GitHub Stars

Enlaces rápidos: Inicio rápido · Por qué VirtualSMS · Lo que puedes construir · Herramientas · Preguntas · Ejemplos · Registro de cambios · Política de seguridad · Estado

VirtualSMS es una plataforma de verificación de cuentas para desarrolladores y agentes de IA. Combina verificación por SMS de un solo uso, alquiler de números dedicados, proxies de países coincidentes y sesiones privadas de navegador en la nube detrás de una única API, un único servidor MCP y un único saldo prepago.

Infraestructura para agentes de IA que necesitan verificación telefónica del mundo real.

Los números son números móviles emitidos por operadores, respaldados por tarjetas SIM físicas reales en redes de operadores, no VoIP, por lo que pasan las comprobaciones de tipo de línea que rechazan los números VoIP al registrarse.

Desde un único saldo prepago puedes:

  • recibir códigos SMS de un solo uso desde $0.05
  • alquilar números dedicados de 1 a 30 días
  • comprar proxies residenciales, móviles y de centro de datos del país coincidente
  • lanzar sesiones privadas de navegador en la nube que funcionan junto a tu número y proxy (beta)

Los cuatro funcionan juntos desde un único saldo prepago, una única API y un único panel de control. Usa solo las piezas que necesites o combínalas en un único flujo de verificación.

La mayoría de los proveedores resuelven una sola parte del flujo de verificación. VirtualSMS combina números, alquileres, proxies y sesiones de navegador en la nube detrás de una única API, SDK y un servidor MCP, para que uses solo las piezas que necesites o las combines en un único flujo de trabajo.

VirtualSMS puede ser utilizado manualmente por individuos, integrarse en aplicaciones con SDK y API, o ser impulsado por agentes de IA a través de MCP. Usa la plataforma a través de una API REST, SDK oficiales para Node, Python, PHP, Ruby y .NET, un servidor MCP alojado, o herramientas de automatización como n8n.

Este servidor expone esa plataforma a cualquier cliente MCP. Construido para agentes de IA. Diseñado para flujos de trabajo agénticos. Funciona con Claude Code, Claude Desktop, Cursor, Windsurf y cualquier cliente compatible con MCP, sin necesidad de escribir código envoltorio.


Inicio rápido

Pega esto en la configuración de tu cliente MCP. Nada que instalar, no se requiere Node.js en el cliente:

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

Obtén una clave de API en virtualsms.io. Luego pregúntale a tu agente:

"Cómprame un número de Telegram en el país más barato y espera el código."

¿Prefieres ejecutarlo localmente con stdio?:

npx virtualsms-mcp

Por qué VirtualSMS

Verificar una cuenta no debería significar unir números de un proveedor, proxies de otro y sesiones de navegador de un tercero: múltiples cuentas, múltiples saldos y APIs, y soporte distribuido entre proveedores. VirtualSMS reúne esas piezas detrás de un único saldo, una única API y un único servidor MCP.

VirtualSMS combina los tres bajo una sola cuenta y te da una sola forma de manejarlos:

  • Números móviles emitidos por operadores. Respaldados por tarjetas SIM físicas reales, no VoIP, por lo que se resuelven como móviles al registrarse.
  • Proxies del país coincidente. Grupos residenciales, móviles y de centro de datos, para que el número y la IP coincidan.
  • Sesiones privadas de navegador en la nube. Beta.
  • API REST. Documentada en virtualsms.io/docs.
  • Servidor MCP alojado. Este repositorio, en vivo en https://mcp.virtualsms.io/mcp.
  • Un único saldo prepago. La verificación, los alquileres y los proxies se cargan a este saldo.

Todo lo siguiente amplía esos seis puntos.


Lo que puedes construir

Trabajos concretos que este servidor hace hoy. Cada uno es una solicitud en lenguaje natural que tu agente convierte en llamadas a herramientas:

QuieresPídele a tu agenteHerramientas que usa
Verificar una cuenta de WhatsApp desde Claude Code"Consígueme un código de WhatsApp en un número del Reino Unido"create_orderwait_for_sms
Crear una cuenta de Telegram desde Cursor"Cómprame un número de Telegram en el país más barato y espera el código"find_cheapestcreate_orderwait_for_sms
Recuperar códigos de verificación automáticamente"Espera el código y pégalo en el formulario"wait_for_sms
Probar flujos OTP durante el control de calidad"Ejecuta el flujo de registro diez veces e informa qué códigos llegaron"create_orderwait_for_smscancel_order
Aprovisionar números temporales durante CI"Dale al conjunto de pruebas un número nuevo y luego libéralo"create_orderget_smscancel_order
Mantener un número durante una semana"Alquílame un número británico por 7 días"rentals_availablecreate_rental
Hacer que el número y la IP coincidan"Cómprame un proxy del Reino Unido para que coincida con mi número del Reino Unido"list_proxy_catalogbuy_proxygenerate_proxy_endpoint
Verificar un número antes de confiar en él"¿Es este número VoIP?"check_number (no se requiere clave de API)
Recuperar un número que quedó en silencio"Ese número nunca recibió el código, cámbialo"swap_number

Las versiones ejecutables de los dos primeros se encuentran en examples/.


Configuración del cliente

Cada cliente ejecuta el mismo comando stdio npx virtualsms-mcp. Solo cambian la ubicación y el formato del archivo. La configuración alojada anterior funciona en cualquier lugar donde se admita streamableHttp y es la ruta recomendada.

Claude Desktop

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

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

Cierra y vuelve a abrir Claude Desktop. Una configuración lista para usar más una transcripción de ejemplo se encuentra en 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

Edita ~/.cursor/mcp.json:

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

Windsurf

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

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

OpenClaw

Edita ~/.openclaw/mcp.json:

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

Codex (OpenAI Codex CLI)

Edita ~/.codex/config.toml:

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

Hermes

Edita tu configuración MCP de Hermes:

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

Cline (VS Code)

Abre el panel de configuración MCP de Cline y añade:

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

Zed

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

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

Continue.dev

Edita ~/.continue/config.yaml:

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

¿Funciona esto con ChatGPT?

Sí, a través del Modo Desarrollador de ChatGPT. Abre Configuración, activa el modo Desarrollador y luego añade https://mcp.virtualsms.io/mcp como conector personalizado (planes Plus, Pro, Business, Enterprise y Edu; no disponible en el nivel gratuito). La configuración es pegar una URL en lugar de un archivo de configuración, por lo que difiere de las configuraciones de cliente anteriores. ChatGPT solo se conecta a servidores MCP remotos a través de SSE o HTTP en streaming, así que usa el endpoint alojado, no el comando stdio local. La API REST sigue disponible si prefieres crear un GPT personalizado o una Action en su lugar.


Configuración

VariableRequeridaPredeterminadoDescripción
VIRTUALSMS_API_KEYSí, para herramientas de cuentaningunoTu clave de API de VirtualSMS. Las claves llevan un prefijo vsms_
VIRTUALSMS_BASE_URLNohttps://virtualsms.ioURL base de la API
VIRTUALSMS_ENABLE_SESSIONSNoapagadoSirve 3 herramientas adicionales de control de sesión cuando se establece en 1, true o yes. Desactivado por defecto
VIRTUALSMS_ENABLE_RELEASENoapagadoSirve la herramienta de alquiler en lanzamiento temprano cuando se establece en 1, true o yes. Desactivado por defecto mientras se determinan sus términos de reembolso

Herramientas

40 herramientas por defecto. Establece VIRTUALSMS_ENABLE_SESSIONS=1 para exponer 3 más.

Los nombres de las herramientas se muestran a continuación sin el prefijo virtualsms_ para mayor legibilidad. Los nombres reales en el cable tienen prefijo: virtualsms_create_order, virtualsms_get_sms, y así sucesivamente.

Activación y cuenta (18 herramientas)

La superficie principal de verificación por SMS: descubre un servicio, cotízalo, compra un número, obtén el código.

HerramientaAutenticaciónDescripción
list_servicesTodos los servicios de verificación disponibles. Filtro opcional search
list_countriesTodos los países disponibles. Filtro opcional service
get_priceNoPrecio y disponibilidad para un par de servicio y país
find_cheapestNoPaíses más baratos para un servicio, ordenados por precio, con recuentos reales de stock
search_servicesBúsqueda de servicios en lenguaje natural. "telega" encuentra Telegram
get_balanceSaldo de la cuenta en USD
get_profileCorreo electrónico, enlace de Telegram, saldo, gasto de por vida, pedidos totales, claves API activas
get_statsPedidos, tasa de éxito, gasto y desglose por estado/servicio/país
get_transactionsHistorial de transacciones con tipo, rango de fechas y filtros de paginación
create_orderCompra un número para un servicio y país. Devuelve order_id y phone_number
get_smsConsulta un pedido para obtener el código. Úsalo para trabajos por lotes y cron
wait_for_smsBloquea hasta que el SMS llegue a un order_id existente, o hasta el tiempo de espera
get_orderDetalle completo del pedido más cada mensaje recibido
list_ordersTus pedidos activos. Esencial para la recuperación ante caídas
order_historyPedidos pasados con filtros de estado, servicio, país y fecha
cancel_orderCancela y reembolsa, si no llegó ningún SMS. Enfriamiento de 120s después de la compra
cancel_all_ordersCancelación masiva de todos los pedidos activos
swap_numberCambia por un número nuevo, mismo servicio y país, sin cargo adicional. Enfriamiento de 120s

get_sms vs wait_for_sms: wait_for_sms es la opción recomendada por defecto para flujos de trabajo interactivos de agentes. Bloquea y regresa en el momento en que el SMS llega a través de WebSocket. Usa get_sms para trabajos por lotes, sondeo impulsado por cron, o cuando ya administras tu propio ciclo de sondeo.

wait_for_sms toma un order_id, no un servicio y país. Llama a create_order primero, luego pasa el order_id devuelto. Ese es el flujo de comprar y esperar en dos pasos.

Alquileres (9 herramientas)

Mantén un número por día en lugar de comprar una verificación única. Dos niveles:

  • Acceso completo: inventario local de SIM, para un número completo que funciona con cualquier servicio. Cada país en stock hoy lista 1, 7 y 30 días, con precios que varían por país. Las duraciones y los precios no están codificados aquí a propósito: llama a rentals_available para la lista en vivo por país y trátala como autoritativa.
  • Plataforma: obtenido a través de nuestra red global de proveedores, bloqueado a un servicio elegido, con duraciones de 1, 3 o 7 días. Llama a rentals_price para el precio minorista exacto de una combinación (servicio, país, duración).

El stock, las duraciones y los precios difieren por nivel y por país, así que llama a rentals_available antes de comprometerte con cualquiera de los dos. Un alquiler activo se puede extender con extend_rental al precio actual del catálogo, en las mismas duraciones que permita su nivel.

Ambos niveles tienen los mismos términos de reembolso: cancela para un reembolso completo dentro de los 20 minutos posteriores a la compra y antes de que llegue el primer SMS. Las cancelaciones de plataforma están además sujetas a una retención mínima de 2 minutos, por lo que una cancelación dentro de los primeros 2 minutos es rechazada y debe reintentarse.

HerramientaAutenticaciónDescripción
rentals_pricingNiveles de precios de Full Access: duraciones y precios
rentals_availablePaíses con stock de alquiler, cantidades y precios, por nivel
rentals_servicesServicios disponibles para alquiler de nivel Platform en un país, con stock y precio
rentals_pricePrecio minorista para una combinación de servicio, país y duración
create_rentalAlquila un número. Comprueba disponibilidad y precio primero
list_rentalsTus alquileres en ambos niveles, filtrables por estado
get_rentalDetalle completo de un alquiler: nivel, número, bloqueo de servicio, estado, vencimiento, SMS
extend_rentalExtiende un alquiler activo. Cobra el precio actual del catálogo
cancel_rentalReembolso completo, dentro de los 20 minutos posteriores a la compra y antes de cualquier SMS
Proxy (10 herramientas)

Proxies del país correspondiente, para que el número y la IP coincidan. Tres grupos: residencial, móvil y centro de datos. Compra tráfico por GB y luego genera una cadena de conexión.

HerramientaAutenticaciónDescripción
list_proxy_catalogTipos de grupo, países y precio por GB. Empieza aquí
list_proxy_locationsNoCiudades, estados, ASN o códigos postales para un tipo de grupo más país. No se requiere compra
buy_proxyCompra tráfico de proxy en GB. Devuelve credenciales y saldo restante
list_proxiesTus proxies con GB restante y credenciales. Devuelve valores de proxy_id
generate_proxy_endpointConstruye una cadena de conexión lista para usar: país, estado, ciudad, código postal o segmentación por ASN, rotativo o fijo, HTTP o SOCKS5
rotate_proxySolicita una IP de salida nueva para un proxy existente
test_proxyDemuestra que un proxy funciona. Informa de IP de salida, país, ciudad, ISP y latencia
get_proxy_usageGB en caché usados y restantes, más el recuento de solicitudes, para un proxy
get_proxy_usage_historySeries de tráfico y solicitudes por día durante los últimos 7 o 30 días
set_proxy_targetingPersiste una geosegmentación predeterminada en un subusuario de proxy
Otros (3 herramientas)
HerramientaAutenticaciónDescripción
retry_orderSolicita que se reenvíe el SMS al mismo número. No todos los tipos de pedido lo admiten
check_numberNoConsulta de operador y tipo de línea para cualquier número E.164: móvil, fijo o VoIP, además del riesgo de spam
start_manual_registration_sessionBeta, solo con invitación. Inicia un navegador en la nube del país correspondiente que tú mismo controlas en un visor en vivo. La navegación dirigida por agente es una opción independiente (las herramientas de sesión). Únete a https://t.me/VirtualSMS_io para acceder a la beta
Herramientas de sesión (3 más, desactivadas por defecto)

Beta, solo con invitación. La pila del navegador es temprana. Funciona, pero la forma de estas herramientas aún puede cambiar y no hay garantía de estabilidad todavía. Únete a https://t.me/VirtualSMS_io para acceder a la beta y recibir actualizaciones.

Se sirve solo cuando VIRTUALSMS_ENABLE_SESSIONS está configurado como 1, true o yes. No se expone en la superficie predeterminada.

HerramientaDescripción
navigate_sessionNavega una sesión de navegador activa a una URL
session_viewerURL del visor en vivo y estado actual de una sesión activa
stop_sessionDetiene una sesión de navegador activa y la libera

Flujos de trabajo típicos

Obtener un código de verificación

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}

Encuentra primero el país más barato

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")

¿El número no recibe? Cámbialo

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

Alquila un número por un mes

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}

El stock es por país y por nivel, así que primero descubre y luego alquila. rentals_available(tier: "platform") cubre un catálogo diferente, bloqueado por servicio.

Combina un número con un proxy del país correspondiente

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")

Preguntas

¿Qué es la infraestructura de verificación de cuentas?

La infraestructura de verificación de cuentas es la pila que lleva una cuenta real a través de un flujo de registro que exige un número de teléfono. Tiene cinco capas, y una brecha en cualquiera de ellas hace fallar toda la cadena:

  1. Números. Una línea móvil emitida por un operador, porque se comprueba el tipo de línea.
  2. SMS. El código de verificación, entregado a ese número y legible por software en lugar de por un humano sosteniendo un teléfono.
  3. Proxy. Una IP en el mismo país que el número, para que ambos coincidan.
  4. Navegador. Un entorno limpio para llevar a cabo el propio registro.
  5. Automatización. Una API o un agente que ejecuta la cadena de principio a fin, sin supervisión.

La mayoría de los proveedores venden las dos primeras capas y te dejan conseguir el resto, que es exactamente donde el número, la IP y el navegador dejan de contar la misma historia. VirtualSMS proporciona la infraestructura detrás de las cinco.

VirtualSMS es una plataforma de verificación de cuentas para individuos, desarrolladores y agentes de IA. Combina verificación SMS de un solo uso, alquiler de números dedicados, proxies del país correspondiente y sesiones privadas de navegador en la nube detrás de una API, un servidor MCP y un saldo prepagado.

¿Qué es un servidor MCP para verificación SMS?

MCP (Model Context Protocol) es un estándar abierto que permite a un cliente de IA llamar a herramientas externas. Un servidor MCP para verificación SMS expone operaciones de número de teléfono y código de verificación como herramientas que un agente puede llamar directamente, de modo que el agente compra el número, espera el código y lo lee sin ningún código de conexión por tu parte. Este repositorio es ese servidor para VirtualSMS: 40 herramientas que cubren verificación, alquileres y proxies. Si no estás manejando ningún agente, las mismas operaciones están disponibles como una API REST de verificación simple.

¿Cuándo debería usar esto?

  • Tu agente de IA necesita iniciar sesión o registrar una cuenta que exige un número de teléfono.
  • Estás probando un flujo de OTP o registro y quieres números nuevos bajo demanda en lugar de un cajón de SIM de prueba.
  • Necesitas recuperar un código de verificación automáticamente, en CI o en un trabajo sin supervisión.
  • Necesitas un número y una IP del país correspondiente que coincidan entre sí.
  • Estás manejando automatización de registro en un navegador y prefieres que el número, la IP y el navegador vengan de un solo lugar en lugar de tres.
  • Necesitas un número de teléfono temporal para un código, o uno dedicado que conservas hasta 30 días.
  • Quieres precios por código desde $0.05 sin suscripción y sin alquiler mensual de número.

¿Cuándo NO debería usar esto?

Respuestas honestas, para que no pierdas una tarde:

  • Necesitas enviar SMS. Esta plataforma recibe; no envía. Usa un proveedor de mensajería como Twilio.
  • Necesitas un número permanente para tu negocio. Los números de verificación son temporales por diseño, y los alquileres duran días, no años. Compra una línea real a un operador.
  • Necesitas códigos en un número que ya posees. No hay portabilidad. Los números provienen de nuestro inventario.
  • Estás ejecutando campañas de marketing A2P. Herramienta completamente equivocada.
  • Estás intentando evadir los términos de servicio de una plataforma. Que tu uso cumpla con los términos del servicio contra el que verificas es tu responsabilidad, no la nuestra.

¿Pueden Claude o Cursor recibir códigos de verificación SMS?

Sí, a través de este servidor. Claude Code, Claude Desktop, Cursor, Windsurf, Cline, Zed, Continue.dev, Codex, OpenClaw y Hermes son todos clientes MCP, y cada uno está a un pegado de configuración de distancia (consulta Configuración del cliente). Una vez instalado, «compra un número de Telegram y espera el código» es una solicitud que el agente puede llevar a cabo de principio a fin. ChatGPT también puede acceder, a través de conectores personalizados del Modo Desarrollador (consulta ¿Funciona esto con ChatGPT?), o a través de la API REST si prefieres no habilitar el Modo Desarrollador.

¿Cómo reciben los agentes de IA los códigos OTP automáticamente?

Dos llamadas a herramientas. create_order compra un número para un servicio y país determinados y devuelve un order_id. wait_for_sms se bloquea entonces en ese order_id y devuelve el resultado en el momento en que llega el código, enviado por WebSocket, normalmente en 2 a 15 segundos. El agente nunca sondea, nunca duerme en un bucle y nunca necesita que un humano lea un teléfono. Si prefieres manejar tu propio bucle, get_sms sondea un solo pedido en su lugar.

¿En qué se diferencia esto de Twilio?

Twilio es una plataforma de comunicaciones completa: enviar y recibir SMS y voz, números de larga duración, campañas A2P, todo. VirtualSMS hace un solo trabajo, que es recibir códigos de verificación bajo demanda. Las diferencias prácticas:

  • Tipo de línea. Los números de Twilio son VoIP. Muchos servicios rechazan números VoIP en el registro. Los números de VirtualSMS son tarjetas SIM físicas reales en redes de operadores, por lo que se resuelven como móviles.
  • Forma de precios. Twilio te cobra por un número cada mes, lo uses o no. VirtualSMS cobra por código desde $0.05, sin suscripción.
  • Dirección. Twilio envía y recibe. Esto recibe.

Si necesitas enviar mensajes, usa Twilio. Si necesitas recibir un código de verificación, esto está construido específicamente para ello.

¿Por qué tarjetas SIM físicas reales en lugar de VoIP?

Los sistemas de verificación comprueban el tipo de línea del número que les das. Los números VoIP son baratos y desechables a escala, por lo que se correlacionan con el fraude, y una gran parte de los servicios los rechazan directamente en el registro. Las tarjetas SIM físicas reales están en redes de operadores y se resuelven como móviles, que es exactamente lo que buscan esas comprobaciones: un número no VoIP que se comporta como un teléfono real.

No tienes que creerlo sin más. check_number realiza una consulta de operador y tipo de línea en cualquier número E.164, no necesita clave de API, y te dirá si un número se lee como móvil, fijo o VoIP.


Alternativas y comparaciones

Los desarrolladores que buscan textverified mcp, sms-activate mcp, 5sim mcp, daisysms mcp o smspool mcp suelen hacer una pregunta: ¿qué proveedor de verificación SMS puede manejar un agente de IA de forma nativa? Esta sección responde eso sin un marcador.

VirtualSMS publica este servidor MCP, por lo que cualquier cliente MCP lo llama directamente sin código de envoltura: 40 herramientas, más de 2500 servicios, más de 145 países, desde $0.05 por código, en tarjetas SIM físicas reales, además de alquiler de números y proxies del país correspondiente desde el mismo saldo.

SMS-Activate cerró en diciembre de 2025. Si tu integración apuntaba allí, ya no existe, y la migración es una nueva clave de API y una nueva URL base en lugar de una reescritura: la forma del trabajo, comprar un número y luego leer el código, es la misma aquí.

TextVerified, 5SIM, DaisySMS y SMSPool son todos proveedores activos de verificación SMS, cada uno con su propia API, precios, cobertura y términos. Consulta su documentación actual para ver qué ofrecen hoy.

Deliberadamente no publicamos una tabla comparativa de precios, recuentos de servicios o cobertura de los competidores. Esos números cambian semana a semana, no tenemos una visión privilegiada del inventario de nadie más, y una tabla desactualizada disfrazada de investigación es peor que ninguna tabla. Los números de VirtualSMS anteriores son nuestros y los respaldamos. Compáralos con lo que estés usando ahora.


Cómo funciona

WebSocket y sondeo

wait_for_sms usa un sistema de entrega de dos niveles:

  1. WebSocket, instantáneo. Se conecta a wss://virtualsms.io/ws/orders?order_id=xxx&api_key=your_key. Cuando llega el SMS, el servidor lo envía en tiempo real. Entrega típica: 2 a 15 segundos.
  2. Respaldo de sondeo. Si el WebSocket no se conecta o se cae, la herramienta recurre al sondeo cada 5 segundos durante el tiempo de espera restante.

El campo delivery_method en la respuesta te indica qué ruta se usó: websocket, polling o instant cuando el código ya había llegado antes de que llamaras.

Este servidor envía a través de un WebSocket mantenido abierto; nunca te devuelve la llamada. Si prefieres que VirtualSMS envíe eventos POST a una URL que posees, la plataforma ejecuta un sistema separado de suscripción a webhooks, configurado desde el panel y manejado por la API REST en lugar de por este servidor MCP.

Arquitectura

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

Recuperación ante fallos

Si tu sesión se interrumpe a mitad de la verificación:

  1. Reinicia el servidor MCP.
  2. Lista los pedidos activos: list_orders(status: "pending")
  3. Comprueba si hay códigos: get_sms(order_id: "abc123")
  4. Cancela si no es necesario: cancel_order(order_id: "abc123")

wait_for_sms siempre devuelve order_id, incluso en caso de timeout, para que puedas recuperarte.


Endpoint alojado y estado

  • Endpoint MCP alojado: https://mcp.virtualsms.io/mcp. StreamableHTTP solo TLS, con Cloudflare al frente.
  • Estado y disponibilidad de la plataforma: virtualsms.io/status, consultado en vivo: sitio web y panel, pasarela SMS, API REST, bot de Telegram y base de datos. El endpoint MCP alojado se ejecuta como un servicio independiente y aún no aparece como fila en esa página.
  • SLA objetivo: 99,9% en la ruta MCP alojada. Un objetivo que nos imponemos a nosotros mismos más que una garantía contractual, y que la página de estado anterior aún no mide.
  • Cobertura: 145+ países en línea, 2500+ servicios indexados.
  • Retención de datos: los cuerpos de los mensajes SMS se conservan durante 7 días y luego se eliminan permanentemente. Los metadatos de los pedidos (número de teléfono, servicio, país, marcas de tiempo) se conservan durante toda la vida de tu cuenta. Consulta SECURITY.md para más detalles.
  • Divulgación de vulnerabilidades: envía un correo a security@virtualsms.io o abre un aviso de seguridad privado.

👉 Regístrate en VirtualSMS.io


Ejemplos

En este repositorio hay tres ejemplos ejecutables. Cada uno está a node run.mjs de distancia una vez que se establece VIRTUALSMS_API_KEY.

SDKs y herramientas

La misma plataforma, desde lo que ya uses para escribir:

RepositorioQué es
node-sdkSDK oficial de Node.js / TypeScript
python-sdkSDK oficial de Python
virtualsms-php-sdkSDK oficial de PHP
ruby-sdkSDK oficial de Ruby
dotnet-sdkSDK oficial de .NET
go-sdkSDK oficial de Go
rust-sdkSDK oficial de Rust
swift-sdkSDK oficial de Swift
java-sdkSDK oficial de Java
api-docsFuente de documentación de la API REST
examplesEjemplos ejecutables en varios lenguajes
n8n-nodes-virtualsmsNodos de la comunidad de n8n
automation-integrationsIntegraciones con Make, Zapier y flujos de trabajo
virtual-number-checkerHerramienta de consulta de operador y tipo de línea
claude-skill-sms-verificationHabilidad de Claude para verificación por SMS
cursor-rules-sms-verificationReglas de Cursor para verificación por SMS

Compilar y 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

Dos transportes comparten una misma tabla de herramientas: src/index.ts (stdio) y src/http-server.ts (StreamableHTTP). Las definiciones y los manejadores de herramientas viven en src/tools.ts. Si añades una herramienta, conéctala a ambos transportes. src/__tests__/transport-parity.test.ts hace fallar la compilación si lo olvidas, y src/__tests__/docs-tool-names.test.ts falla si la documentación menciona una herramienta que no existe.

Problemas y pull requests: github.com/virtualsms-io/mcp-server.

Las notas de versión de v1.0.0 a v1.3.1 están en CHANGELOG.md.

Seguridad

Las claves de API se pasan mediante el encabezado x-api-key (alojado) o la variable de entorno VIRTUALSMS_API_KEY (stdio local), y se pueden rotar desde tu cuenta en virtualsms.io. Política completa, detalles de retención y proceso de divulgación: SECURITY.md.

Reporta vulnerabilidades a security@virtualsms.io.

Licencia

MIT. Consulta LICENSE.

Creado por VirtualSMS.io. Verificación de cuentas para desarrolladores y agentes de IA, con tarjetas SIM físicas reales: 2500+ servicios · 145+ países · desde $0.05 por código.