iMessage MCP

io.github.0xroots由 GitHub 帳號 0xroots 發布v0.2.1更新於 Nov 14, 2026

Read, search and send iMessage on macOS without Full Disk Access. Needs the iMessage MCP app.

已驗證STDIO僅桌面檔案與儲存溝通與協作

概覽

AI 產生的概覽

一款 macOS 應用程式兼本機 MCP 伺服器,讓助理不必取得完整磁碟存取權,就能列出、讀取、搜尋並傳送 iMessage/SMS。

可以做什麼
  • 列出已授權的對話,並分頁讀取某個聊天中的訊息
  • 依方向與日期篩選搜尋訊息文字,並取得某日期之後的訊息
  • 讀取附件的名稱與類型,但不讀取附件內容
  • 在畫面上確認收件人與完整內容後傳送一則訊息
適用情境
適合想讓 Mac 上的助理翻查自己的訊息紀錄、找回過去的對話,或起草並傳送簡訊,同時讓資料留在本機並受你設定的時間與數量上限約束的情況。
執行需求
需要 macOS 13 或以上版本,並安裝 iMessage MCP 應用程式(Homebrew cask、DMG,或以 Xcode 命令列工具從原始碼建置)。需在標準面板中授予應用程式對 Messages 資料夾的唯讀書籤,並逐一核准連線的用戶端。用戶端以 stdio 伺服器方式註冊,指向應用程式的轉接器與 socket 路徑;選用環境變數 IMESSAGE_MCP_APP 可指定非預設的應用程式位置。
安裝前請注意
此伺服器可代你傳送訊息,但每次傳送都需你在視窗中確認。只有在你連接的 AI 工具把內容外傳時,訊息文字才會離開你的 Mac,因此只核准自己發起的連線,並設定執行時間與訊息數量上限。同一使用者下的其他程序也能啟動轉接器。它不讀取附件內容,部分訊息內文無法解碼,且不會確認已傳送的訊息是否送達。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 iMessage MCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[iMessage MCP icon]

iMessage MCP: iMessage for AI tools, without Full Disk Access

iMessage MCP is a free, open-source macOS app and MCP server. It lets Claude Code, Codex or any MCP client read, search and send your Messages (iMessage/SMS) while your data stays on your Mac. It does not need Full Disk Access.

You pick your Messages folder once in a normal macOS panel. The app keeps a read-only bookmark to it inside the macOS sandbox, has no network access, and asks you to approve every connection and every message it sends.

  • No Full Disk Access. Verified on macOS 27.0.1 with real messages. No system-wide permission is granted. Sending a message asks macOS once for permission to control Messages only.
  • Your data stays safe. Sandboxed, read-only, no network entitlement. Text leaves your Mac only if the AI tool you connect sends it elsewhere, so each connection needs your approval and runs under limits you set.
  • You are in control. Choose how long the bridge runs and how many messages can be read. A battery shows the time left. Stop with one click.
  • Sending always asks. The exact recipient and full text are shown, and nothing is sent until you press Send this message.
  • Works without AI too. Search and read your messages inside the app.

Install

Requires macOS 13 or later.

1. Install the app

Option A, download (signed and notarized by Apple, nothing to build):

bash
brew install --cask 0xroots/tap/imessage-mcp

or download the DMG from the latest release and drag iMessage MCP to Applications. The checksum is published next to the DMG.

Option B, build from source (needs Xcode command line tools; a free Apple Development certificate is enough):

bash
git clone https://github.com/0xroots/imessage-mcpcd imessage-mcpsecurity find-identity -v -p codesigning        # note your identity and its Team IDexport MSGLOCAL_SIGN_IDENTITY="Apple Development: Your Name (XXXXXXXXXX)"export MSGLOCAL_TEAM_ID="YOURTEAMID"./scripts/install.sh                            # add --claude and/or --codex to register the server for you

Your identity and Team ID stay in your shell, never in the repository. The app and its adapter verify each other's code signature against that Team ID.

