Green API WhatsApp

MCP gateway for WhatsApp via Green API: messaging, contacts, groups and instance management.

Should I use this

Quality & Safety

A
Description quality
94%
Schema completeness
100%
Naming quality
78%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (6)

  • LOWTool 'whatsapp_forward_messages' description lacks action verbin whatsapp_forward_messages
  • LOWTool 'whatsapp_reboot' description lacks action verbin whatsapp_reboot
  • LOWTool 'whatsapp_get_authorization_code' name length outside 3-30 rangein whatsapp_get_authorization_code
  • LOWTool 'whatsapp_last_incoming_messages' name length outside 3-30 rangein whatsapp_last_incoming_messages
  • LOWTool 'whatsapp_last_outgoing_messages' name length outside 3-30 rangein whatsapp_last_outgoing_messages
  • LOWTool 'whatsapp_remove_group_participant' name length outside 3-30 rangein whatsapp_remove_group_participant

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~4,881Tokens (tool definitions)
~823 BTypical response size
Significant attention impact (3.81% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "whatsapp": {
      "url": "https://mcp.green-api.com/mcp"
    }
  }
}

Remote endpoints

https://mcp.green-api.com/mcpstreamable-http
https://mcp.green-api.com/ssesse

What it can do

Tool inventory

Tools (41)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡whatsapp_add_group_participant(group_id, instance_id, participant_chat_id)

Add a participant to a WhatsApp group

Input Schema

{
  "type": "object",
  "properties": {
    "group_id": {
      "description": "Group ID",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    },
    "participant_chat_id": {
      "description": "Participant chat ID ([email protected])",
      "type": "string"
    }
  },
  "required": [
    "instance_id",
    "group_id",
    "participant_chat_id"
  ]
}
🟢whatsapp_check_whatsapp(instance_id, phone_number)

Check whether a phone number has a WhatsApp account

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    },
    "phone_number": {
      "description": "Phone number to check",
      "type": "number"
    }
  },
  "required": [
    "instance_id",
    "phone_number"
  ]
}
⚪whatsapp_connect(api_token, api_url, instance_id)

Connect a WhatsApp instance. Call this before using other tools. Validates credentials via getStateInstance.

Input Schema

{
  "type": "object",
  "properties": {
    "api_token": {
      "description": "Instance API token",
      "type": "string"
    },
    "api_url": {
      "description": "API URL (defaults to https://api.green-api.com)",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID (from console.green-api.com)",
      "type": "number"
    }
  },
  "required": [
    "instance_id",
    "api_token"
  ]
}
🟡whatsapp_create_group(chat_ids, group_name, instance_id)

Create a WhatsApp group

Input Schema

{
  "type": "object",
  "properties": {
    "chat_ids": {
      "description": "Participant list (chat IDs, e.g. [email protected])",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "group_name": {
      "description": "Group name",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id",
    "group_name",
    "chat_ids"
  ]
}
🟡whatsapp_create_instance(partner_token)

Create a new WhatsApp instance via the GREEN-API Partner API

Input Schema

{
  "type": "object",
  "properties": {
    "partner_token": {
      "description": "Partner Token from your GREEN-API dashboard",
      "type": "string"
    }
  },
  "required": [
    "partner_token"
  ]
}
🔴whatsapp_delete_instance(instance_id, partner_token)

Delete a WhatsApp instance via the GREEN-API Partner API

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "description": "Instance ID to delete",
      "type": "number"
    },
    "partner_token": {
      "description": "Partner Token from your GREEN-API dashboard",
      "type": "string"
    }
  },
  "required": [
    "partner_token",
    "instance_id"
  ]
}
🔴whatsapp_delete_message(chat_id, id_message, instance_id)

Delete a message

Input Schema

{
  "type": "object",
  "properties": {
    "chat_id": {
      "description": "Chat ID",
      "type": "string"
    },
    "id_message": {
      "description": "ID of the message to delete",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id",
    "chat_id",
    "id_message"
  ]
}
🔴whatsapp_delete_notification(instance_id, receipt_id)

Delete a notification from the queue (acknowledge receipt)

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    },
    "receipt_id": {
      "description": "Notification ID (receiptId from receiveNotification)",
      "type": "number"
    }
  },
  "required": [
    "instance_id",
    "receipt_id"
  ]
}
🔴whatsapp_disconnect(instance_id)

