io.github.kalki-kgp/whatsapp-macos
WhatsApp MCP for macOS - Read messages from local DB, send via WhatsApp Web.
Versions
0.1.0latest0.1.1Tools 8
whatsapp_status Check WhatsApp connection status. Returns current status: 'connected', 'qr_pending', 'disconnected', or 'bridge_offline'. If QR code is needed, returns a data URL you can open in a browser to scan. Call this before sending messages to ensure WhatsApp is connected.
whatsapp_search_contacts Search WhatsApp contacts by name or phone number. Returns matching contacts with their JID, display name, and phone number. Use this to find a contact before reading their messages or sending them a message. Args: query: Name or phone number to search for (partial match supported).
whatsapp_list_chats List recent WhatsApp chats ordered by last message time. Args: limit: Number of chats to return (max 50). chat_type: Filter by 'dm', 'group', or 'all'.
whatsapp_get_messages Get messages from a specific WhatsApp chat. Args: chat_jid: JID of the chat (from whatsapp_search_contacts or whatsapp_list_chats). after: Only messages after this datetime (ISO 8601). Defaults to 24h ago. before: Only messages before this datetime (ISO 8601). Defaults to now. limit: Max messages to return (max 200). search_text: Optional text to filter messages.
whatsapp_search_messages Search for messages containing specific text across all chats. Args: query: Text to search for (case-insensitive). chat_jid: Optional - restrict search to a specific chat. limit: Max results (max 50).
whatsapp_unread Get a summary of all unread WhatsApp messages. Returns chats with unread messages and recent message previews. Great for "catch me up" or "what did I miss" requests.
whatsapp_send Send a WhatsApp message. IMPORTANT: 1. First use whatsapp_status to ensure WhatsApp is connected. 2. Use whatsapp_search_contacts to get the correct JID. 3. Always confirm with the user before sending. Args: recipient_jid: The JID from whatsapp_search_contacts. message: The text message to send.
whatsapp_incoming Get recent incoming WhatsApp messages from the live connection. These are real-time messages, not from the local database. Useful for checking new messages that just arrived. Args: since_minutes: Look back N minutes (default 5, max 60).
Permissions 4
network medium filesystem low database medium env_vars low