Skip to main content
Glama

📱 WhatsApp MCP — リモートHTTP/SSEサーバー

WhatsApp用Model Context Protocol (MCP) サーバー。whatsapp-web.js とTypeScriptで構築されています。 ローカルstdio (Claude Desktop) と リモートHTTP/SSE (Claude.ai Remote MCP) の両方のモードをサポートしています。


⚠️ WhatsApp利用規約 — 重要

このプロジェクトを使用する前に必ずお読みください。

WhatsAppの利用規約および利用規定では、個人アカウントやビジネスアカウントでの非公式な自動化ツールの使用を禁止しています。

🚫 アカウントが停止(BAN)される可能性のある行為:

違反行為

リスクレベル

大量送信/スパムメッセージ

🔴 即時BAN

未知の番号へのメッセージ自動化

🔴 即時BAN

非公式WhatsAppクライアント(whatsapp-web.jsなど)の使用

🟠 高リスク

大規模な連絡先やグループデータのスクレイピング

🟠 高リスク

ユーザーの同意なしにメッセージを送信する

🔴 即時BAN

個人番号で24時間365日ボットを稼働させる

🟡 中リスク

メディア/ファイルを大量に送信する

🟠 高リスク

✅ より安全な運用方法:

  • 個人番号ではなく、専用のテスト用電話番号を使用してください

  • 同意を得た連絡先にのみメッセージを送信してください

  • メッセージの頻度を低く抑え、人間らしい動作を心がけてください

  • API_KEYによる保護なしに /sse やRESTエンドポイントを公開しないでください

  • マーケティング、セールスの一斉送信、または大規模な商用メッセージングには使用しないでください

  • 本番環境や商用利用には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

WhatsAppでQRコードをスキャンします → リンクされたデバイス → デバイスをリンク。


🔌 APIエンドポイント

メソッド

パス

説明

GET

/ または /health

ヘルスチェック + WhatsAppステータス

GET

/qr

QRコードHTMLページ(スキャンして認証)

GET

/qr?format=json

JSON形式の生QRデータ

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トークン認証

API_KEY環境変数を設定してRESTエンドポイントを保護します:

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 → 設定 → 統合 → 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. デプロイし、https://your-app.onrender.com URLをコピー

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: メッセージを1件送信

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

(空)

REST認証用のオプションのBearerトークン

NODE_ENV

development

Render上では production に設定


🤝 コントリビューション

プルリクエストを歓迎します!大きな変更を行う場合は、まずIssueを開いてください。


📜 ライセンス

MIT — 責任を持って、WhatsAppの利用規約に従って使用してください。


💡 ヒント: VS Codeに GitLens拡張機能 をインストールすると、コミット履歴、Blame、比較など、より充実したGit体験が得られます。

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.
    26 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
    16 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
    -