iMessage MCP Server
MCP server for Claude Desktop that reads iMessages, SMS, and RCS messages - including mixed group chats with Android users.
Why This Exists
Other iMessage MCP connectors fail to read:
- RCS messages (newer Android-to-iPhone messages)
- Group chats with Android users (SMS/MMS groups)
- Messages stored in
attributedBodyinstead of plain text
This server handles all of these by:
- Querying SMS, RCS, and iMessage conversations
- Decoding binary
attributedBodyblobs to extract message text - Merging duplicate chat IDs that appear for mixed-protocol groups
Features
- List all conversations (iMessage, SMS, RCS)
- Search by contact name, phone number, or group name
- Read messages from any conversation type
- Get recent messages across all chats
- Properly handles mixed iPhone/Android group chats
Installation
git clone https://github.com/DavidGreigQC/imessage-mcp-server.git
cd imessage-mcp-server
npm install
Setup with Claude Desktop
-
Open Claude Desktop config:
~/Library/Application Support/Claude/claude_desktop_config.json -
Add the server:
{ "mcpServers": { "imessage": { "command": "node", "args": ["/path/to/imessage-mcp-server/src/index.js"] } } } -
Grant Full Disk Access to Claude Desktop:
- System Settings > Privacy & Security > Full Disk Access
- Add Claude Desktop
-
Restart Claude Desktop
Usage Examples
Once configured, you can ask Claude things like:
- "List my recent conversations"
- "Search for messages from John"
- "Read messages from the work group chat"
- "Show me messages from the last 24 hours"
Available Tools
| Tool | Description |
|---|---|
list_conversations | List all conversations with last activity time |
search_conversations | Search by name, phone, or group name |
read_messages | Read messages from a specific conversation |
get_recent_messages | Get recent messages across all chats |
Requirements
- macOS (tested on Sonoma/Sequoia)
- Node.js 18+
- Claude Desktop with Full Disk Access
- Messages app with message history
How It Works
The server reads directly from the macOS Messages database (~/Library/Messages/chat.db). For RCS and some iMessage conversations, message text is stored in a binary attributedBody field rather than plain text - this server decodes that binary format to extract the actual message content.
License
MIT
