HacoLdevelopers 一般向けのサイト

よくある質問

開発者からよく出る質問と回答です。詳しい手順は、各ページにあります。

このページの内容
  1. 製品の範囲
  2. MCP
  3. 送信
  4. データと運用

製品の範囲#

HacoL は受信箱アプリですか#

いいえ。HacoL は、自分の LINE と WhatsApp を自分のサーバーに保管し、AI に MCP から読ませる構成です。AI は、管理画面で許可した部屋にだけ、停止スイッチがオフのときに限り送信できます。他社チャットの受信箱 SaaS ではありません。

どんな形で提供していますか#

いまはセルフホスト版です。自分の機械の Docker で動かし、データはその機械に残ります。LINE と自分以外の、第三者のサーバーに認証を置きません。クラウド版は準備中です。

どのメッセンジャーに対応していますか#

LINE と WhatsApp の個人アカウントです。部屋は network(line または whatsapp)で区別します。

ツール名が line_* なのに WhatsApp も返るのはなぜですか#

ツール名は歴史的な理由で line_* のままで、WhatsApp の部屋も返します。リポジトリの中のイメージ名などに残る linee は、旧称の Linee に由来します。

Compose にサービスを追加できますか#

追加しません。Compose は postgres、synapse、line-bridge、whatsapp-bridge、context-app、caddy の6サービスで固定しています。Redis やキューも使いません。

MCP#

Remote MCP は使えますか#

標準の構成では Remote MCP を公開しません。MCP サーバーは AI クライアントの手元でローカル stdio として動かします。このサイトでは stdio の手順だけを説明します。

read と agent の違いは何ですか#

read プロファイルは Read API key を使い、部屋、メッセージ、検索、メディアを取得します。agent プロファイルは Agent API key を使い、read の操作に加えて、送信を許可した部屋の一覧の取得と送信ができます。平時は read プロファイルだけを使うことを推奨します。read と agent

MCP から送信先の部屋を許可できますか#

できません。MCP には allow_send を変えるツールがありません。MCP から許可リスト、停止スイッチ、トークンの取得の操作もできません。運用者が管理画面の「送信の許可」で部屋ごとに許可します。

なぜ部屋ごとに許可が必要で、一括でオンにできないのですか#

AI が無関係な相手に投稿することを防ぐためです。送信は既定で拒否し、新しい部屋は常に allow_send=false で登録します。部屋に参加しても、送信は許可されません。

line_list_rooms で LINE と WhatsApp を分けられますか#

分けられます。line_list_rooms に network(line または whatsapp)を渡します。REST では GET /api/v1/rooms?network=line|whatsapp を使います。

送信できる部屋だけを知りたいです#

agent プロファイルの line_list_sendable_rooms を使います。送信を許可した部屋の一覧を返し、ほかの部屋は含めません。

Claude Desktop や Claude Code で使えますか#

使えます。どちらもローカル stdio の MCP サーバーとして登録します。つなぐ手順

ChatGPT で使えますか#

このサイトの手順は ChatGPT を対象にしていません。Web 版の ChatGPT は、手元で動く stdio の MCP サーバーには直接つなげません。ChatGPT デスクトップアプリとの組み合わせは確認中です。

MCP が connected なのに 401 になります#

connected は API の認証が通ったことを示しません。古いキーを持つ node …/mcp-stdio のプロセスが残っている可能性があります。ホストの .env と MCP 側の env のキーをそろえ、残っているプロセスを終了してから MCP サーバーを再起動します。API キーを入れ替えるとき

送信#

送信が成功したのに LINE に表示されません#

成功の応答の matrix_accepted は、Matrix が送信を受け付けたことを示します。LINE に届いたことは示しません。ブリッジのセッションとログを確認します。

画像を送ったのに LINE に届きません#

固定している LINE のブリッジは、メディアのキャプションを受け付けません。長いキャプションを付けた画像は matrix_accepted のあとに捨てられることがあります。line_send_media には caption や text を渡さず、file_name を短い名前にし、説明は別の line_send_message で送ります。

送信が 403 や 423 になります#

403 NOT_ALLOWLISTED は、その部屋で allow_send がオンになっていないことを示します。403 FORBIDDEN は、read キーで送信しようとしたことを示します。送信は agent キーだけです。423 SEND_DISABLED は、停止スイッチがオンになっていることを示します。

