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 服务器方式注册,指向应用的适配器与套接字路径;可选环境变量 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 分