WAHA MCP Server

$git clone https://github.com/dudu1111685/waha-mcp.git cd waha-mcp npm install npm run build
README.md

WhatsApp HTTP API integration for Claude Desktop & MCP-compatible clients

WAHA MCP Server

WhatsApp HTTP API integration for Claude Desktop & MCP-compatible clients

DocumentationInstallationConfiguration🤖 Claude Code SetupTools Reference


🚀 What is WAHA MCP?

WAHA MCP Server bridges the powerful WAHA (WhatsApp HTTP API) with AI assistants like Claude Desktop, enabling seamless WhatsApp automation through the Model Context Protocol (MCP).

✨ Key Features

  • 📱 Complete WhatsApp Control - Send/receive messages, manage chats, create groups
  • 🎯 63 Tools - Comprehensive API coverage for sessions, messaging, contacts, groups, and interactive workflows
  • 🔄 Smart Media Handling - Auto-conversion for voice/video, support for URLs & local files
  • 🤖 AI-Native - Built specifically for LLM integration via MCP
  • 🔒 Secure - Environment-based API key management
  • Fast & Reliable - TypeScript-powered with robust error handling

📋 Prerequisites

Before you begin, ensure you have:


🛠️ Installation

1. Clone & Install

git clone https://github.com/dudu1111685/waha-mcp.git
cd waha-mcp
npm install
npm run build

2. Set Environment Variables

Create a .env file or export variables:

export WAHA_API_KEY="your-api-key-here"
export WAHA_URL="http://localhost:3001"  # Optional, defaults to localhost:3001

⚙️ Configuration

Claude Desktop

Add to claude_desktop_config.json:

Linux: ~/.config/claude/claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "waha": {
      "command": "node",
      "args": ["/absolute/path/to/waha-mcp/dist/index.js"],
      "env": {
        "WAHA_API_KEY": "your-api-key-here",
        "WAHA_URL": "http://localhost:3001"
      }
    }
  }
}

Cline / VS Code

Add to your Cline MCP settings (~/.vscode/mcp.json or workspace settings):

{
  "mcpServers": {
    "waha": {
      "command": "node",
      "args": ["/absolute/path/to/waha-mcp/dist/index.js"],
      "env": {
        "WAHA_API_KEY": "your-api-key-here"
      }
    }
  }
}

Claude Code (Autonomous Development)

🤖 Enable truly autonomous AI development:

Instead of Claude stopping when it needs user input, it can ask questions via WhatsApp and continue working!

🚀 Complete Setup Guide: `CLAUDE_CODE_SETUP.md`

Quick config example:

{
  "mcpServers": {
    "waha": {
      "command": "node",
      "args": ["/path/to/waha-mcp/dist/index.js"],
      "env": {
        "WAHA_API_KEY": "your-key",
        "USER_WHATSAPP_CHAT_ID": "1234567890@c.us"
      }
    }
  },
  "globalInstructions": "When you need user input during development, use ask_user_via_whatsapp tool. Never stop and wait for manual console input."
}

How it works:

  1. Claude hits a question → asks via WhatsApp
  2. You reply from your phone
  3. Claude continues working immediately
  4. Zero downtime! ⚡

📖 See also:

Other MCP Clients

Use the mcporter CLI for quick testing:

mcporter call 'waha-mcp.waha_list_sessions()'
mcporter call 'waha-mcp.waha_send_text(chatId: "1234567890@c.us", text: "Hello from MCP!")'

🧰 Tools Reference

📂 Categories

Session Management (8 tools)
Tool Description
waha_list_sessions List all sessions and their statuses
waha_get_session Get detailed info about a session
waha_create_session Create a new session
waha_start_session Start a stopped session
waha_stop_session Stop a running session
waha_restart_session Restart a session
waha_delete_session Delete a session permanently
waha_logout_session Disconnect WhatsApp account from session
Authentication (3 tools)
Tool Description
waha_get_qr_code Get QR code for WhatsApp authentication
waha_request_pairing_code Request phone number pairing code
waha_check_auth_status Check session authentication status
Messaging (14 tools)
Tool Description
waha_send_text Send a text message
waha_send_image Send an image (local file or URL)
waha_send_video Send a video with auto-conversion
waha_send_voice Send a voice message with auto-conversion
waha_send_file Send any document/file
waha_send_location Send a location pin
waha_send_contact Send a contact vCard
waha_send_poll Create and send a poll
waha_react_to_message React with emoji 👍❤️😂
waha_forward_message Forward a message
waha_get_messages Get messages with pagination
waha_delete_message Delete a message
waha_edit_message Edit a sent message
waha_mark_as_read Mark messages as read
waha_star_message Star/unstar a message

📤 Media Upload Features:

  • ✅ Local files & URLs supported
  • ✅ Auto MIME type detection
  • ✅ Auto video/voice conversion to WhatsApp format
  • ✅ 50+ file types supported
  • ✅ Base64 encoding handled automatically
