Skip to main content
Glama

📱 WhatsApp MCP — Удаленный HTTP/SSE сервер

Сервер протокола контекста модели (MCP) для WhatsApp, созданный с помощью whatsapp-web.js и TypeScript. Поддерживает как локальный stdio (Claude Desktop), так и удаленный HTTP/SSE (Claude.ai Remote MCP) режимы.


⚠️ Условия использования WhatsApp — ВАЖНО

Прочитайте это перед использованием данного проекта.

Условия использования и Политика допустимого использования WhatsApp запрещают использование неофициальных инструментов автоматизации на личных или бизнес-аккаунтах.

🚫 Действия, которые приведут к БЛОКИРОВКЕ вашего номера:

Нарушение

Уровень риска

Рассылка массовых/спам-сообщений

🔴 Мгновенная блокировка

Автоматизация сообщений на неизвестные номера

🔴 Мгновенная блокировка

Использование неофициальных клиентов WhatsApp (например, whatsapp-web.js)

🟠 Высокий риск

Масштабный сбор контактов или данных групп

🟠 Высокий риск

Отправка сообщений без согласия пользователя

🔴 Мгновенная блокировка

Работа бота 24/7 на личном номере

🟡 Средний риск

Массовая отправка медиафайлов/документов

🟠 Высокий риск

✅ Более безопасные практики:

  • Используйте выделенный/тестовый номер телефона, а не личный

  • Пишите только тем контактам, которые дали согласие

  • Поддерживайте низкую частоту сообщений, имитирующую человеческую активность

  • Не открывайте публичный доступ к вашим /sse или REST эндпоинтам без защиты API_KEY

  • Не используйте это для маркетинга, массовых рассылок или любой коммерческой деятельности в больших масштабах

  • Используйте WhatsApp Business API (официальный) для продакшена/коммерческого использования

🔒 Этот проект предназначен только для личной автоматизации и разработки/тестирования. Автор не несет ответственности за любые блокировки аккаунтов или юридические последствия, возникшие в результате неправильного использования.


Related MCP server: WhatsApp MCP Server

🗂️ Структура проекта

whatsapp-mcp/
├── src/
│   ├── index.ts          # stdio MCP server (Claude Desktop)
│   ├── remote.ts         # HTTP/SSE MCP server (Remote MCP + REST API)
│   └── send_message.ts   # CLI script to send a single message
├── dist/                 # Compiled JavaScript (auto-generated, do not edit)
├── .wwebjs_auth/         # WhatsApp session data (⚠️ keep this gitignored!)
├── .wwebjs_cache/        # Puppeteer browser cache (gitignored)
├── package.json
├── tsconfig.json
├── render.yaml           # Render.com deployment config
├── start-remote.bat      # Windows quick-start script
└── README.md

🚀 Быстрый старт

Предварительные требования

  • Node.js v18+ и npm

  • Аккаунт WhatsApp (используйте тестовый номер!)

  • Установленный Google Chrome или Chromium (используется Puppeteer внутри)


1. Установка зависимостей

npm install

2. Сборка TypeScript

npm run build

3. Запуск сервера

Режим удаленного HTTP/SSE (Claude.ai Remote MCP):

npm run start:remote

Режим разработки (сборка не требуется, используется ts-node):

npm run dev:remote

Режим stdio (Claude Desktop):

npm start

4. Сканирование QR-кода

Откройте браузер и перейдите по адресу:

http://localhost:3000/qr

Отсканируйте QR-код с помощью WhatsApp → Связанные устройства → Привязка устройства.


🔌 API эндпоинты

Метод

Путь

Описание

GET

/ или /health

Проверка работоспособности + статус WhatsApp

GET

/qr

HTML-страница с QR-кодом (отсканируйте для аутентификации)

GET

/qr?format=json

Данные QR-кода в формате JSON

GET

/tools

Список всех доступных инструментов MCP

GET

/tools/status

Статус подключения к WhatsApp

POST

/tools/send-message

Отправка сообщения WhatsApp

GET

/tools/chats

Список недавних чатов

GET

/tools/contacts

Список контактов

GET

/tools/messages/:chatId

Получение сообщений из чата

POST

/tools/invoke

Универсальный вызов инструмента MCP

GET

/sse

