自分の LINE を、手元の MCP から読む
HacoL は、自分の LINE と WhatsApp の個人アカウントを自分のサーバーにつなぎ、メッセージを自分のサーバーに保管し、AI から読むためのセルフホストの構成です。AI は、管理画面で許可した部屋にだけ、停止スイッチがオフのときに限り送信できます。AI クライアントとは、手元で動かすローカル stdio MCP で接続します。
最短ルート#
手順3 1部屋を読む#
line_list_roomsで得たroom_idをline_get_recent_messagesに渡し、エラーなしで返れば完了です。
構成#
HacoL は、Matrix を LINE と WhatsApp との接続に使い、context-app を AI から読むための仕組みに使います。
beeper/line固定した版mautrix/whatsapp固定した版synapseMatrix のホームサーバー。Element(任意)から人が読む、手で送るcontext-app取り込み、検索、許可リストと停止スイッチ、送信、監査、管理画面、添付の取得、REST APIline_* ツール。応答に network が入ることがあります- Compose の6サービス(
postgres、synapse、line-bridge、whatsapp-bridge、context-app、caddy)で動かします。7つ目のサービスは追加しません。 caddyはリバースプロキシです。外からの HTTP と HTTPS を受け、context-appとsynapseに振り分けます。context-appは Node.js 22 と TypeScript で書かれた1つのプロセスです(Fastify、pg、Zod)。取り込み、検索、送信を別サービスに分けていません。- AI クライアントは、REST API を呼ぶローカル stdio MCP を使います。標準の構成では Remote MCP を公開しません。
Element についてメッセージは、AI のアプリから MCP で読みます。LINE と WhatsApp へのログインは、context-app の管理画面で行います。Element(Matrix の Web クライアント)は、人がメッセージを見たり手で送ったりしたいときに使う、任意の画面です。
つなげる AI のアプリ#
- Claude Desktopstdio
- Claude Codestdio
- ChatGPT デスクトップアプリ対応を確認中です
- Gemini CLI対応を確認中です
ChatGPT デスクトップアプリと Gemini CLI は、公式の文書では stdio の MCP に対応しています。HacoL との組み合わせは、まだ確かめていません。Web 版の ChatGPT と Gemini アプリは、手元の stdio MCP にはつなげないため、このサイトの手順の対象外です。各社の名称は、各社の商標です。
HacoL がすること、しないこと#
| HacoL がすること | HacoL がしないこと |
|---|---|
| 個人のメッセンジャーのセルフホストでの保管と、AI からの読み取り | 他社チャットの受信箱 SaaS |
| 送信は既定で拒否し、部屋ごとに許可する | 全部屋への自動送信 |
| ローカル stdio MCP | 標準の構成での Remote MCP の公開 |
| 1人の運用者が動かす1つの構成 | マルチテナントの運用 |
固定している原則#
READ_SCOPE=all_bridged_line_rooms
SEND_SCOPE=explicit_allowlist
DEFAULT_SEND=deny
AI_NEVER_RECEIVES_MATRIX_OWNER_TOKEN=true送信は既定で拒否
新しい部屋は
allow_send=falseで登録します。AI は、管理画面で許可した部屋にだけ、停止スイッチがオフのときに限り送信できます。停止スイッチ
管理画面の「バックアップと更新」で「送信を止める」を押すと、すべての送信が
SEND_DISABLED(423)で止まります。.envの初期値はSEND_ENABLED=falseです。AI に渡さない秘密
Matrix の owner トークンは context-app だけが使います。AI に渡るのは read か agent の API キーだけです。
MCP から変えられないもの
許可リスト、停止スイッチ、トークンの取得は MCP のツールにありません。管理画面で人が操作します。
提供の形#
セルフホスト版
いま提供している形です。手元の Mac の OrbStack か、自分のサーバーの Docker で動かし、データはその機械に残ります。LINE と自分以外の、第三者のサーバーに認証を置きません。PC 版の LINE は要りません。
クラウド版(準備中)
クラウド版を準備中です。公開の条件は Threat model に書いています。
非公式のブリッジについて#
非公式のブリッジですLINE と WhatsApp のブリッジは非公式です。LINE 公式の Messaging API ではなく、LINE ヤフー社との提携もありません。upstream の変更で止まることがあり、アカウントがログアウトされたり、利用を制限されたり、停止されたりするおそれがあります。動き続けることやログインの継続は約束しません。
ツール名と識別子についてツール名は歴史的な理由で line_* のままで、WhatsApp の部屋も返します。リポジトリの中のイメージ名やネットワーク名には、旧称の Linee に由来する linee が残っています。
ページ一覧#
最終更新 2026年10月20日