iMessage MCP Server
Enables reading, searching, and sending iMessages directly from MCP-compatible clients by accessing the local macOS iMessage database, supporting conversations, attachments, and both individual and group chats.
README
๐ฌ iMessage MCP Server
Access your iMessage conversations through the Model Context Protocol
<p align="center"> <strong>Read, search, and send iMessages</strong> directly from Claude, Cursor, or any MCP-compatible client.<br> No external servers required โ works locally with your iMessage database. </p>
โ ๏ธ Local-only server โ This MCP server reads directly from local macOS database files (~/Library/Messages/chat.db and ~/Library/Application Support/AddressBook/). It must run on the same Mac where your iMessages are loaded and Apple ID is configured. Remote or cloud deployment is not supported.
โจ Features
<table> <tr> <td width="50%">
๐ฅ Read Messages
- Get recent messages with smart filtering
- View unread messages grouped by sender
- Search across all conversations
- Filter by date, service (iMessage/SMS), attachments
</td> <td width="50%">
๐ฌ Conversations
- View full chat history with any contact
- See recent conversations at a glance
- Support for group chats
- Track read/unread status
</td> </tr> <tr> <td width="50%">
๐ค Send Messages
- Send text messages to any contact
- Share images and files
- Send multiple attachments at once
- Works with phone numbers and emails
</td> <td width="50%">
๐ Attachments
- Browse messages with attachments
- Get attachment metadata (size, type, path)
- Filter for images only
- View all attachments in a conversation
</td> </tr> </table>
๐ Quick Start
Prerequisites
- macOS with iMessage configured
- Node.js 18 or later
- Full Disk Access permission (see below)
Installation
git clone https://github.com/sameelarif/imessage-mcp.git
cd imessage-mcp
pnpm install
pnpm build
Granting Full Disk Access
The MCP server needs permission to read your iMessage database.
- Open System Settings โ Privacy & Security โ Full Disk Access
- Click the + button
- Add your terminal app (Terminal, Claude Desktop, Cursor, Warp, VS Code, Ghostyy, etc.)
- Restart the application
๐ง Configuration
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"imessage": {
"command": "node",
"args": ["/absolute/path/to/imessage-mcp/dist/index.js"]
}
}
}
Environment Variables
| Variable | Description | Default |
|---|---|---|
LOG_LEVEL |
Logging verbosity (debug, info, warn, error) |
info |
DEBUG |
Enable SDK debug mode | false |
๐ ๏ธ Available Tools
<details> <summary><strong>๐ฅ Message Tools</strong></summary>
| Tool | Description |
|---|---|
get-messages |
Get messages with filters (sender, date, service, attachments) |
get-unread-messages |
Get unread messages grouped by sender |
search-messages |
Search messages by text content |
send-message |
Send a text message |
send-image |
Send an image |
send-file |
Send a file attachment |
</details>
<details> <summary><strong>๐ฌ Conversation Tools</strong></summary>
| Tool | Description |
|---|---|
get-conversation |
Get full chat history with a contact |
get-recent-conversations |
Overview of recent chats |
get-chat-messages |
Get messages from a specific chat/group |
</details>
<details> <summary><strong>๐ Attachment Tools</strong></summary>
| Tool | Description |
|---|---|
get-attachments |
Get messages with attachments |
get-conversation-attachments |
Get all attachments from a conversation |
send-files |
Send multiple files at once |
</details>
๐งช Test Client
An interactive CLI is included for testing with the Vercel AI SDK:
export OPENAI_API_KEY=sk-...
pnpm test-client
Commands: exit โข clear โข tools
๐ Project Structure
src/
โโโ index.ts # MCP server entry point
โโโ test-client.ts # Interactive test client
โโโ tools/
โ โโโ messages.ts # Message tools
โ โโโ conversations.ts # Conversation tools
โ โโโ attachments.ts # Attachment tools
โโโ utils/
โโโ logger.ts # Pretty CLI logging
โโโ sdk.ts # SDK initialization
๐ Scripts
| Script | Description |
|---|---|
pnpm build |
Compile TypeScript |
pnpm dev |
Watch mode |
pnpm start |
Run the MCP server |
pnpm test-client |
Interactive test client |
pnpm clean |
Remove build artifacts |
๐ Acknowledgements
- Built with @photon-ai/imessage-kit for iMessage database access
- Uses the Model Context Protocol by Anthropic
- Test client powered by Vercel AI SDK
๐ License
Licensed under the MIT License.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.