whatsapp-mcp
Provides tools for interacting with WhatsApp through the GREEN-API gateway, including reading chat history, incoming and outgoing messages, contacts and group data, as well as sending messages and files.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@whatsapp-mcp Send a WhatsApp message to Olga: I'm running 10 minutes late."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
whatsapp-mcp
MCP-сервер к WhatsApp через шлюз GREEN-API. Даёт агенту чтение переписки (история чата, журналы входящих и исходящих, контакты, группы) и отправку сообщений и файлов.
Работает с обычным личным номером: номер один раз привязывается к инстансу GREEN-API по QR-коду в консоли шлюза, дальше никакого локального процесса и никакого повторного сканирования не нужно.
Зачем шлюз
Официальный WhatsApp Business Cloud API от Meta не даёт доступа к личной переписке и истории — только к диалогам, начатым после подключения бизнес-номера. Локальные мосты (whatsmeow, Baileys) требуют постоянно работающего процесса на машине пользователя. GREEN-API закрывает обе проблемы ценой платного тарифа и того, что под капотом у него неофициальный протокол.
Репозиторий пока лежит в личном пространстве
eurogas-bbl, а не вbrain-boost-academy: прав на создание репозиториев в организации нет. После переноса GitHub оставит редирект, и ссылки ниже продолжат работать.
Related MCP server: lingtai-whatsapp
Установка
Зависимостей, кроме uv, нет:
uvx --from git+https://github.com/eurogas-bbl/whatsapp-mcp whatsapp-mcpКак запись в .mcp.json:
{
"mcpServers": {
"whatsapp": {
"command": "uvx",
"args": [
"--env-file", "/путь/к/whatsapp-mcp.env",
"--from", "git+https://github.com/eurogas-bbl/whatsapp-mcp",
"whatsapp-mcp"
]
}
}
}Переменные окружения
Переменная | Обязательна | Описание |
| да |
|
| да |
|
| нет | Личный хост инстанса, например |
| нет | По умолчанию |
| нет |
|
Токен не попадает в текст ошибок: он лежит в URL, а URL — в сообщениях httpx,
поэтому перед выдачей модели он заменяется на ***.
Инструменты
Чтение — всегда:
get_state, get_settings, list_chats, get_chat_history,
get_last_incoming_messages, get_last_outgoing_messages, get_contact_info,
get_group_data, check_whatsapp, get_file_link, receive_notification,
delete_notification.
Запись — если не выставлен WHATSAPP_READONLY:
send_message, send_file, send_file_by_url, mark_chat_read, set_settings.
delete_notification доступен и в режиме чтения: он убирает обработанное
событие из очереди шлюза и ничего не меняет в самих чатах, а без него
receive_notification бесконечно возвращает одно и то же.
Идентификаторы чатов
Личный чат — 79001234567@c.us, группа — 120363043968066561@g.us, скрытый
номер — 123456789012345@lid. Голый номер телефона (79001234567,
+7 (900) 123-45-67) достраивается до @c.us; для групп и @lid идентификатор
нужно передавать целиком, потому что от номера они неотличимы.
Ограничения
История видна только за то время, пока номер привязан к инстансу: GREEN-API не выгружает переписку, накопленную до подключения.
У
getChatHistoryнет постраничного обхода — толькоcount.Журналы входящих и исходящих и отметка прочитанным работают лишь при включённых уведомлениях инстанса:
set_settingsсincomingWebhook: yes,outgoingMessageWebhook: yes,outgoingAPIMessageWebhook: yes.Ответы обрезаются на 256 КБ, чтобы длинная переписка не вытеснила контекст; обрезанный ответ помечен полем
truncated.
Разработка
uv sync
uv run pytest -q
uv run pyrightТесты офлайн: HTTP замокан через httpx.MockTransport, инструменты вызываются
настоящим MCP-клиентом.
Available Tools
17 toolscheck_whatsappCheck WhatsappB
Есть ли WhatsApp у номера. Проверяйте перед первой отправкой незнакомцу.
Inputs: phone (required).
delete_notificationDelete NotificationA
Удаляет обработанное событие из очереди по receiptId.
Inputs: receipt_id (required).
get_chat_historyGet Chat HistoryA
Последние сообщения чата, новые первыми.
Основной инструмент чтения переписки. Постраничного обхода у GREEN-API нет — можно только увеличить count (по умолчанию у шлюза 100).
Inputs: chat_id (required), count.
get_contact_infoGet Contact InfoA
Карточка контакта: имя, аватар, признак бизнес-аккаунта, последний онлайн.
Для групп не работает — используйте get_group_data.
Inputs: chat_id (required).
get_file_linkGet File LinkA
Ссылка на файл из сообщения с вложением (по idMessage из истории).
Ссылка временная — скачивайте сразу.
Inputs: chat_id (required), id_message (required).
get_group_dataGet Group DataB
Данные группы: название, владелец, участники, права.
Inputs: group_id (required).
get_last_incoming_messagesGet Last Incoming MessagesA
Входящие по всем чатам за последние minutes минут (по умолчанию сутки).
Чтобы посмотреть, что нового вообще пришло, не перебирая чаты.
Требует включённого incomingWebhook.
Inputs: minutes.
get_last_outgoing_messagesGet Last Outgoing MessagesA
Исходящие по всем чатам за последние minutes минут со статусом доставки.
Inputs: minutes.
get_settingsGet SettingsA
Настройки инстанса, включая флаги уведомлений.
Без incomingWebhook: yes журналы входящих сообщений и отметки
прочитанным не работают.
Inputs: no named parameters.
get_stateGet StateA
Состояние инстанса GREEN-API.
authorized — номер подключён и всё работает; notAuthorized — нужно
заново отсканировать QR в консоли GREEN-API; blocked — номер забанен.
Inputs: no named parameters.
list_chatsList ChatsB
Список известных инстансу чатов и контактов (id, имя, тип).
Обновление списка на стороне WhatsApp занимает до 5 минут; пустой ответ сразу после подключения — норма, повторите позже.
Inputs: only, count.
mark_chat_readMark Chat ReadA
Отмечает чат прочитанным. Без id_message — весь чат.
Собеседник увидит две синие галочки, так что это тоже заметное действие.
Inputs: chat_id (required), id_message.
receive_notificationReceive NotificationA
Одно событие из очереди входящих (FIFO, хранится 24 часа).
Возвращает receiptId и body, либо null, если за receive_timeout
секунд (5–60) ничего не пришло. После обработки события вызовите
delete_notification, иначе следующий вызов вернёт то же самое.
Inputs: receive_timeout.
send_fileSend FileB
Отправляет локальный файл (до 100 МБ) в чат.
Как и send_message — действие необратимо, спрашивайте подтверждение.
Inputs: path (required), chat_id (required), caption, file_name.
send_file_by_urlSend File By UrlA
Отправляет файл по публичной ссылке — без выкачивания на эту машину.
Inputs: chat_id (required), url_file (required), file_name (required), caption.
send_messageSend MessageA
Отправляет текст в чат. Возвращает idMessage.
Действие необратимо и видно человеку на том конце — спрашивайте подтверждение у пользователя перед вызовом.
Inputs: chat_id (required), message (required), link_preview, quoted_message_id.
set_settingsSet SettingsA
Меняет настройки инстанса; инстанс при этом перезагружается (до 5 минут).
Нужен в основном один раз при подключении:
{"incomingWebhook": "yes", "outgoingMessageWebhook": "yes", "outgoingAPIMessageWebhook": "yes"} — без этого журналы входящих
и исходящих остаются пустыми.
Inputs: settings (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 17 tools
Most tools have clearly distinct purposes (sending, reading, settings, notifications, contacts/groups). The only mild overlap is between get_chat_history and get_last_incoming/outgoing_messages, but the descriptions clarify the scope: one is per-chat, the others are cross-chat time-based summaries.
The tool names follow a fairly consistent verb_noun pattern (get_*, send_*, list_*, mark_*, set_*, delete_*, receive_*). Minor deviations like check_whatsapp and receive_notification are still readable and consistent with the general style, so there are no mixed conventions.
17 tools is slightly on the heavier side but appropriate for a WhatsApp integration that covers messaging, files, groups, contacts, settings, and webhooks. Each tool maps to a distinct API operation, and none feel redundant.
The surface covers the main WhatsApp workflows: sending and receiving messages/files, reading history, managing chats read state, contact and group info, and instance settings. Missing operations like editing/deleting sent messages or more granular media handling are minor gaps, since the core lifecycle is present.
Maintenance
Related MCP Connectors
Unified messaging MCP server: WhatsApp, Instagram, Telegram, SMS, Messenger & email support inbox
Free WhatsApp MCP server for ChatGPT and Claude: read and search chats, every send you approve.
WhatsApp (Web + Business API), SMS, contacts, and call records via 2Chat's MCP server.
Your own WhatsApp as an MCP server: read, search and send from any MCP client.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP (Multi-Agent Conversation Protocol) Server that enables interaction with the WhatsApp Business API, allowing agents to send messages, manage media, and perform other WhatsApp business operations through natural language.1-

lingtai-whatsappofficial
AlicenseNot gradedqualityFmaintenanceMCP server for interacting with the official Meta WhatsApp Business Platform/Cloud API, enabling sending messages, managing contacts, templates, and handling webhook callbacks.Apache 2.0- AlicenseNot gradedqualityDmaintenanceMCP server that connects AI agents to WhatsApp using the multi-device API, enabling messaging, group management, and more as a regular user.7 npm1MIT

green-api-mcp-gatewayofficial
AlicenseNot gradedqualityCmaintenanceMCP gateway for GREEN-API WhatsApp that lets AI agents send messages, manage instances, and receive notifications via WhatsApp using the Model Context Protocol.MIT