同じメッセージが2回送られるのを防げますか#

送信のリクエストに idempotency_key を付けます。同じキーのリクエストが同時に来た場合は、最初に予約した1件だけが Matrix に送信し、ほかのリクエストは結果の matrix_event_id を待ちます。同じキーで部屋、本文、返信先のどれかが違うと 409 IDEMPOTENCY_CONFLICT になります。MCP で idempotency_key を省略すると、MCP サーバーがキーを作って結果に入れて返します。

送れるファイルの大きさに上限はありますか#

あります。メディアの取得と送信はどちらも 10 MiB までです。超えると 413 MEDIA_TOO_LARGE を返します。

緊急に送信を止めるにはどうしますか#

管理画面の「バックアップと更新」で「送信を止める」を押すか、docker compose stop context-app を実行します。LINE のセッションを止めるときは docker compose stop line-bridge を実行し、LINE アプリでセッションを取り消します。

データと運用#

メッセージはどこに保存されますか#

本文とメタデータは運用者の Postgres(Context DB)に、添付は Synapse の media_store に保存します。

LINE の Letter Sealing やデータの暗号化はどうなりますか#

LINE の Letter Sealing は、ブリッジが動くホストで復号されます。Matrix の部屋の暗号化は使っていません。会話の全文を自分の DB に平文で保存します。暗号化について

相手が取り消したメッセージはどうなりますか#

行は残し、本文と添付の情報を消します。API は取り消したメッセージの本文と添付を返しません。

自分が LINE アプリから送ったメッセージが受信として表示されます#

LINE アプリで送ったメッセージは、ブリッジの上では自分の LINE ghost から届きます。.env の LINE_OWNER_GHOST_MXIDS に自分の LINE ghost の MXID をカンマ区切りで書き、context-app を起動し直します。MXID は、部屋のメンバーの一覧などで @line_ から始まる値を探します。以後に取り込むメッセージが、自分の送信として記録されます。

部屋が表示されません#

Context に表示されるのは、owner が参加した部屋だけです。AUTO_ACCEPT_INVITES=true(既定)のとき、ブリッジからの招待は自動で参加します。ほかの招待は、管理画面の「トークルーム」で「参加する」を押すまで取り込みません。部屋が空のときは docker compose logs context-app を確認します。

バックアップに秘密は含まれますか#

オプションなしの backup.sh は、.env、.runtime.env、ブリッジのセッション、署名鍵、メディアを含めません。含めるときは --include-secrets-encrypted を指定し、BACKUP_SECRETS_PASSPHRASE を設定します。Context の DB のダンプにはメッセージの本文が入ります。

LINE の同期が止まりました#

LINE の Chrome 拡張でログインすると、ブリッジのセッションが無効になります。管理画面の「LINEの接続」で「ログインをやり直す」を押し、PIN を確認します。ログインを繰り返し試しません。

LINE に QR でログインできますか#

できません。LINE のブリッジには、メールアドレスとパスワードでログインします。LINE のアカウントにメールアドレスを登録しておく必要があります。WhatsApp は QR でログインします。

管理画面にログインする URL はどこですか#

/login です。経路B では、同じホストのブラウザで https://127.0.0.1:18443/login を開きます。平文の HTTP ではログインできません。

管理画面のログインが 429 になります#

同じ接続元から15分間に5回失敗すると、15分間ログインできなくなります。15分待つか、context-app を再起動します。

VPS と、手元の機械のどちらで動かせばよいですか#

既定は、手元の Mac や常時オンの機械で Cloudflare Tunnel を使う経路です。Mac では OrbStack を使います。機械がスリープしているあいだは受け取らないので、常に受け取りたい場合はスリープしない設定にするか、VPS で 80 と 443 を開ける経路を選びます。前提

ブリッジのイメージはいつ作りますか#

bootstrap の前に、./scripts/build-line-bridge-image.sh と ./scripts/build-whatsapp-bridge-image.sh で作ります。bootstrap と Compose はブリッジをビルドしません。

動かしたあと、どう確かめますか#

./scripts/doctor.sh で診断し、./scripts/smoke-test.sh で API の動きを確かめます。smoke-test は LINE や WhatsApp に実際には送信しません。確認する

最終更新 2026年10月20日