Disconnect a WhatsApp instance and remove credentials from the session

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id"
  ]
}
🔴whatsapp_edit_message(chat_id, id_message, instance_id, message)

Edit a previously sent message

Input Schema

{
  "type": "object",
  "properties": {
    "chat_id": {
      "description": "Chat ID",
      "type": "string"
    },
    "id_message": {
      "description": "ID of the message to edit",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    },
    "message": {
      "description": "New message text",
      "type": "string"
    }
  },
  "required": [
    "instance_id",
    "chat_id",
    "id_message",
    "message"
  ]
}
🔴whatsapp_forward_messages(chat_id, chat_id_from, instance_id, messages)

Forward messages to another chat

Input Schema

{
  "type": "object",
  "properties": {
    "chat_id": {
      "description": "Destination chat ID",
      "type": "string"
    },
    "chat_id_from": {
      "description": "Source chat ID",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    },
    "messages": {
      "description": "Message IDs to forward",
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "instance_id",
    "chat_id",
    "chat_id_from",
    "messages"
  ]
}
🟢whatsapp_get_authorization_code(instance_id, phone_number)

Get an authorization code for sign-in by phone number

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    },
    "phone_number": {
      "description": "Phone number (e.g. 79001234567)",
      "type": "string"
    }
  },
  "required": [
    "instance_id",
    "phone_number"
  ]
}
🟢whatsapp_get_chat_history(chat_id, count, instance_id)

Get chat message history. Use a small 'count' (default 50, max 100) to keep responses focused.

Input Schema

{
  "type": "object",
  "properties": {
    "chat_id": {
      "description": "Chat ID ([email protected] or [email protected])",
      "type": "string"
    },
    "count": {
      "description": "Number of messages (default 50, max 100)",
      "type": "number"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id",
    "chat_id"
  ]
}
🟢whatsapp_get_contact_avatar(chat_id, instance_id)

Get the avatar of a contact or group

Input Schema

{
  "type": "object",
  "properties": {
    "chat_id": {
      "description": "Contact or group ID",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id",
    "chat_id"
  ]
}
🟢whatsapp_get_contact_info(chat_id, instance_id)

Get information about a contact or group

Input Schema

{
  "type": "object",
  "properties": {
    "chat_id": {
      "description": "Contact or group ID",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id",
    "chat_id"
  ]
}
🟢whatsapp_get_contacts(instance_id)

Get the contact list

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id"
  ]
}
🟢whatsapp_get_group_data(group_id, instance_id)

Get group data (members, name, invite link)

Input Schema

{
  "type": "object",
  "properties": {
    "group_id": {
      "description": "Group ID (e.g. [email protected])",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id",
    "group_id"
  ]
}
🟢whatsapp_get_instances(partner_token)

List all partner instances via the GREEN-API Partner API

Input Schema

{
  "type": "object",
  "properties": {
    "partner_token": {
      "description": "Partner Token from your GREEN-API dashboard",
      "type": "string"
    }
  },
  "required": [
    "partner_token"
  ]
}
🟢whatsapp_get_message(chat_id, id_message, instance_id)

Get a message by ID

Input Schema

{
  "type": "object",
  "properties": {
    "chat_id": {
      "description": "Chat ID",
      "type": "string"
    },
    "id_message": {
      "description": "Message ID",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id",
    "chat_id",
    "id_message"
  ]
}
🟢whatsapp_get_qr(instance_id)

Get the QR code for instance authorization. The result contains the QR as an image and a qrLink URL to an official GREEN-API page with a full-size auto-refreshing QR code. Always include the qrLink in your response as a clickable markdown link so the user can open it in the browser and scan comfortably.

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id"
  ]
}
🟢whatsapp_get_settings(instance_id)

Get instance settings

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id"
  ]
}
🟢whatsapp_get_state(instance_id)

Get instance state (authorized, notAuthorized, blocked, sleepMode)

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id"
  ]
}
🟢whatsapp_get_wa_settings(instance_id)

Get WhatsApp account settings (name, description, etc.)

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id"
  ]
}
🟢whatsapp_last_incoming_messages(instance_id, minutes)

