Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@iMessage MaxWhat did Nick say about the dinner plans yesterday?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
iMessage Max
A high-performance MCP (Model Context Protocol) server for iMessage that lets AI assistants read, search, and send your messages with proper contact resolution.
Built in Swift for native macOS integration - single binary, no runtime dependencies.
Features
12 Intent-Aligned Tools - Work the way you naturally ask questions, not raw database queries
Contact Resolution - See names instead of phone numbers via macOS Contacts
Smart Image Handling - Efficient image variants (vision/thumb/full) to avoid token bloat
Session Grouping - Messages grouped into conversation sessions with gap detection
Attachment Tracking - Know which images are available locally vs offloaded to iCloud
Native Performance - Swift with raw SQLite3, Core Image GPU acceleration
Read-Only Safe - Only reads from chat.db, send requires explicit permission
Why This Exists
Most iMessage tools expose raw database structures, requiring 3-5 tool calls per user intent. This MCP provides intent-aligned tools:
Installation
Homebrew (Recommended)
From Source
Setup
1. Grant Full Disk Access
Required to read ~/Library/Messages/chat.db:
Open System Settings → Privacy & Security → Full Disk Access
Click + to add the binary
For Homebrew installs: The binary is at /opt/homebrew/Cellar/imessage-max/VERSION/bin/imessage-max (not the symlink at /opt/homebrew/bin/). Find it with:
For source builds: Add .build/release/imessage-max from your clone directory.
Tip: In the file picker, press ⌘+Shift+G and paste the path to navigate directly.
2. Grant Contacts Access
Required for resolving phone numbers to names. The app will request access on first run, or add manually:
System Settings → Privacy & Security → Contacts → add imessage-max
3. Configure Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
For Homebrew:
For source builds:
4. Restart Claude Desktop
The MCP should now appear in Claude's tools. You can verify with the diagnose tool.
Tools
find_chat
Find chats by participants, name, or recent content.
get_messages
Retrieve messages with flexible filtering. Returns metadata for media.
get_attachment
Retrieve image content by attachment ID with resolution variants.
Variant | Resolution | Use Case | Token Cost |
| 1568px | AI analysis, OCR | ~1,600 tokens |
| 400px | Quick preview | ~200 tokens |
| Original | Maximum detail | Varies |
list_chats
Browse recent chats with previews.
search
Full-text search across messages.
get_context
Get messages surrounding a specific message.
get_active_conversations
Find chats with recent back-and-forth activity.
list_attachments
List attachments with metadata. Includes available field showing if file is on disk.
get_unread
Get unread messages or summary.
send
Send a message (requires Automation permission for Messages.app).
diagnose
Troubleshoot configuration and permission issues.
HTTP Mode
For MCP Router, MCP Inspector, or other HTTP-based integrations:
Running as a Service (Recommended)
Create a launchd plist at ~/Library/LaunchAgents/local.imessage-max.plist:
Then load it:
MCP Router Integration
Add to MCP Router as a remote-streamable server:
Session Management
The HTTP transport supports clean reconnection:
Each client connection gets its own isolated session
Sessions auto-expire after 1 hour of inactivity
If MCP Router disconnects, it can reconnect seamlessly with a fresh session
No "Server already initialized" errors on reconnection
Troubleshooting
Contacts showing as phone numbers
Run diagnose to check status. If contacts_authorized is false:
Add the
imessage-maxbinary to System Settings → Privacy & Security → Contacts
"Database not found" error
Add the imessage-max binary to System Settings → Privacy & Security → Full Disk Access
Images show "attachment_offloaded" error
Some attachments are stored in iCloud, not on disk. The list_attachments tool shows available: true/false for each attachment. To download offloaded attachments, open the conversation in Messages.app.
MCP not loading in Claude Desktop
Check config file syntax is valid JSON
Verify the binary path is correct
Restart Claude Desktop completely (Cmd+Q)
Architecture
Requirements
macOS 13+ (Ventura or later)
Full Disk Access permission
Contacts permission (for name resolution)
Automation permission for Messages.app (send only)
Development
License
MIT