Chat Management (7 tools)
Tool Description
waha_list_chats List all chats
waha_get_chat Get detailed chat info
waha_archive_chat Archive/unarchive a chat
waha_pin_chat Pin/unpin a chat
waha_mute_chat Mute/unmute a chat
waha_delete_chat Delete a chat
waha_clear_chat Clear all messages
Contacts (5 tools)
Tool Description
waha_get_contacts Get all contacts
waha_get_contact Get info about a contact
waha_check_number_exists Check if number is on WhatsApp
waha_block_contact Block/unblock a contact
waha_get_profile_picture Get profile picture URL
Groups (13 tools)
Tool Description
waha_create_group Create a new group
waha_list_groups List all groups
waha_get_group Get detailed group info
waha_get_group_participants List group participants
waha_add_group_participants Add participants
waha_remove_group_participants Remove participants
waha_promote_group_participant Promote to admin
waha_demote_group_participant Demote from admin
waha_update_group_subject Update group name
waha_update_group_description Update group description
waha_update_group_picture Set group profile picture
waha_leave_group Leave a group
waha_get_group_invite_code Get invite link
waha_revoke_group_invite Revoke & regenerate link
Presence & Status (5 tools)
Tool Description
waha_set_presence Set online/offline status
waha_get_presence Get contact's presence
waha_start_typing Show typing indicator
waha_stop_typing Stop typing indicator
waha_send_status Post a text status/story
Labels (5 tools)
Tool Description
waha_get_labels Get all labels
waha_create_label Create a new label
`waha_delet

Tools (63)

waha_list_sessionsList all sessions and their statuses
waha_get_sessionGet detailed info about a session
waha_create_sessionCreate a new session
waha_start_sessionStart a stopped session
waha_stop_sessionStop a running session
waha_restart_sessionRestart a session
waha_delete_sessionDelete a session permanently
waha_logout_sessionDisconnect WhatsApp account from session
waha_get_qr_codeGet QR code for WhatsApp authentication
waha_request_pairing_codeRequest phone number pairing code
waha_check_auth_statusCheck session authentication status
waha_send_textSend a text message
waha_send_imageSend an image (local file or URL)
waha_send_videoSend a video with auto-conversion
waha_send_voiceSend a voice message with auto-conversion
waha_send_fileSend any document/file
waha_send_locationSend a location pin
waha_send_contactSend a contact vCard
waha_send_pollCreate and send a poll
waha_react_to_messageReact with emoji 👍❤️😂
waha_forward_messageForward a message
waha_get_messagesGet messages with pagination
waha_delete_messageDelete a message
waha_edit_messageEdit a sent message
waha_mark_as_readMark messages as read
waha_star_messageStar/unstar a message
waha_list_chatsList all chats
waha_get_chatGet detailed chat info
waha_archive_chatArchive/unarchive a chat
waha_pin_chatPin/unpin a chat
waha_mute_chatMute/unmute a chat
waha_delete_chatDelete a chat
waha_clear_chatClear all messages
waha_get_contactsGet all contacts
waha_get_contactGet info about a contact
waha_check_number_existsCheck if number is on WhatsApp
waha_block_contactBlock/unblock a contact
waha_get_profile_pictureGet profile picture URL
waha_create_groupCreate a new group
waha_list_groupsList all groups
waha_get_groupGet detailed group info
waha_get_group_participantsList group participants
waha_add_group_participantsAdd participants
waha_remove_group_participantsRemove participants
waha_promote_group_participantPromote to admin
waha_demote_group_participantDemote from admin
waha_update_group_subjectUpdate group name
waha_update_group_descriptionUpdate group description
waha_update_group_pictureSet group profile picture
waha_leave_groupLeave a group
waha_get_group_invite_codeGet invite link
waha_revoke_group_inviteRevoke & regenerate link
waha_set_presenceSet online/offline status
waha_get_presenceGet contact's presence
waha_start_typingShow typing indicator
waha_stop_typingStop typing indicator
waha_send_statusPost a text status/story
waha_get_labelsGet all labels
waha_create_labelCreate a new label
waha_delete_labelDelete a label
waha_add_label_to_chatAdd label to chat
waha_remove_label_from_chatRemove label from chat
ask_user_via_whatsappSend a question and WAIT for user reply (blocking operation). Perfect for Claude Code workflows that need user input mid-execution.

Environment Variables

WAHA_API_KEYrequiredAPI key generated from WAHA dashboard
WAHA_URLWAHA instance URL, defaults to http://localhost:3001
USER_WHATSAPP_CHAT_IDUser WhatsApp chat ID for interactive workflows

Configuration

claude_desktop_config.json
{
  "mcpServers": {
    "waha": {
      "command": "node",
      "args": ["/absolute/path/to/waha-mcp/dist/index.js"],
      "env": {
        "WAHA_API_KEY": "your-api-key-here",
        "WAHA_URL": "http://localhost:3001"
      }
    }
  }
}

Try it

List all my WhatsApp sessions using waha_list_sessions
Send a text message to 1234567890@c.us saying 'Hello from Claude!' with waha_send_text
Create a new group called 'AI Team' and add participants 1111111111@c.us and 2222222222@c.us
Send an image from https://example.com/photo.jpg to my chat with caption using waha_send_image
Ask me via WhatsApp if I should use REST or GraphQL using ask_user_via_whatsapp

Frequently Asked Questions

How do I install WAHA MCP Server?

Install WAHA MCP Server by running: git clone https://github.com/dudu1111685/waha-mcp.git cd waha-mcp npm install npm run build

What MCP clients work with WAHA MCP Server?

WAHA MCP Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Use WAHA MCP Server with Conare

Manage MCP servers visually, upload persistent context, and never start from zero with Claude Code & Codex.

Try Free