whatsapp について
whatsappは、wacli WhatsApp CLIの前段に置くホスト型MCPゲートウェイです。自分のWhatsAppアカウントをMCPクライアントから利用したい人向けで、QRコードで連携し、テナントごとにデータを分離します。メッセージ送信は任意で有効化できます。
主な機能
- 01QRコードでWhatsAppアカウントを連携
- 02BearerトークンによるMCPリクエスト認証
- 03メッセージの読み取りと検索
- 04任意でメッセージ送信ツールを有効化
- 05テナントごとのストレージ分離
活用シーン
- 01MCPクライアントからWhatsAppメッセージを検索する
- 02ローカルで実行せずに連携済みアカウントへアクセスする
- 03アカウントごとにストレージとトークンを分ける
- 04アカウント所有者の承認時のみメッセージ送信を許可する
MCP 対応
ゲートウェイは/mcpでStreamable HTTPによるMCPサーバーを提供し、Bearerトークンで認証します。読み取り・検索ツールを公開し、テナント設定で許可された場合のみsend_messageを登録します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://wacli.me/mcpclaude mcp add --transport http me-wacli-whatsapp https://wacli.me/mcp{"mcpServers":{"me-wacli-whatsapp":{"type":"http","url":"https://wacli.me/mcp"}}}Cursor で開く{"servers":{"me-wacli-whatsapp":{"type":"http","url":"https://wacli.me/mcp"}}}VS Code で開く{"mcpServers":{"me-wacli-whatsapp":{"type":"http","url":"https://wacli.me/mcp"}}}{"mcpServers":{"me-wacli-whatsapp":{"serverUrl":"https://wacli.me/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
wacli.me
wacli WhatsApp CLI の前段にある、ホスト型 MCP ゲートウェイです。
使い方:ユーザーが一度 WhatsApp アカウントをリンクすると(WhatsApp Web のように QR コードを使用)、URL とベアラートークンが発行されます。これにより、どの MCP クライアントからでも、ローカルで何も実行せずにメッセージを読み取り、検索できます。また、オプションで送信もできます。
ステータス:パブリックアルファです。単一ホスト、単一プロセスで稼働します。https://wacli.me で公開中です。
MIT ライセンスです。セルフホストも第一級の選択肢です。下記の「実行」を参照してください。
構成
server/ Node MCP server (Streamable HTTP) + static file serving
site/ website sources (pages + layout + assets)
web/ generated site, built from site/ by scripts/build.mjs — never edit
config/ tenants.json (gitignored) — token -> store mapping
bin/wacli pinned wacli binary, isolated from any system install
stores/ one wacli store directory per tenant (gitignored)
scripts/ start/stop/tunnel helpers
エンドポイント
| パス | 目的 |
|---|---|
/ | ランディングページ |
/mcp | Streamable HTTP による MCP。Authorization: Bearer … を使用 |
/healthz | 稼働状況 + テナント数 |
/connect | セルフサービスでのリンク:ライブ QR コードを表示し、トークンを発行 |
/.well-known/oauth-* | OAuth 2.1 のディスカバリー — クライアントが各自の認証情報を取得 |
テナント
config/tenants.json:
{
"tenants": [
{ "id": "demo", "token": "<32 random bytes, hex>", "store": "/Users/<user>/wacli-me/stores/demo", "allowSend": false }
]
}
このファイルは 5 秒ごとに再読み込みされるため、テナントの追加に再起動は不要です。トークンは 1 つのストアディレクトリだけに対応します。ツールはリクエストごとにそのストアを使って構築されるため、2 つのテナントが互いのデータを参照することはできません。allowSend は send_message ツールを登録するかどうかを指定します。アカウント所有者が書き込みアクセスを明示的に求めた場合を除き、false のままにしてください。
openssl rand -hex 32 でトークンを生成します。
実行
npm install --prefix server
node scripts/build.mjs # site/ -> web/
PORT=8787 HOST=127.0.0.1 node server/server.mjs
環境変数:
| 変数 | デフォルト | 説明 |
|---|---|---|
PORT | 8787 | リッスンポート |
HOST | 127.0.0.1 | バインドアドレス — ループバックのままにし、トンネル経由で公開してください |
WACLI_BIN | ./bin/wacli | wacli バイナリ |
WACLI_ME_TENANTS | ./config/tenants.json | テナントファイル |
アカウントのリンク
bin/wacli --store stores/<tenant> auth # prints a QR, scan it on the phone
bin/wacli --store stores/<tenant> sync # backfill history (long-running; run as a daemon)
同期デーモンがない場合、ストアに保存されるのは最後の実行時に取得したデータのみです。
セキュリティに関する注意
- ループバックにバインドし、トンネル経由で公開してください。ポートを直接公開しないでください。
- すべての MCP リクエストに有効なベアラートークンが必要です。トークンは一定時間で比較されます。
- 読み取りでは
--read-onlyを指定して wacli を実行するため、ツール呼び出しが侵害されてもストアを変更できません。 - QR コードによるリンクはリンク済みデバイスです。ストアを保有する人は、そのアカウントのメッセージを読めます。ストアディレクトリとテナントトークンは認証情報として扱ってください。
ライセンス
MIT ライセンスです。詳細は LICENSE を参照してください。site/assets/qrcode.min.js は Kazuhiko Arase の qrcode-generator で、変更なしで同梱されています(MIT)。wacli 自体は別個の MIT プロジェクトです。このリポジトリは wacli を操作するだけです。
アカウントのリンクには非公式の WhatsApp クライアントを使用します。これは WhatsApp の利用規約に違反しており、Meta が電話番号をブロックする可能性があります。ご自身が所有するアカウントで実行し、ユーザーにも同じことを伝えてください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。