imessage-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| IMESSAGE_SEND | No | Set to '1' to enable the send(chat, text) tool. By default sending is disabled and the tool returns a message saying sending is disabled. | 0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_chatsA | List recent iMessage/SMS chats, optionally filtered by a case insensitive substring match against the chat name, contact names, or chat identifier. Returns one line per chat with ROWID, name, last message time, and message count. |
| read_threadA | Read messages from one chat, in date order.
|
| searchA | Search decoded message bodies for a substring (case insensitive). Optionally restrict to one chat (same matching rules as read_thread) and
to messages on or after |
| whats_newA | Return every message across all chats since the last time this tool advanced its cursor, grouped by chat, oldest first within each chat. On the very first call (no cursor yet) it returns the last 24 hours.
The cursor lives at ~/.imessage-mcp/cursor.json. When |
| sendA | Send a message through Messages.app. Disabled by default. Set the environment variable IMESSAGE_SEND=1 on
this server process to enable it. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
Each tool targets a distinct action: listing chats, reading a thread, searching messages, incremental polling, and sending. Even though read_thread and search both return messages, their purposes are clearly separated and easy to tell apart.
list_chats and read_thread follow a verb_noun pattern, while search and send are bare verbs and whats_new is a phrase. All names use lower_snake_case and are readable, but the naming is not fully uniform.
Five tools is a well-scoped set for an iMessage bridge. It covers the main interactions without unnecessary redundancy or surface-area bloat.
The tool set covers the core messaging workflow: enumerate chats, read conversations, search content, poll for new messages, and send replies. There are no obvious dead ends or missing operations for the stated domain.