Skip to main content
MCP server CX Codex

imessage-max — Claude Code MCP server for iMessage

A Swift MCP server that lets an agent read, search and send iMessage on macOS, turning phone numbers into contact names.

Install into Claude Code · Platform CLI All methods and platforms ↓
claude mcp add imessage-max -- uvx imessage-max
Open on GitHub

What imessage-max does

imessage-max ships as a single Swift binary with nothing to install at runtime. It reads chat.db read-only; sending requires Automation permission for Messages.app. The thirteen tools follow questions people actually ask rather than database tables: find_chat, get_messages, search, list_attachments, send and others.

Messages are grouped into sessions, split wherever the gap reaches 4 hours or more. Images come in three variants — vision at 1568px, thumb at 400px, and the original — so a photo need not arrive at full size. Attachment listings state whether a file sits on disk or has been offloaded to iCloud. Phone numbers map to names through macOS Contacts.

Full Disk Access has to be granted before the first run, otherwise ~/Library/Messages/chat.db stays unreadable. macOS applies that grant only to processes started afterwards, so relaunch the server once you change it. Contacts access is requested when the server starts from a terminal; a process launched headless by an MCP client never prompts, so run imessage-max --request-contacts-access from a terminal first and restart the service.

What it helps with

  • find a conversation by person instead of by number
  • pull the context around a message about a launch timeline
  • see unread threads and active conversations from the last day
  • fetch group chat photos at a smaller size
  • send a message into the exact thread via chat_id

Example prompts for the agent

  • Find my chat with Alex and show what we discussed yesterday
  • Search my messages for the launch timeline and show the surrounding context
  • Send “use the latest draft” to chat456

How to install imessage-max

Platform CLI

claude mcp add imessage-max -- uvx imessage-max

uvx runs the command named after the package; if the README names another one, use uvx --from imessage-max <command>

Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more

Questions about imessage-max

How do I install imessage-max in Claude Code?

Run claude mcp add imessage-max -- uvx imessage-max. Then grant Full Disk Access to the binary and restart the server.

What does imessage-max do?

It lets an agent read, search and send iMessage on macOS, resolving phone numbers to names from Contacts.

Why can't the server see my Contacts?

It only asks for access when started from a terminal, while an MCP client launches it headless. Grant access with imessage-max --request-contacts-access and restart the service.

Similar MCP servers

All MCP servers for Agent setup: memory, context, orchestration →

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor