Skip to main content
Glama
DavidGreigQC

iMessage MCP Server

by DavidGreigQC
README.md
# 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 `attributedBody` instead of plain text

This server handles all of these by:
- Querying SMS, RCS, and iMessage conversations
- Decoding binary `attributedBody` blobs 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

```bash
git clone https://github.com/DavidGreigQC/imessage-mcp-server.git
cd imessage-mcp-server
npm install
```

## Setup with Claude Desktop

1. Open Claude Desktop config:
   ```
   ~/Library/Application Support/Claude/claude_desktop_config.json
   ```

2. Add the server:
   ```json
   {
     "mcpServers": {
       "imessage": {
         "command": "node",
         "args": ["/path/to/imessage-mcp-server/src/index.js"]
       }
     }
   }
   ```

3. Grant Full Disk Access to Claude Desktop:
   - System Settings > Privacy & Security > Full Disk Access
   - Add Claude Desktop

4. 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