WhatsApp MCP Server logo

WhatsApp MCP Server

by piyushgupta53

A WhatsApp server implementation using the Model Context Protocol (MCP) SDK. This server provides a standardized interface for interacting with WhatsApp through the GreenAPI service.

View on GitHub

Last updated: N/A

WhatsApp MCP Server

A WhatsApp server implementation using the Model Context Protocol (MCP) SDK. This server provides a standardized interface for interacting with WhatsApp through the GreenAPI service.

Features

  • WhatsApp session management
  • Integration with GreenAPI service
  • Standardized MCP protocol implementation
  • TypeScript support

Prerequisites

  • Node.js (v14 or higher)
  • npm or yarn
  • GreenAPI account and credentials

Installation

  1. Clone the repository:
git clone <repository-url>
cd whatsapp-mcp-server
  1. Install dependencies:
npm install

Configuration

The server requires the following environment variables:

  • GREENAPI_API_URL: The base URL for GreenAPI service
  • GREENAPI_API_TOKEN: Your GreenAPI API token

Usage

  1. Start the server:
npm start
  1. The server will start listening for MCP protocol messages through standard input/output.

Available Tools

Open Session

Opens a new WhatsApp session using GreenAPI credentials.

Parameters:

  • sessionId: A unique session ID
  • instanceId: GreenAPI instance ID
  • apiTokenInstance: GreenAPI API token

Send Message

Sends a message to a specified chat.

Parameters:

Get Chats

Retrieves the list of available chats.

Parameters:

  • sessionId: Session ID from open_session

Create Group

Creates a new WhatsApp group.

Parameters:

  • sessionId: Session ID from open_session
  • groupName: Name of the group to create
  • participants: Array of phone numbers with domain (e.g. [email protected])

Get Chat History

Retrieves recent messages from a specified chat (personal or group).

Parameters:

  • sessionId: Session ID from open_session
  • chatId: Chat ID to retrieve messages from (e.g., [email protected] or [email protected])
  • count: Number of messages to retrieve (default: 50)

Important: To receive incoming messages in the chat history, you need to enable the "Receive webhooks on incoming messages and files" setting using the SetSettings method or through the GreenAPI console. Without this setting enabled, the chat history will only show outgoing messages.

Send File

Sends a file to a specified chat.

Parameters:

  • sessionId: Session ID from open_session
  • chatId: WhatsApp chat ID (e.g., [email protected])
  • fileUrl: Public URL of the file to send
  • fileName: (Optional) Name of the file as seen by recipient
  • caption: (Optional) Caption text to display below the file

Add Participant

Adds a participant to an existing WhatsApp group.

Parameters:

  • sessionId: Session ID from open_session
  • groupId: ID of the WhatsApp group (e.g., [email protected])
  • participantChatId: Chat ID of the participant to add (e.g., [email protected])

Remove Participant

Removes a participant from an existing WhatsApp group.

Parameters:

  • sessionId: Session ID from open_session
  • groupId: ID of the WhatsApp group (e.g., [email protected])
  • participantChatId: Chat ID of the participant to remove (e.g., [email protected])