2. Connect your AI tool

ClientHow
Claude Code (plugin)/plugin marketplace add 0xroots/imessage-mcp then /plugin install imessage-mcp@imessage-mcp
Claude Code (command)claude mcp add --scope user --transport stdio imessage-mcp -- /Applications/iMessageMCP.app/Contents/Helpers/messages-mcp "$HOME/Library/Containers/org.messageslocal.app/Data/tmp/messages-mcp.sock"
Codex (plugin)codex plugin marketplace add 0xroots/imessage-mcp then codex plugin add imessage-mcp@imessage-mcp
Codex (command)codex mcp add imessage-mcp -- /Applications/iMessageMCP.app/Contents/Helpers/messages-mcp "$HOME/Library/Containers/org.messageslocal.app/Data/tmp/messages-mcp.sock"
Any MCP clientAdd a stdio server with the same command and one argument, the socket path. See docs/MCP_SETUP.md

The plugin adds the MCP server and a skill that teaches the assistant the safe way to use it. It needs the app from step 1. If you installed the app somewhere else, set IMESSAGE_MCP_APP to its path.

Use it

  1. Allow the Messages folder. Click Allow Messages folder and select ~/Library/Messages. Access is read-only.
  2. Start the AI bridge and choose your limits.
  3. Connect a tool. Add the adapter to your MCP client (see docs/MCP_SETUP.md). The first time it connects, iMessage MCP asks you to approve it: Selected chat, All chats or Deny.
  4. Stop the bridge with one click, or wait for the timer (the battery) to run out. Everything is revoked immediately.

What a connected tool can do

ToolPurpose
list_conversationsList chats you allowed
get_messagesRead messages from an allowed chat, with paging
search_messagesSearch text, with direction and date filters
get_recent_messagesMessages since a date
get_attachment_metadataAttachment names and types (never contents)
send_messageSend one message after your on-screen confirmation

Limits apply across every connection for the whole run. Some message bodies use formats that cannot be decoded yet; they are returned as unsupported and are never guessed.

Security model in one minute

  • Read-only, app-scoped bookmark to the Messages folder; no Full Disk Access.
  • No network entitlement. Message text leaves your Mac only if the tool you connect sends it elsewhere, which is why you approve each connection.
  • The adapter and the app authenticate each other by code signature and Team ID.
  • Sending uses a single Apple Event to Messages, needs a fresh confirmation each time, rejects repeated request IDs, and never retries on an unknown result.

Details, limits and the threat model: SECURITY.md.

Privacy

Everything runs on your Mac with no network code and no account. See PRIVACY.md.

FAQ

Does it need Full Disk Access? No. You choose the Messages folder in the standard file panel and the app gets a read-only, app-scoped bookmark.

Is my data sent anywhere? The app has no network entitlement. Message text leaves your Mac only if the AI tool you connect sends it elsewhere. That is why you approve each connection and set limits.

Can an AI tool send messages without asking me? No. Every message needs your confirmation in a window that shows the recipient and the full text.

Which AI tools work? Any client that supports stdio MCP servers, including Claude Code and Codex.

What does it not do? It does not read attachment contents, cannot decode every archived message body yet, and cannot confirm delivery of sent messages.

Development

bash
./scripts/test.sh       # unit tests, no signing or Messages access needed./scripts/build.sh      # build and sign

Layout: Sources/App (interface), Sources/Bridge (local server, limits, approvals, sending), Sources/Reader (read-only SQLite reader and body decoder), Sources/Adapter (stdio MCP adapter), Tests.

Known limitations

  • Some archived message bodies cannot be decoded and are marked unsupported.
  • The request-ID journal holds 1,000 IDs and fails closed when full; there is no reset yet.
  • Delivery of a sent message is not confirmed by the app; check Messages.
  • Same-user processes can launch the adapter, so approve only requests you started.

License

MIT. See LICENSE.

來源:README.md,提交 80c87c0

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.2.1最新Nov 14, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分