LineBridge:讓 AI 讀搜傳 LINE 的非官方 MCP/CLI,授權、加密與傳送界線
固定版本查核LineBridge 0.7.14:區分非官方協定、只讀adapter與read/send grant、欄位加密與逐訊息授權;未安裝或接觸私人LINE。
一屏結論:這是個人 LINE 帳號的非官方橋接,不是官方 Bot API
Threads @ryan.tsai 說先試 Dot 網頁版、VPN 和桌面操作效果不佳,之後自己開發 ryantsai/LineBridge,提供讀取、封存搜尋與傳訊息的 MCP/CLI/HTTP 入口。已擷取原文、作者續文與公開留言,留言 coverage 為 partial;作者在封鎖風險回覆中明確承認非官方、無法保證。本文只讀公開固定版文件及程式,不按貼文要求安裝,不登入、配對、讀 Allen 的 LINE 或建立任何 connector。
原貼教學圖的證據層級
原貼歸屬圖為 Windows/macOS 的安裝指示與配對精靈示意;圖底明寫非官方工具、主帳號審慎使用、真實前端+合成資料、未登入 LINE。因此精靈截圖可以展示 UI 流程,但不是當事人帳號成功連線或所有讀/搜/傳功能 live 驗證。圖上 60 秒快速上手也是流程標語,不是首次配對、OS 授權或 release 啟動實測時間。
固定版本與平台:repo、套件與 release 分開
本次程式固定 SHA ec7435b783fb7d8da9e53e1d869ae0065c4861ac,package.json version 0.7.14;GitHub latest release 也為 v0.7.14,實際公開資產包含 Windows x64 與 macOS arm64/x64 可攜套件。package 聲明 Node >=24 並列 win32/darwin,README 目前不支持 Linux;不能因標準 MCP 就推所有 OS 都能跑。macOS Keychain 與 Windows DPAPI 主要用於 client profile,相關 OS 開啟/簽章/配對條件仍須人工處理,原始碼合併成功不等本機服務已更新。沒有下載或啟動套件。
不是僅 Dot 可用:CLI、stdio 與 HTTP 的不同層
repo 使用 @evex/linejs 第三方協定依賴,protocol worker 處理 LINE 連線;server/mcp.mjs 提供 Streamable HTTP /mcp,而 client/mcp.mjs 提供已有 protected profile 的 stdio adapter,不會替雲端 agent 自動連到本機 localhost。存取者需要可達 gateway、origin-bound credential 與到期 read/send grant。adapter 預設 mode read,read-send 才曝露傳送工具;但首次本機精靈目前會確認 read+send、建立 90 天 profile,不可把 adapter 預設只讀誤寫成整個系統一律只讀。
加密存 SQLite,不等整個 SQLite 檔與 metadata 都加密
server/vault.mjs 對選定 JSON payload 使用 AES-256-GCM,server/store.mjs 的 messages 存 cipher,Hub 讀出時解密;SQLite 仍存帳號 label、chat name、token grants、時間、審計與傳送狀態等結構欄位,不是 SQLCipher 整庫加密。Windows vault master key 由 CurrentUser DPAPI 包裝;非 Windows 路徑把 master key 存 vault-key.bin 並設 0600,不能因 CLI profile 在 macOS Keychain 就宣稱整個 archive master key 也在 Keychain。這是程式可見設計,不是滲透測試或所有日誌、備份、磁碟風險已排除。
讀取與搜尋邊界
搜尋只涵蓋指定聊天室中已收到並成功封存、可解密的文字;沒有取得的歷史、離線空檔與附件不會因 full-text search 自動補齊。README 要檢查每個 receiver stream 的 durable lastSuccessAt,不以 HTTP 200、connected 或 pending poll 當全部收訊正常。MCP 提供 read/search/events 的有限分頁與 coverage,資料返回給 agent 後仍受宿主模型 provider 的處理規則影響;本機 archive 加密不會阻止已授權解密後送往雲端模型。
傳送:scope 與冪等是真的控制,逐訊息人工核准不是自動保證
server/hub.mjs send 路徑會 authorize send grant、指定 chat、token 到期/撤銷、limit、輸入與 idempotency key,並在 dispatch 前再核 scope;未知結果會 durable 記錄而非自動重發。但一般 text send 的 server schema 沒有可驗證人類簽署的逐訊息 approval receipt,明確授權多由宿主/skill policy 遵守。擁有 send token 且曝露 send tool 不等每次都有人的確認。MCP instructions、readOnlyHint、寫入前提醒都不是 OS 安全邊界,應搭配 read-only grant、宿主批准、最小聊天室與送出前確切內容確認。
傳輸加密與已接受不等已送達
README 與 driver 區分一般 Letter Sealing、OpenChat/官方帳號/Flex 的 transport-only 特例;OA 文字及 Flex 要相應 ack,不能統稱所有訊息端到端加密。現版文件保留一次 OA text accepted、Flex INCOMPATIBLE_APP_VERSION 拒絕與群組 NOT_FOUND 等限制,這些是作者專案紀錄,非本次重測。LINE accepted/message ID 不等對方已收到、已讀或 Flex 正常顯示。delivery_unknown 不重試或換 key,先在既有授權內確認並向人回報。
採用結論與未執行項目
作者對不被封鎖的預期不是 LINE 官方保證;本次沒有查得正式個人帳號協定授權/安全承諾,也不能推論必定封鎖。可作個人帳號整合與無障礙輔助的研究候選,但要先確認非官方風險、對話參與者隱私、archive 保留期限、主金鑰/備份,以及 gateway 是否不必要暴露。根 repo MIT 已核,第三方協定、MCP SDK 與字體另有授權;MIT 不授予 LINE 服務使用權或免除封鎖風險。本次沒有安裝、改 LINE/Hermes 設定、註冊 MCP、呼叫私有 gateway、掃本機 credential 或傳出訊息。