AI-optimized MCP server for iMessage on macOS. Read, search, and send messages.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"imessage": {
"command": "/opt/homebrew/Cellar/imessage-max/VERSION/bin/imessage-max"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
A high-performance MCP (Model Context Protocol) server for iMessage that lets AI assistants read, search, and send your messages with proper contact resolution.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in communication
Asynchronous coordination layer for AI coding agents: identities, inboxes, searchable threads, and advisory file leases over FastMCP + Git + SQLite
An MCP server that securely interfaces with your iMessage database via the Model Context Protocol (MCP), allowing LLMs to query and analyze iMessage conversations. It includes robust phone number validation, attachment processing, contact management, group chat handling, and full support for sending and receiving messages.
IMAP/SMTP email MCP server — 47 tools, IMAP IDLE push, multi-account, AI triage.
Email & SMS infrastructure for AI agents — send and receive real email and text messages programmatically
MCP Security Weekly
Get CVE alerts and security updates for io.github.cyberpapiii/imessage-max and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A high-performance MCP (Model Context Protocol) server for iMessage that lets AI agents read, search, and send your messages with proper contact resolution.
Built in Swift for native macOS integration - single binary, no runtime dependencies.
The project now ships a single Swift implementation:
The old Python package has been retired and removed from the repository.
Everything current lives under swift/.
Most iMessage tools expose raw database structures, requiring 3-5 tool calls per user intent. This MCP provides intent-aligned tools:
"What did Contact A and I talk about yesterday?"
→ find_chat(participants=["Contact A"]) + get_messages(since="yesterday")
"Show me the exact details for this thread before I reply"
→ get_chat_details(chat_id="chat123")
"Show me photos from the group chat"
→ list_attachments(chat_id="chat123", type="image")
"Find where we discussed the launch timeline"
→ search(query="launch timeline")
The tools work best when an agent uses them as short workflows instead of isolated one-off calls.
Agents should treat chat_id values like chat123 as internal handles for tool calls and exact sends. When explaining results to a person, use the returned chat name, group name, or participant-derived label instead of saying "Chat 123."
find_chat(participants=["Contact A"])
get_chat_details(chat_id="chat123")
get_messages(chat_id="chat123", since="yesterday", limit=50)
Use this when the person matters more than the exact thread id.
search(query="launch timeline", limit=10)
get_context(message_id="msg_456", before=5, after=10)
Use this when you know the topic but not where it was discussed.
get_unread()
get_active_conversations(hours=24, min_exchanges=2)
Use this to surface unread threads and active conversations after a broad chat-list sweep.
list_attachments(chat_id="chat123", type="image", since="30d")
get_attachment(attachment_id="att123", variant="vision")
Use list_attachments to discover the message where files were shared first. It still returns exact attachment ids and local-availability state before you fetch a file.
find_chat(participants=["Contact A", "Contact B"])
send(chat_id="chat456", text="Please use the latest draft")
For sensitive sends, prefer resolving the exact chat first and then using chat_id so the message lands in the intended thread.
brew tap cyberpapiii/tap
brew install imessage-max
git clone https://github.com/cyberpapiii/imessage-max.git
cd imessage-max/swift
swift build -c release
# Binary is at .build/release/imessage-max
For local development, advanced setup, and the signed install workflow, see:
iMessage Max ships icons for the main MCP protocol surface and the client packag