Get recent incoming messages from the last N minutes (default 60, max 1440 = 24 hours).

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    },
    "minutes": {
      "description": "Time window in minutes (default 60, max 1440)",
      "type": "number"
    }
  },
  "required": [
    "instance_id"
  ]
}
🟢whatsapp_last_outgoing_messages(instance_id, minutes)

Get recent outgoing messages from the last N minutes (default 60, max 1440 = 24 hours).

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    },
    "minutes": {
      "description": "Time window in minutes (default 60, max 1440)",
      "type": "number"
    }
  },
  "required": [
    "instance_id"
  ]
}
🔴whatsapp_leave_group(group_id, instance_id)

Leave a WhatsApp group

Input Schema

{
  "type": "object",
  "properties": {
    "group_id": {
      "description": "Group ID ([email protected])",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id",
    "group_id"
  ]
}
🔴whatsapp_logout(instance_id)

Log out the WhatsApp instance

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id"
  ]
}
🟢whatsapp_read_chat(chat_id, id_message, instance_id)

Mark chat messages as read

Input Schema

{
  "type": "object",
  "properties": {
    "chat_id": {
      "description": "Chat ID",
      "type": "string"
    },
    "id_message": {
      "description": "ID of a specific message (optional)",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id",
    "chat_id"
  ]
}
⚪whatsapp_reboot(instance_id)

Reboot the WhatsApp instance

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id"
  ]
}
🟢whatsapp_receive_notification(instance_id)

Get one notification from the queue (manual polling)

Input Schema

{
  "type": "object",
  "properties": {
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id"
  ]
}
🔴whatsapp_remove_group_admin(group_id, instance_id, participant_chat_id)

Revoke admin rights from a group member

Input Schema

{
  "type": "object",
  "properties": {
    "group_id": {
      "description": "Group ID ([email protected])",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    },
    "participant_chat_id": {
      "description": "Participant chat ID ([email protected])",
      "type": "string"
    }
  },
  "required": [
    "instance_id",
    "group_id",
    "participant_chat_id"
  ]
}
🔴whatsapp_remove_group_participant(group_id, instance_id, participant_chat_id)

Remove a participant from a WhatsApp group

Input Schema

{
  "type": "object",
  "properties": {
    "group_id": {
      "description": "Group ID",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    },
    "participant_chat_id": {
      "description": "Participant chat ID ([email protected])",
      "type": "string"
    }
  },
  "required": [
    "instance_id",
    "group_id",
    "participant_chat_id"
  ]
}
🔴whatsapp_send_contact(chat_id, company, first_name, instance_id, last_name, ...)

Send a contact card via WhatsApp

Input Schema

{
  "type": "object",
  "properties": {
    "chat_id": {
      "description": "Chat ID",
      "type": "string"
    },
    "company": {
      "description": "Contact company",
      "type": "string"
    },
    "first_name": {
      "description": "Contact first name",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    },
    "last_name": {
      "description": "Contact last name",
      "type": "string"
    },
    "phone_number": {
      "description": "Contact phone number",
      "type": "number"
    }
  },
  "required": [
    "instance_id",
    "chat_id",
    "phone_number"
  ]
}
🔴whatsapp_send_file(caption, chat_id, file_name, instance_id, url)

Send a file by URL

Input Schema

{
  "type": "object",
  "properties": {
    "caption": {
      "description": "File caption",
      "type": "string"
    },
    "chat_id": {
      "description": "Chat ID",
      "type": "string"
    },
    "file_name": {
      "description": "File name",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    },
    "url": {
      "description": "File URL",
      "type": "string"
    }
  },
  "required": [
    "instance_id",
    "chat_id",
    "url"
  ]
}
🔴whatsapp_send_file_by_upload(caption, chat_id, file_base64, filename, instance_id)

Send a file directly to a chat via multipart upload (no separate URL step)

Input Schema

