The most complete iMessage MCP server for Claude. Read conversations, search messages, view image attachments, send messages, and look up contacts. Solves the macOS attributedBody bug that breaks 93% of messages in other iMessage tools.
Server has 10 tools with explicit schemas and descriptions. Naming follows verb_noun convention (get_, send_, search_, etc.). Descriptions are present but vary in quality (50-150 chars, below the 194-char baseline). Schemas include types and descriptions for most parameters. Critical gaps: no output schemas documented, missing error handling guidance, no parameter validation rules stated, and batch operations lack clear approval/risk semantics. Tool composition is reasonable but send_batch_messages conflates multiple concerns (risk assessment + approval + sending).
Analyze iMessage conversations to identify sales outreach candidates and classify replies
Edit a previously sent iMessage (within 15 minute window)
Retrieve a specific attachment from an iMessage message as base64-encoded data
Retrieve all messages from a specific iMessage conversation with optional limit
Fetch a list of recent iMessage conversations with optional filtering by hours_ago and limit
Retrieve all contacts from the system address book
Search for messages across all iMessage conversations by text content
No output schemas documented. Tools return JSON but LLMs cannot infer field structure, types, or chaining IDs needed for downstream calls.
send_batch_messages conflates risk assessment, approval token validation, and message sending into one tool. Should split into separate tools: assess_batch_risk → request_approval → send_batch_messages.
Parameter descriptions lack validation rules. E.g., 'limit' has no min/max bounds; 'hours_ago' has no range; 'service' enum is documented but no default behavior stated when omitted.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Send multiple iMessage or SMS messages in a batch with risk assessment and approval tokens
Send an iMessage or SMS message to a recipient
Unsend a previously sent iMessage (within 2 minute window)
No error handling guidance. Tools do not document what errors are retryable, user-fixable, or fatal. No recovery hints (e.g., 'If chat not found, call get_chats() first').
Approval token mechanism in send_batch_messages is underdocumented. No description of how to obtain approval_token, what risk_level values are valid, or what happens if token is invalid/missing for high-risk batches.