会話の保存先とAIへ渡る範囲
finereli/whatsapp-mcpは、自分のWhatsApp会話をMCPクライアントから検索・参照するための小さなサーバです。以下はコミット 64f1b30の実装を対象にしています。[1]
CloudflareのDurable Object内でBaileysがWhatsAppの連携端末として動き、WhatsAppサーバから履歴や受信イベントを取り込みます。会話本文、チャットや連絡先の名前に加え、Baileysの認証情報とSignalキーもDurable ObjectのSQLiteに保存されます。OAuthトークンと一時的なサインイン情報の保存先は、別のWorkers KVです。[1, 2, 6]
認可したクライアントが検索・参照ツールを呼ぶと、その結果がMCP応答として返ります。プロジェクトのプライバシー説明には、エージェントが読み取った本文が、その運営者へ渡ると明記されています。保存先を自分のCloudflareアカウントにしても、取り出した本文の処理先は接続するエージェントによって変わります。[8, 7]
チャットへのメッセージ送信ツールはありません。ただし、set_contact_namesは表示名を保存し、relinkは再連携を始めます。送信機能の有無と、内部状態を変更できる範囲は分けて考える必要があります。所有者1人で使う前提の実装です。[8, 5, 6, 13]
検索で見つかるものと、取り込めないもの
検索はSQLite FTS5による本文のキーワード検索です。単語を並べた入力はAND条件に変換され、チャットや期間でも絞り込めます。意味の近さで探す検索ではありません。search_messagesは本文の抜粋を返します。[3, 4]
例えば、旅行の相談から宿の名前を探す用途でも、検索対象は取り込めた本文です。全履歴や添付ファイルの内容まで検索できる前提にはできません。
| 対象 | 取得・保存の条件 |
|---|---|
| 過去の会話 | 初回リンク時にWhatsAppが新しい端末へ渡す範囲です。全件を取得できる保証はありません。[12] |
| 履歴の再取り込み | relink後に人が新しいQRコードを読み取ります。保存済みメッセージは保持されます。[13, 14] |
| 写真・音声・文書 | メディア本体はダウンロードしません。種別ラベルと、付いていればキャプションを本文として保存します。音声の文字起こしはしません。[15] |
| メッセージの編集・削除 | 反映する処理はありますが、作者は実際の編集・削除メッセージを使った動作確認はしていないと記載しています。[21] |
初回履歴の取り込みはリンクごとに一度です。作者が動作を確認した実アカウントは1件です。[12, 21, 22]
list_chats、get_messages、search_messagesの呼び出し時には、前回の取得記録から10分以上経っていれば、WhatsAppからの追加取得を試みます。[4]
これとは別に、毎日04時00分 UTC(日本時間13時00分)の定期実行設定に従う取得処理と、sync_nowによる手動同期もあります。
連絡先の名前補完では、Worker自身は連絡先サービスに接続せず、エージェント側の既存ツールで番号を照合した結果をset_contact_namesで保存します。[5]
Paid前提の理由と料金の読み方
配布設定のwrangler.jsoncはlimits.cpu_msを300,000ミリ秒にしています。作者は大量の初回履歴を展開する際のCPU時間を確保するためにWorkers Paidを必要条件としています。CloudflareのDurable Objectsでは、CPU時間は既定30秒から最大5分へ設定できます。この上限は処理時間の実測値ではありません。[9, 16]
作者はこのプロジェクトをFreeで試していません。READMEにはFreeで試すならlimitsブロックを削除する説明がありますが、初回取り込みが不安定になる見込みも併記されています。[17]
Workers Paidの最低料金はアカウントあたり月額5米ドルで、含まれる利用枠を超えると従量料金が加わります。「このアプリを月5米ドルの固定額で使える」という料金設定ではありません。会話を保存し続ける容量や読み書きも、Durable Objectsの料金条件で確認する必要があります。[10, 11]接続先AIサービスに利用料金がある場合は、その料金もサーバの運用費とは別に確認します。
非公式連携としての利用条件
BaileysはWhatsApp Webと同じ通信プロトコルを使うライブラリです。作者はREADMEで、この方式を非公式とし、WhatsAppの規約に反すると記しています。読み取り用でもアカウントへのリスクはゼロではないとの注意があります。[18, 19]
WhatsAppの公式規約にも許可されていない方法での利用の禁止と、違反時の利用停止・アカウント無効化が定められています。導入の判断には、取り込める履歴の範囲、会話本文を処理するエージェントの運営者、Cloudflareの費用に加え、この非公式な接続方式を受け入れられるかが関わります。[20]



