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.
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
- Clone the repository:
git clone <repository-url>
cd whatsapp-mcp-server
- Install dependencies:
npm install
Configuration
The server requires the following environment variables:
GREENAPI_API_URL
: The base URL for GreenAPI serviceGREENAPI_API_TOKEN
: Your GreenAPI API token
Usage
- Start the server:
npm start
- 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 IDinstanceId
: GreenAPI instance IDapiTokenInstance
: GreenAPI API token
Send Message
Sends a message to a specified chat.
Parameters:
sessionId
: Session ID from open_sessionchatId
: Recipient chat ID (e.g., [email protected] or [email protected])message
: The message to send
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_sessiongroupName
: Name of the group to createparticipants
: 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_sessionchatId
: 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_sessionchatId
: WhatsApp chat ID (e.g., [email protected])fileUrl
: Public URL of the file to sendfileName
: (Optional) Name of the file as seen by recipientcaption
: (Optional) Caption text to display below the file
Add Participant
Adds a participant to an existing WhatsApp group.
Parameters:
sessionId
: Session ID from open_sessiongroupId
: 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_sessiongroupId
: ID of the WhatsApp group (e.g., [email protected])participantChatId
: Chat ID of the participant to remove (e.g., [email protected])