imessage-mcp
Allows reading, searching, and sending iMessages and SMS messages, as well as managing attachments and conversations.
Click on "Deploy 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-mcp show my last 5 conversations"
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-mcp
An MCP server that connects Claude Desktop to iMessage on macOS — read conversations, search messages, send texts, and access attachments.
Prerequisites
macOS
Node.js 18+
Full Disk Access granted to Claude Desktop (required to read
~/Library/Messages/chat.db)
Granting Full Disk Access
Open System Settings → Privacy & Security → Full Disk Access
Add Claude to the list and enable it
Restart Claude Desktop
Related MCP server: jons-mcp-imessage
Installation
1. Add to Claude Desktop config
Open ~/Library/Application Support/Claude/claude_desktop_config.json and add:
{
"mcpServers": {
"imessage": {
"command": "npx",
"args": ["-y", "@kamk95/imessage-mcp"]
}
}
}2. Restart Claude Desktop
Manual install (alternative)
If you prefer to run from source:
git clone https://github.com/kamrenkennedy/imessage-mcp.git
cd imessage-mcp
npm installThen use this config instead:
{
"mcpServers": {
"imessage": {
"command": "node",
"args": ["/absolute/path/to/imessage-mcp/index.js"]
}
}
}Tools
get_conversations
List recent iMessage conversations.
Parameter | Type | Description |
| number | Max conversations to return (default: 20) |
get_messages
Get messages from a specific conversation.
Parameter | Type | Description |
| string | Required. Chat ID from |
| number | Max messages to return (default: 50) |
search_messages
Search across all messages by text.
Parameter | Type | Description |
| string | Required. Text to search for |
| number | Max results to return (default: 20) |
get_chat_participants
Get the participants in a conversation.
Parameter | Type | Description |
| string | Required. Chat ID from |
send_message
Send an iMessage or SMS.
Parameter | Type | Description |
| string | Required. Phone number, email, or contact name |
| string | Required. Text to send |
get_attachments
List attachments from a conversation.
Parameter | Type | Description |
| string | Required. Chat ID from |
| number | Max attachments to return (default: 20) |
save_attachment
Save an attachment from a message to disk.
Parameter | Type | Description |
| string | Required. Attachment ID from |
| string | Required. Full path where the file should be saved |
Notes
Messages are read directly from
~/Library/Messages/chat.dbusing SQLite — no AppleScript required for readsSending uses AppleScript via
osascriptContact names are resolved from AddressBook automatically
US phone numbers are normalized (leading 1 stripped from 11-digit numbers)
Available Tools
7 toolsget_attachmentsA
Get attachments (images, files, links) from a conversation. Filter by mime type (e.g. 'image' for photos, 'application/pdf' for PDFs). Returns file paths that can be read or saved.
Inputs: limit, contact, chat_guid, mime_filter.
get_chat_participantsA
Get participants of a chat with resolved contact names. Useful for group chats.
Inputs: name, chat_id, chat_guid.
get_conversationsA
List recent conversations (individual and group) with resolved contact names. Shows group chats with participant counts.
Inputs: limit.
get_messagesA
Read messages from a conversation. Search by contact name, phone number, email, or group name. Shows resolved sender names in group chats and includes attachment info.
Inputs: contact (required), limit.
save_attachmentA
Save/copy a message attachment to a destination (defaults to Desktop). Use after get_attachments to save files.
Inputs: source_path (required), destination.
search_messagesA
Search all messages for a keyword or phrase. Shows resolved contact names and attachment info.
Inputs: query (required), limit.
send_messageA
Send a message (iMessage, SMS, or RCS) to a contact or group chat. Accepts contact names, phone numbers, emails, or chat GUIDs. Can also send file attachments.
Inputs: message (required), recipient (required), files.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Each tool targets a distinct aspect of messaging: listing conversations, reading messages, searching, sending, viewing participants, and handling attachments. No two tools have overlapping purposes, making selection unambiguous.
All tools follow a consistent verb_noun naming pattern (e.g., get_conversations, send_message, search_messages), making the API predictable and easy to navigate.
With 7 tools, the server is well-scoped for an iMessage interface, covering the core workflows without unnecessary bloat or insufficient functionality.
The tool set covers the essential lifecycle of messaging: listing, reading, searching, sending, and managing attachments. No critical operations are missing for the stated purpose.
Maintenance
Related MCP Connectors
Mac & Windows: let ChatGPT, Claude & Cursor use your email, calendar, iMessage, Teams, files.
Your own WhatsApp in Claude and ChatGPT: read chats, draft replies, send messages you approve.
Send and read iMessages from your own Mac and Apple ID — drafts, history and contacts.
MCP connector for iMessage & Contacts via a local Mac agent + Vercel relay
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Claude to send and read iMessages on macOS, with smart contact lookup, message history retrieval, and cross-conversation search using natural language commands.6MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to read iMessage history and send messages on macOS. Supports conversation listing, message search with keyword and semantic modes, contact lookup, and sending messages to existing conversations.1311MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to send and read iMessages on macOS, with human approval required for sending and no auto-replies.4 npm2Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables Claude to send and receive iMessage/SMS messages through macOS, with support for attachments, chat history, and real-time message monitoring.MIT