Servidor MCP de WhatsApp en la API Cloud oficial
En resumen: ZapClaw publica un servidor MCP para que los agentes de IA que crea tu empresa puedan leer y enviar mensajes de WhatsApp en tu propio número. Funciona sobre la API Cloud oficial de Meta, cada envío pasa por las mismas protecciones que la API REST y el número sigue funcionando en la app de WhatsApp Business de tu celular.
Beta: el servidor MCP y las claves de agente de IA están en fase beta y todavía no están disponibles para todas las cuentas. El acceso se abrirá de forma gradual, pronto.
Crea la clave de tu agente de IA en el panel y luego agrega el servidor al cliente en el que corre tu agente.
Crear cuenta Ver los pasos de instalaciónQué pueden hacer tus agentes
- Atención al cliente: leer la conversación, consultar el contacto y responder dentro de la ventana de 24 horas, o dejar el resto en manos de tu equipo.
- Reservas y pedidos: confirmar, reprogramar o hacer seguimiento con una plantilla aprobada, y luego comprobar si el mensaje llegó.
- Notificaciones: enviar los avisos que el cliente espera, como un aviso de envío o un recordatorio de cita, desde una automatización como n8n.
Son tus propios agentes, que trabajan para tus propios clientes en tu propio número.
Tu número sigue funcionando en la app
ZapClaw conecta el número mediante la Coexistencia de WhatsApp, así que tu equipo sigue atendiendo en la app de WhatsApp Business mientras tus agentes usan el mismo número a través de la API oficial. Cuando alguien de tu equipo responde desde la app, una clave autónoma deja de enviar a ese contacto durante 24 horas por defecto, para que el agente no le hable encima a una persona.
Qué necesitas para conectar un número.
Instálalo en tu cliente
Primero crea una clave de agente de IA (consulta Crear una clave de agente de IA). El paquete es @zapclaw/whatsapp-mcp, el endpoint remoto es https://mcp.zapclaw.app/mcp y el nombre en el registro es app.zapclaw/whatsapp. No dejes la clave en archivos compartidos: usa una variable de entorno, un archivo de clave o un prompt, como en los bloques de abajo.
Claude Code (stdio)
claude mcp add zapclaw --env ZAPCLAW_API_KEY_FILE=/path/to/zapclaw.key -- npx -y @zapclaw/whatsapp-mcp@1
Para un proyecto que compartes, usa .mcp.json con una expansión, así la clave nunca termina en el repositorio.
{
"mcpServers": {
"zapclaw": {
"command": "npx",
"args": [
"-y",
"@zapclaw/whatsapp-mcp@1"
],
"env": {
"ZAPCLAW_API_KEY": "${ZAPCLAW_API_KEY}"
}
}
}
}
En Windows nativo el comando es cmd y los argumentos son ["/c", "npx", "-y", "@zapclaw/whatsapp-mcp@1"].
Claude Code (remote)
claude mcp add --transport http zapclaw https://mcp.zapclaw.app/mcp --header "X-API-Key: ${ZAPCLAW_API_KEY}"
Claude Desktop
Descarga zapclaw-whatsapp.mcpb de los releases de GitHub y ábrelo. Claude Desktop pide la clave como un campo sensible y la guarda. La alternativa es la configuración en JSON:
{
"mcpServers": {
"zapclaw": {
"command": "npx",
"args": [
"-y",
"@zapclaw/whatsapp-mcp@1"
],
"env": {
"ZAPCLAW_API_KEY": "${ZAPCLAW_API_KEY}"
}
}
}
}
Cursor
En ~/.cursor/mcp.json, el servidor local:
{
"mcpServers": {
"zapclaw": {
"command": "npx",
"args": [
"-y",
"@zapclaw/whatsapp-mcp@1"
],
"env": {
"ZAPCLAW_API_KEY": "${env:ZAPCLAW_API_KEY}"
}
}
}
}
O, en .cursor/mcp.json, el remoto:
{
"mcpServers": {
"zapclaw": {
"url": "https://mcp.zapclaw.app/mcp",
"headers": {
"X-API-Key": "${env:ZAPCLAW_API_KEY}"
}
}
}
}
VS Code
En .vscode/mcp.json, con un prompt de contraseña en lugar de una clave guardada:
{
"inputs": [
{
"type": "promptString",
"id": "zapclaw-key",
"description": "ZapClaw AI agent key",
"password": true
}
],
"servers": {
"zapclaw": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@zapclaw/whatsapp-mcp@1"
],
"env": {
"ZAPCLAW_API_KEY": "${input:zapclaw-key}"
}
}
}
}
Codex
En ~/.codex/config.toml:
[mcp_servers.zapclaw] command = "npx" args = ["-y", "@zapclaw/whatsapp-mcp@1"] [mcp_servers.zapclaw.env] ZAPCLAW_API_KEY_FILE = "/path/to/zapclaw.key"
n8n
Usa el nodo MCP Client Tool con esta configuración:
- Transport: HTTP Streamable, endpoint
https://mcp.zapclaw.app/mcp. - Authentication: Header Auth, con el nombre
X-API-Keyy el valor de una clave de agente de IA autónoma. - Tools to Include: Selected, y elige solo las herramientas que el agente necesita.
El mensaje del contacto ya llega a tu flujo por el webhook de ZapClaw, así que el agente puede responder sin las herramientas de conversación. El flujo de n8n, listo para importar.
OpenAI Responses API
{
"type": "mcp",
"server_label": "zapclaw",
"server_url": "https://mcp.zapclaw.app/mcp",
"authorization": "<agent key>",
"require_approval": "always"
}
La clave viaja con cada solicitud a través de OpenAI, así que usa una clave limitada a los números y a los permisos que el agente necesita.
Fija la versión
Todos los bloques de arriba siguen la versión principal, @zapclaw/whatsapp-mcp@1. Si no quieres actualizaciones automáticas, usa la forma exacta, @zapclaw/whatsapp-mcp@1.0.0.
Iniciar sesión con OAuth (claude.ai, ChatGPT y otros)
Los clientes que inician sesión por ti, en lugar de guardar una clave, se conectan a la misma dirección, https://mcp.zapclaw.app/mcp. Inicias sesión en ZapClaw, apruebas la conexión, eliges los números y los permisos que recibe y puedes revocarla en cualquier momento en Aplicaciones conectadas, en el panel. No se copia ninguna clave a ningún sitio.
- claude.ai y Claude Desktop: Configuración, Conectores, Añadir conector personalizado, introduce
https://mcp.zapclaw.app/mcp, luego inicia sesión en ZapClaw y aprueba la conexión. - Claude Code: ejecuta
claude mcp add --transport http zapclaw https://mcp.zapclaw.app/mcpy después/mcppara iniciar sesión. - ChatGPT: Plugins, Añadir servidor MCP personalizado, introduce la dirección y elige OAuth.
- Cursor: en
mcp.json, da al servidor solo"url": "https://mcp.zapclaw.app/mcp", sin cabeceras, y Cursor abre el inicio de sesión. - API Responses de OpenAI y Codex: define
authorizationcon un token de acceso OAuth que tu propia aplicación obtuvo al iniciar sesión.
Un token de acceso se emite para un único recurso, https://mcp.zapclaw.app/mcp, y se rechaza en cualquier otro sitio. Una conexión dura como máximo 90 días; después vuelves a iniciar sesión.
Un cliente que se registra solo puede usar direcciones de retorno que sean URL https, o URL http en localhost o 127.0.0.1 para apps que se ejecutan en tu ordenador. Cualquier otra dirección se rechaza, así que el inicio de sesión solo puede volver a la app que aprobaste.
Las once herramientas
Cada herramienta necesita un permiso en la clave: leer los datos de la cuenta, leer conversaciones o enviar mensajes.
| Herramienta | Qué hace | Permiso |
|---|---|---|
zapclaw_whoami | Muestra a qué cuenta se conecta la clave, con su modo y sus permisos. | account:read |
whatsapp_list_numbers | Lista los números de WhatsApp que la clave puede usar. | account:read |
whatsapp_list_templates | Lista las plantillas aprobadas, con el límite de longitud de cada variable. | account:read |
whatsapp_check_contact | Comprueba un contacto antes de enviar: si la ventana de 24 horas está abierta y si el contacto dejó de recibir mensajes de marketing. | account:read |
whatsapp_list_conversations | Lista las conversaciones recientes. | conversations:read |
whatsapp_read_conversation | Lee una conversación. | conversations:read |
whatsapp_send_text | Envía un mensaje de texto dentro de la ventana de 24 horas. | messages:send |
whatsapp_send_template | Envía una plantilla aprobada, también fuera de la ventana. | messages:send |
whatsapp_send_media | Envía una imagen, un documento u otro archivo mediante un enlace https, dentro de la ventana. | messages:send |
whatsapp_mark_read | Marca un mensaje recibido como leído. | messages:send |
whatsapp_get_send_status | Comprueba si un envío fue entregado, leído o falló. | account:read |
Hecho para que un agente no queme tu número
Las reglas de abajo se ejecutan en el servidor de ZapClaw en cada envío, venga de cualquier cliente, incluso de un simple curl. Un cliente también puede pedir a una persona que confirme cada envío, pero nada depende de eso.
- La ventana de 24 horas se comprueba aquí. El texto y los archivos solo salen mientras la ventana del cliente está abierta; fuera de ella, solo sale una plantilla aprobada, revisada y armada antes.
- Una plantilla sigue siendo una plantilla. Cada variable tiene un límite de longitud y no admite saltos de línea, así que una plantilla genérica no puede llevar texto libre.
- Un destinatario por envío. Ninguna herramienta recibe una lista de números.
- Límites en cada clave, número y cliente. Por defecto, una clave de asistente envía hasta 60 mensajes por hora y 300 por día, y una clave autónoma hasta 300 por hora y 3,000 por día. Puedes cambiarlos dentro de los rangos que fija ZapClaw.
- Se respetan las bajas. Una plantilla de marketing a un contacto que dejó de recibir mensajes de marketing se rechaza antes de llegar a Meta.
- Una persona aprueba los envíos riesgosos. El primer mensaje a alguien que nunca escribió, el marketing fuera de la ventana y un envío después de que el agente leyó otras conversaciones esperan aprobación (claves de asistente) o se rechazan (claves autónomas).
- Los demás contactos siguen siendo privados. Si una clave listó o leyó otras conversaciones en los últimos 15 minutos, un envío a un contacto distinto queda retenido o se rechaza.
- El agente le cede el paso a tu equipo. Después de que alguien responde desde la app de WhatsApp Business, una clave autónoma hace una pausa con ese contacto.
- Se vigila la salud del número. Cuando baja su calificación de calidad, se detienen el contacto en frío y el marketing, y con la calificación más baja solo salen las respuestas dentro de la ventana.
- Puedes detenerlo todo. Revoca una clave y se detiene al instante, o usa Pausar envíos de agentes de IA para toda la cuenta. Una clave de simulación te permite probar el servidor sin riesgo, porque no envía nada.
Cómo funcionan las aprobaciones
Cuando una regla pide una persona, el mensaje no se envía. La herramienta responde que el envío está retenido y entrega un enlace de aprobación y un código corto. Abre la página de aprobación en el panel, lee el mensaje completo, el destinatario, el número y los motivos, y elige Aprobar y enviar o Rechazar.
- Aprueba desde la insignia del panel o desde el correo, y comprueba que el código coincida con el que te mostró el agente. Un enlace parecido, mostrado por un agente comprometido, no lleva a ninguna parte, porque la decisión ocurre solo dentro de ZapClaw.
- Nada queda oculto. La página muestra el mensaje completo, con saltos de línea y sin recortes, y resalta el texto que vino de otras conversaciones que leyó el agente.
- Varios a la vez, uno por uno. Puedes seleccionar envíos retenidos y decidir sobre ellos en conjunto, pero cada uno se muestra completo y se vuelve a comprobar al aprobarlo.
- Un envío retenido espera 60 minutos. Pasado ese tiempo caduca y no se envía nada.
Crear una clave de agente de IA
- En el panel, abre Claves de API y elige Crear clave de agente de IA.
- Ponle un nombre a la clave y elige su modo: Asistente para un asistente de IA como Claude, ChatGPT, Cursor o Codex con una persona en el circuito, o Autónomo para una automatización como n8n que corre sin que nadie la mire.
- Elige qué puede hacer la clave (leer los datos de la cuenta, leer conversaciones, enviar mensajes) y qué números puede usar. Las claves autónomas empiezan sin lectura de conversaciones.
- Copia la clave, que se muestra una sola vez, en una variable de entorno o en un archivo de clave.
La protección cubre los envíos hechos a través de ZapClaw; un agente que puede leer conversaciones y además navegar por la web o ejecutar comandos puede llevar lo que leyó a otro lugar, así que da lectura solo a los agentes que la necesitan.
Preguntas
¿En qué se diferencia del servidor MCP de WhatsApp de la propia Meta?
El servidor de Meta está en beta, requiere acceso de administrador a tu app de Meta y la propia Meta lo describe como pensado para desarrollo y pruebas. El de ZapClaw está hecho para los agentes que corres en producción: protecciones en cada envío, aprobación en el panel y el número conservado en la app de WhatsApp Business.
¿Y los servidores MCP de WhatsApp no oficiales?
Esos servidores manejan WhatsApp Web, lo que va contra los términos de WhatsApp y pone el número en riesgo de ser bloqueado. ZapClaw usa la API Cloud oficial de Meta.
¿El servidor MCP tiene un precio propio?
No. Los envíos se cobran como cualquier otro envío por la API, y Meta te cobra directamente las tarifas de sus mensajes de WhatsApp. Todos los planes y precios.
¿Qué planes lo incluyen?
Todos, cuando el acceso llegue a tu cuenta: el servidor está en fase beta y se abre a las cuentas de forma gradual. Los mensajes que envía un agente cuentan para la asignación de mensajes de tu plan, como cualquier envío por la API.
¿Puedo ofrecer con él un asistente de IA de uso general al público?
No. El servidor es para los agentes que una empresa crea para sus propios clientes. Desde el 15 de enero de 2026, Meta permite que los proveedores de asistentes de IA de uso general los ofrezcan en WhatsApp solo donde Meta está obligada por ley a permitirlo, mientras que las demás empresas conservan los precios actuales.
Para ir más lejos
- La documentación de la API (en inglés), con todos los endpoints, errores y códigos.
- La especificación OpenAPI, que las herramientas llaman.
- El código fuente en GitHub.
- El paquete en npm.
- n8n en WhatsApp, cuando tu agente es un flujo.
- Un webhook para tu propia IA, para recibir todos los mensajes.
Conecta tus agentes a tu número de WhatsApp
Conecta tu número, crea una clave de agente de IA y agrega el servidor a tu cliente.
Crear cuenta Leer la documentación (en inglés)