Skip to main content
Glama

WAHA MCP Server

A Model Context Protocol (MCP) server that enables AI assistants to interact with WhatsApp through the WAHA (WhatsApp HTTP API) platform.

Features

  • Chat Management: Get overview of recent WhatsApp chats

  • Message Operations: Retrieve, send, and mark messages as read

  • MCP Integration: Full compatibility with MCP clients like Claude Desktop

Installation

  1. Clone this repository

  2. Install dependencies:

    npm install
  3. Configure your WAHA API connection:

    cp .env.example .env

    Then edit .env with your WAHA instance details.

Configuration

Required environment variables in .env:

  • WAHA_BASE_URL: Your WAHA server URL (e.g., http://localhost:3000)

  • WAHA_API_KEY: Your WAHA API key for authentication

  • WAHA_SESSION: WhatsApp session name (default: default)

Development

Build the project

npm run build

Run in development mode with auto-reload

npm run dev

Test with MCP Inspector

The MCP Inspector is a web-based tool to test your MCP server interactively:

npm run inspector

This will:

  1. Start the WAHA MCP server

  2. Launch the MCP Inspector web UI

  3. Open your browser automatically

Use the inspector to:

  • Test all 4 tools interactively

  • View tool schemas

  • See request/response data

  • Debug tool calls

Run in production

npm start

Usage with Claude Desktop

Add this to your Claude Desktop MCP configuration:

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

Available Tools

waha_get_chats

Get overview of recent WhatsApp chats. Returns chat ID, name, last message preview, and unread count.

Parameters:

  • limit (optional): Number of chats to retrieve (default: 10, max: 100)

  • offset (optional): Offset for pagination

  • chatIds (optional): Array of specific chat IDs to filter (format: number@c.us)

Example:

{ "limit": 10 }

waha_get_messages

Get messages from a specific WhatsApp chat. Returns message content, sender, timestamp, and status.

Parameters:

  • chatId (required): Chat ID to get messages from (format: number@c.us for individual, number@g.us for group)

  • limit (optional): Number of messages to retrieve (default: 10, max: 100)

  • offset (optional): Offset for pagination

  • downloadMedia (optional): Download media files (default: false)

Example:

{ "chatId": "1234567890@c.us", "limit": 10 }

waha_send_message

Send a text message to a WhatsApp chat. Returns message ID and delivery timestamp.

Parameters:

  • chatId (required): Chat ID to send message to (format: number@c.us)

  • text (required): Message text to send

  • replyTo (optional): Message ID to reply to

  • linkPreview (optional): Enable link preview (default: true)

Example:

{ "chatId": "1234567890@c.us", "text": "Hello from MCP!" }

waha_mark_chat_read

Mark messages in a chat as read. Can specify number of recent messages or time range in days.

Parameters:

  • chatId (required): Chat ID to mark as read (format: number@c.us)

  • messages (optional): Number of recent messages to mark as read (default: 30)

  • days (optional): Mark messages from last N days as read (default: 7)

Example:

{ "chatId": "1234567890@c.us", "messages": 30 }

Project Structure

waha-mcp-server/ ├── src/ │ ├── index.ts # Server entry point │ ├── config.ts # Configuration management │ ├── types/ # TypeScript type definitions │ ├── tools/ # MCP tool implementations │ └── client/ # WAHA API client ├── dist/ # Built JavaScript output ├── .env # Your configuration (not in git) ├── .env.example # Configuration template ├── package.json ├── tsconfig.json └── PROJECT_SPEC.md # Full project specification

Chat ID Format

WhatsApp chat IDs have specific formats:

  • Individual chats: <phone_number>@c.us (e.g., 1234567890@c.us)

  • Group chats: <group_id>@g.us (e.g., 123456789012345678@g.us)

You can get chat IDs by using the waha_get_chats tool first.

License

ISC

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/seejux/waha-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server