WhatsApp MCP Server

Integrations

  • Leverages macOS-specific AppleScript automation to control the WhatsApp desktop application for sending messages and checking status without direct UI interaction.

  • Enables programmatic interaction with the WhatsApp desktop application on macOS, allowing for sending messages to contacts and checking the application's status through AppleScript automation.

Servidor MCP de WhatsApp

Descripción general

El servidor MCP (Protocolo de Contexto de Modelo) de WhatsApp es una aplicación Node.js que permite la interacción programática con la aplicación de escritorio de WhatsApp en macOS. Mediante la automatización de AppleScript, proporciona una interfaz sencilla para enviar mensajes y consultar el estado de WhatsApp sin necesidad de interactuar directamente con la interfaz de usuario de WhatsApp.

Características

1. Enviar mensajes a contactos

Envía mensajes de texto a contactos específicos en tu lista de contactos de WhatsApp:

  • Los mensajes se envían a través de su aplicación de escritorio WhatsApp conectada
  • Admite el formato adecuado de los mensajes, incluidos los saltos de línea.
  • Utiliza AppleScript para automatizar la interfaz de escritorio de WhatsApp

2. Verificar el estado de WhatsApp (WIP)

Verificar si la aplicación WhatsApp se encuentra actualmente ejecutándose:

  • Devuelve el estado de ejecución actual de WhatsApp
  • Ayuda a prevenir errores al intentar enviar mensajes.

3. Lista de contactos recientes (WIP)

Debido a las protecciones de privacidad de WhatsApp, esta función ofrece una funcionalidad limitada:

  • Informa a los usuarios sobre las limitaciones de privacidad de WhatsApp
  • Requiere nombres de contacto exactos para enviar mensajes

Implementación técnica

Construido con

  • @modelcontextprotocol/sdk - Servidor MCP y transporte stdio
  • Zod - Validación de esquemas
  • Módulos integrados de Node.js (child_process, util, fs)
  • Automatización de AppleScript para macOS

Arquitectura

  • Utiliza el Protocolo de Contexto de Modelo (MCP) para la comunicación de herramientas estandarizada
  • Utiliza el transporte stdio para la comunicación
  • Ejecuta comandos AppleScript para interactuar con la aplicación de escritorio WhatsApp
  • Implementa un registro de errores completo para la depuración.

Requisitos

  • sistema operativo macOS
  • Aplicación de escritorio WhatsApp instalada
  • Node.js v14.0.0 o superior
  • Conexión a Internet

Instalación

# Clone the repository git clone https://github.com/yourusername/whatsapp-mcp-server.git # Navigate to the project directory cd whatsapp-mcp-server # Install dependencies npm install

Uso

Iniciando el servidor

node index.js

Integración con Claude

Para permitir que Claude use el servidor MCP de WhatsApp, siga estos pasos:

  1. Configurar su servidor MCP
    • Instalar y configurar el servidor MCP de WhatsApp como se describe arriba
    • Asegúrese de que el servidor esté funcionando correctamente en su máquina local
  2. Configurar Claude Desktop con sus herramientas MCP
    • Modifique su archivo claude_desktop_config.json para incluir las herramientas MCP de WhatsApp
    • Este archivo normalmente se encuentra en el directorio de configuración de la aplicación Claude Desktop
    • Añade la siguiente configuración para registrar tus herramientas WhatsApp MCP:
{ "mcpServers": [ { "name": "whatsapp-mcp", "transport": { "command": "node", "args": ["path/to/your/index.js"] } } ] }
  1. Pruebe la integración
    • Crea una conversación de prueba con Claude
    • Pídele a Claude que envíe un mensaje de WhatsApp a un contacto de prueba
    • Verificar que el mensaje se envió correctamente a través de la aplicación de escritorio de WhatsApp

Herramientas MCP disponibles

1. enviar-mensaje-de-whatsapp

Envía un mensaje a un contacto específico de WhatsApp.

Parámetros:

  • contactName : Nombre completo del contacto tal como aparece en WhatsApp
  • message : Contenido del mensaje a enviar

Ejemplo de uso (a través del cliente MCP):

const response = await client.invoke("send-whatsapp-message", { contactName: "John Doe", message: "Hello, how are you today?" });

2. comprobar-estado-de-whatsapp