{
  "type": "object",
  "properties": {
    "caption": {
      "description": "File caption (optional)",
      "type": "string"
    },
    "chat_id": {
      "description": "Chat ID ([email protected] or [email protected])",
      "type": "string"
    },
    "file_base64": {
      "description": "File contents encoded as base64",
      "type": "string"
    },
    "filename": {
      "description": "File name with extension (e.g. photo.jpg)",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id",
    "chat_id",
    "file_base64",
    "filename"
  ]
}
🔴whatsapp_send_location(address, chat_id, instance_id, latitude, longitude, ...)

Send a location

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "description": "Address",
      "type": "string"
    },
    "chat_id": {
      "description": "Chat ID",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    },
    "latitude": {
      "description": "Latitude",
      "type": "number"
    },
    "longitude": {
      "description": "Longitude",
      "type": "number"
    },
    "name": {
      "description": "Place name",
      "type": "string"
    }
  },
  "required": [
    "instance_id",
    "chat_id",
    "latitude",
    "longitude"
  ]
}
🔴whatsapp_send_message(chat_id, instance_id, link_preview, message, quoted_message_id)

Send a text message via WhatsApp

Input Schema

{
  "type": "object",
  "properties": {
    "chat_id": {
      "description": "Chat ID ([email protected] or [email protected])",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    },
    "link_preview": {
      "description": "Show link previews",
      "type": "boolean"
    },
    "message": {
      "description": "Message text",
      "type": "string"
    },
    "quoted_message_id": {
      "description": "ID of the message to quote (optional)",
      "type": "string"
    }
  },
  "required": [
    "instance_id",
    "chat_id",
    "message"
  ]
}
🔴whatsapp_send_poll(chat_id, instance_id, message, multiple_answers, options)

Send a poll via WhatsApp

Input Schema

{
  "type": "object",
  "properties": {
    "chat_id": {
      "description": "Chat ID",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    },
    "message": {
      "description": "Poll question",
      "type": "string"
    },
    "multiple_answers": {
      "description": "Allow multiple answers",
      "type": "boolean"
    },
    "options": {
      "description": "Answer options (strings)",
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "instance_id",
    "chat_id",
    "message",
    "options"
  ]
}
🟡whatsapp_set_group_admin(group_id, instance_id, participant_chat_id)

Promote a group member to admin

Input Schema

{
  "type": "object",
  "properties": {
    "group_id": {
      "description": "Group ID ([email protected])",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    },
    "participant_chat_id": {
      "description": "Participant chat ID ([email protected])",
      "type": "string"
    }
  },
  "required": [
    "instance_id",
    "group_id",
    "participant_chat_id"
  ]
}
🔴whatsapp_set_settings(delay_message, device_webhook, incoming_webhook, instance_id, mark_incoming_messages_readed, ...)

Update instance settings (webhooks, proxy, etc.)

Input Schema

{
  "type": "object",
  "properties": {
    "delay_message": {
      "description": "Message send delay (ms)",
      "type": "number"
    },
    "device_webhook": {
      "description": "Enable device webhook",
      "type": "boolean"
    },
    "incoming_webhook": {
      "description": "Enable incoming message webhook",
      "type": "boolean"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    },
    "mark_incoming_messages_readed": {
      "description": "Mark incoming messages as read",
      "type": "boolean"
    },
    "outgoing_webhook": {
      "description": "Enable outgoing message webhook",
      "type": "boolean"
    },
    "state_webhook": {
      "description": "Enable state webhook",
      "type": "boolean"
    },
    "status_instance_webhook": {
      "description": "Enable instance status webhook",
      "type": "boolean"
    },
    "webhook_url": {
      "description": "URL for incoming webhooks",
      "type": "string"
    },
    "webhook_url_token": {
      "description": "Token for the webhook URL",
      "type": "string"
    }
  },
  "required": [
    "instance_id"
  ]
}
🟡whatsapp_upload_file(file_base64, filename, instance_id)

Upload a file to GREEN-API storage and return its URL. Use the returned URL with whatsapp_send_file.

Input Schema

{
  "type": "object",
  "properties": {
    "file_base64": {
      "description": "File contents encoded as base64",
      "type": "string"
    },
    "filename": {
      "description": "File name with extension (e.g. photo.jpg)",
      "type": "string"
    },
    "instance_id": {
      "description": "WhatsApp instance ID",
      "type": "number"
    }
  },
  "required": [
    "instance_id",
    "file_base64",
    "filename"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded41 tools
verifiedversion not recorded41 tools
verifiedversion not recorded41 tools
verifiedversion not recorded41 tools
verifiedversion not recorded41 tools
verifiedversion not recorded41 tools
verifiedversion not recorded41 tools
verifiedversion not recorded41 tools
auth requiredversion not recorded—
verifiedversion not recorded41 tools