WhatsApp Chat Reader (Unofficial) について
WhatsApp Chat Reader (Unofficial)は、WhatsAppデスクトップアプリのローカルチャットデータベースを読み取る読み取り専用ツールです。自分の会話履歴を検索・分析したい人向けで、データは端末内にとどまり、MCPクライアントからメッセージやアクティブなチャット名を取得できます。
主な機能
- 01ローカルチャットデータベースへの読み取り専用アクセス
- 02指定期間内のメッセージ本文を取得
- 03グループまたは個人チャットで絞り込み
- 04アクティブなチャット名の一覧
- 05オフラインのアクティビティダッシュボード生成
活用シーン
- 01最近のグループ会話の要約
- 02期間内にアクティブだったチャットの確認
- 03メッセージ活動の時間的な変化の確認
MCP 対応
MCP サーバーとして、メッセージ本文の取得とアクティブなチャット一覧の読み取り専用ツールを提供します。データはローカルのMCPクライアントにのみ返されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx wa-chat-readerWHATSAPP_DB_PATHSSemicolon-separated paths to ChatStorage.sqlite. If unset, a platform default is used.WHATSAPP_BACKUP_PATHSSemicolon-separated fallback database paths, tried after the primary paths.WHATSAPP_MAX_DAYSMaximum look-back window in days a caller may request.WHATSAPP_DEBUGSet to 'true' for verbose logging to stderr.WHATSAPP_LOG_FILEOptional path to also write logs to a file.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
wa-chat-reader
ローカルのWhatsAppチャット履歴を対象とする、非公式かつ読み取り専用のMCPサーバーです。
wa-chat-readerは、お使いの端末にWhatsAppデスクトップアプリが保存しているWhatsAppのChatStorage.sqliteデータベースを読み取り、あらゆるMCPクライアント(Claude
Code、Claude Desktopなど)に2つのツールを提供します。これにより、ご自身のメッセージを要約、検索し、内容について考察できます。すべての処理はローカルで行われ、データがコンピューターの外部に送信されることはありません。
⚠️ WhatsAppまたはMetaとは提携、推奨、関係のいずれもありません。 「WhatsApp」はMeta Platforms, Inc.の商標です。このツールは独立した非公式ツールであり、お使いのデバイスにWhatsAppがすでに保存しているデータベースを読み取るだけです。
プライバシーとセキュリティ
このツールは、プライベートな会話など、非常に機微なデータを扱います。最初にこちらをお読みください。
- 読み取り専用です。 データベースはSQLiteの
mode=ro&immutable=1で開かれます。サーバーがデータを書き込んだり、変更したり、削除したりすることはありません。 - ローカルのみで動作します。 ネットワーク関連のコードはありません。メッセージはMCPクライアントに返されるだけで、それ以外の場所に送信されることはありません。接続するLLM/クライアントは、読み取りを指示したメッセージのテキストを当然確認できます。実行するクライアントを選ぶことで、その内容を制御できます。
- ご自身の同意とデータを尊重してください。 ご自身のデバイスとチャットに対してのみ実行してください。他人のメッセージへのアクセスには使用しないでください。
- macOSでのアクセス。 WhatsAppのデータベースは保護されたグループコンテナにあります。このサーバーを実行するプロセスにはフルディスクアクセス(システム設定 → プライバシーとセキュリティ → フルディスクアクセス)が必要です。または、
WHATSAPP_DB_PATHSに、ご自身でエクスポートした読み取り可能なコピーのパスを指定してください。 - 対象範囲の制御。
WHATSAPP_MAX_DAYS(デフォルトは30)により、1回の呼び出しで読み取れる期間の上限が設定されます。
インストール
Python ≥ 3.10が必要です。サーバーを隔離された環境で実行できるuvの使用を推奨します。
# one-shot run (no install)
uvx wa-chat-reader
# or install with pip
pip install wa-chat-reader
wa-chat-reader
Claude Codeでの使用
claude mcp add wa-chat-reader -- uvx wa-chat-reader
または、プラグインとしてインストールして(下記のマーケットプレイスのセクションを参照)、Claudeに次のような質問をしてみてください。
- 「過去3日間の未読WhatsAppグループチャットを要約してください。」
- 「今週アクティブにやり取りしたWhatsAppチャットを一覧表示してください。」
設定
設定はすべて環境変数で行います(いずれも任意です)。
| 変数 | デフォルト | 説明 |
|---|---|---|
WHATSAPP_DB_PATHS | プラットフォームごとのデフォルト | ChatStorage.sqliteの候補パスを;で区切って指定します(最初に読み取り可能なパスが使用されます) |
WHATSAPP_BACKUP_PATHS | — | ;で区切ったフォールバックパスです。プライマリパスの後に試されます |
WHATSAPP_MAX_DAYS | 30 | 呼び出し元が指定できる遡及期間の上限(日数) |
WHATSAPP_DEBUG | false | trueにすると、stderrに詳細なログを出力します |
WHATSAPP_LOG_FILE | — | ログをファイルにも書き込む場合の任意のパス |
デフォルトのデータベースの場所:
| OS | パス |
|---|---|
| macOS | ~/Library/Group Containers/group.net.whatsapp.WhatsApp.shared/ChatStorage.sqlite |
| Windows | ~/AppData/Roaming/WhatsApp/Databases/ChatStorage.sqlite |
| Linux | ~/.local/share/whatsapp/ChatStorage.sqlite |
ツール
| ツール | 説明 |
|---|---|
get_whatsapp_messages | 指定した遡及期間内のグループチャットと個人チャットから、メッセージテキストを連結して取得します。パラメーター:days(1~最大値)、chat_type(all/groups/personal)。読み取り専用です。 |
get_whatsapp_chat_list | 指定した遡及期間内のアクティブなチャット名を取得します(メッセージ本文は含みません)。パラメーター:days。読み取り専用です。 |
どちらのツールにもreadOnlyHint: trueが注釈されています。
おまけ:アクティビティダッシュボード
whatsapp_dashboard.pyを実行すると、同じデータベースからメッセージのアクティビティ(時間ごとの件数、日次・週次の傾向、上位のチャット)を表示する、自己完結型のオフラインHTMLダッシュボードを生成します。
python3 whatsapp_dashboard.py # -> whatsapp_dashboard.html
生成されるHTMLには実際の連絡先名が含まれます。このファイルはgitの追跡対象から除外されており、ローカルに保存しておくことを想定しています。
開発
git clone https://github.com/NabheetCloud/wa-chat-reader
cd wa-chat-reader
pip install -e .
python3 simple_whatsapp_mcp.py # run from source without installing
ライセンス
MIT © 2026 Nabheet Madan
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。