MCP SSE эндпоинт (Claude Remote MCP)

POST

/messages

MCP POST эндпоинт (в паре с /sse)


🛠️ Доступные инструменты MCP

Инструмент

Описание

whatsapp_status

Проверить статус подключения

whatsapp_send_message

Отправить текстовое сообщение

whatsapp_send_media

Отправить изображение / видео / документ

whatsapp_get_contacts

Список всех контактов

whatsapp_get_groups

Список всех групп

whatsapp_get_group_info

Получить детали группы и участников

whatsapp_create_group

Создать новую группу

whatsapp_get_chats

Получить недавние чаты

whatsapp_get_messages

Получить сообщения из конкретного чата


🔐 Опционально: Аутентификация через Bearer Token

Защитите ваши REST эндпоинты, установив переменную окружения API_KEY:

API_KEY=mysecretkey npm run start:remote

Включайте токен во все запросы:

curl -H "Authorization: Bearer mysecretkey" http://localhost:3000/tools/status

🌐 Тестирование с ngrok (Публичный HTTPS)

  1. Установите ngrok

  2. Запустите сервер: npm run start:remote

  3. В новом терминале: ngrok http 3000

  4. Скопируйте сгенерированный URL (например, https://xxxx.ngrok-free.app)

В Claude.ai → Settings → Integrations → Remote MCP, вставьте:

https://xxxx.ngrok-free.app/sse

☁️ Развертывание на Render

  1. Отправьте этот репозиторий на GitHub (см. шаги Git ниже)

  2. Перейдите на render.com → New → Web Service

  3. Подключите ваш репозиторий GitHub

  4. Настройте:

    • Build Command: npm install && npm run build

    • Start Command: npm run start:remote

    • Environment: NODE_ENV=production

    • Optional: API_KEY=yoursecretkey

  5. Разверните и скопируйте ваш URL https://your-app.onrender.com

Вставьте в Claude Remote MCP:

https://your-app.onrender.com/sse

⚠️ Примечание: Данные сессии WhatsApp (.wwebjs_auth) не сохраняются между развертываниями на Render. Используйте Render Disk или повторно сканируйте QR-код после каждого развертывания.


📦 npm скрипты

Команда

Описание

npm run build

Компиляция TypeScript в dist/

npm start

Запуск stdio MCP сервера

npm run start:remote

Запуск HTTP/SSE удаленного сервера

npm run dev

Сервер разработки stdio (ts-node, без сборки)

npm run dev:remote

Сервер разработки удаленный (ts-node, без сборки)

npm run send

CLI: отправить одно сообщение

npm run qr

Показать QR-код в терминале


📄 Рекомендации по .gitignore

Убедитесь, что ваш .gitignore включает:

node_modules/
dist/
.wwebjs_auth/
.wwebjs_cache/
.env
*.bat

🔒 Никогда не коммитьте .wwebjs_auth/ — он содержит учетные данные вашей сессии WhatsApp.


🔧 Переменные окружения

Переменная

По умолчанию

Описание

PORT

3000

Порт HTTP сервера

HOST

0.0.0.0

Адрес привязки сервера

API_KEY

(пусто)

Опциональный Bearer токен для REST аутентификации

NODE_ENV

development

Установите production на Render


🤝 Участие в разработке

Pull-запросы приветствуются! Для крупных изменений, пожалуйста, сначала откройте issue.


📜 Лицензия

MIT — используйте ответственно и в соответствии с Условиями использования WhatsApp.


💡 Совет: Установите расширение GitLens в VS Code для гораздо более удобной работы с Git — история коммитов, blame, сравнения и многое другое.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Node.js application that connects WhatsApp Web with AI models through the Model Context Protocol, enabling automated messaging, contact management, and group chat functionality through AI-driven workflows.
    19 npm
    46
    MIT
  • A
    license
    C
    quality
    F
    maintenance
    A Model Context Protocol server that connects your personal WhatsApp account to AI agents like Claude, enabling them to search messages, view contacts, retrieve chat history, and send messages via WhatsApp.
    7
    6 npm
    75
    ISC
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    A Model Context Protocol server that integrates with WaPulse WhatsApp Web API, enabling users to send messages, manage groups, handle files, and perform various WhatsApp operations programmatically.
    3 npm
    1
    -