Comprueba si la aplicación WhatsApp se está ejecutando actualmente.

No se requieren parámetros.

Ejemplo de uso (a través del cliente MCP):

const response = await client.invoke("check-whatsapp-status", {});

3. lista-de-contactos-recientes

Proporciona información sobre las limitaciones de privacidad de WhatsApp para la lista de contactos.

No se requieren parámetros.

Ejemplo de uso (a través del cliente MCP):

const response = await client.invoke("list-recent-contacts", {});

Detalles de implementación

Automatización de AppleScript

El servidor utiliza AppleScript para automatizar la aplicación de escritorio WhatsApp:

  • Activa la aplicación WhatsApp
  • Utiliza atajos de teclado para navegar por la interfaz.
  • Busca contactos por nombre
  • Selecciona contactos usando la navegación con la flecha hacia abajo
  • Escribe y envía mensajes

Manejo de errores

Manejo y registro de errores integral:

  • Salida de error de la consola
  • Registro basado en archivos en ~/Library/Logs/whatsapp-mcp/
  • Manejo elegante de errores de ejecución de AppleScript
  • Manejo de excepciones a nivel de proceso

Uso de las herramientas MCP de WhatsApp con Claude

Una vez que hayas integrado las herramientas de WhatsApp MCP con Claude, puedes usar lenguaje natural para indicarle a Claude que:

Enviar mensajes

Ejemplos de indicaciones:

  • Envíale un mensaje de WhatsApp a John diciéndole que llegaré 10 minutos tarde a nuestra reunión.
  • Envíale un mensaje a Sarah por WhatsApp con el siguiente texto: Aquí está el documento que solicitaste.
  • Envíale un "¡Feliz cumpleaños!" a mamá por WhatsApp.

Comprobar el estado de WhatsApp

Ejemplos de indicaciones:

  • "¿Está funcionando WhatsApp en mi computadora?"
  • "Comprueba si WhatsApp está activo"
  • Verificar el estado de WhatsApp antes de enviar un mensaje

Obtener información de contacto

Ejemplos de indicaciones:

  • "¿Puedes enumerar mis contactos recientes de WhatsApp?"
  • "Muéstrame a quién le he enviado mensajes recientemente en WhatsApp"

Claude utilizará la herramienta MCP adecuada según su solicitud y le proporcionará comentarios sobre el resultado.

Limitaciones

  • Funciona solo en macOS debido a la dependencia de AppleScript
  • Requiere que esté instalada la aplicación de escritorio WhatsApp
  • La selección de contactos puede verse afectada por los cambios en la interfaz de usuario de WhatsApp
  • Acceso limitado a la lista de contactos de WhatsApp debido a protecciones de privacidad
  • Requiere la configuración adecuada de Claude para acceder a las herramientas MCP locales

Consideraciones de seguridad

  • El servidor interactúa con tu cuenta personal de WhatsApp
  • Los mensajes se envían desde su cuenta y aparecen como enviados por usted.
  • Úselo solo en entornos de confianza

Licencia

Instituto Tecnológico de Massachusetts (MIT)

Descargo de responsabilidad

Este proyecto no está afiliado con WhatsApp Inc. o Meta Platforms, Inc. Úselo a su propia discreción y de acuerdo con los términos de servicio de WhatsApp.

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Una aplicación Node.js que permite la interacción programática con el escritorio de WhatsApp en macOS, lo que permite a los usuarios enviar mensajes y verificar el estado de WhatsApp a través de la automatización de AppleScript sin interacción directa con la interfaz de usuario.

  1. Overview
    1. Features
      1. 1. Send Messages to Contacts
      2. 2. Check WhatsApp Status (WIP)
      3. 3. List Recent Contacts (WIP)
    2. Technical Implementation
      1. Built With
      2. Architecture
    3. Requirements
      1. Installation
        1. Usage
          1. Starting the Server
        2. Integrating with Claude
          1. MCP Tools Available
        3. Implementation Details
          1. AppleScript Automation
          2. Error Handling
        4. Using WhatsApp MCP Tools with Claude
          1. Send Messages
          2. Check WhatsApp Status
          3. Get Contact Information
        5. Limitations
          1. Security Considerations
            1. License
              1. Disclaimer
                ID: tu1wp7t1c0