Skip to main content
Glama
tszaks

multimodal-imessage-mcp

by tszaks

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
IMESSAGE_MCP_RELEASESNoComma-separated list of release flags to enable optional features (e.g., auto_sms_fallback,message_mutation_tools,experimental_message_ui_actions,read_receipts)
IMESSAGE_MCP_SEND_VERIFY_DELAY_MSNoDelay in milliseconds before verifying send outcome (default 2500)

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

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
read_recent_messagesB

Read recent iMessages from your Messages app

search_messagesA

Search for messages by contact name, phone number, or message content

get_conversationA

Get full conversation thread with a specific contact or phone number, optionally filtered by time. Shows text content and indicates attachments.

list_chats_structuredB

List recent chats as structured JSON with chat IDs, handles, last sender, last message preview, group status, and message counts.

get_conversation_by_chat_idA

Get a conversation by iMessage chat_id as structured JSON. Use chat_id from list_chats_structured or find_outreach_followups.

find_outreach_followupsA

Find SMS outreach conversations that need agent review or follow-up. Returns structured candidates with status, risk labels, and evidence snippets.

send_messageA

Send an iMessage or SMS/RCS to a contact (uses AppleScript). Supports iMessage (blue bubble), SMS/RCS (green bubble), or auto-detection with verified fallback when the auto_sms_fallback release flag is enabled. IMPORTANT: Always show the user the message content and recipient before sending, and get explicit confirmation.

detect_message_serviceA

Inspect local Messages history for a recipient and recommend iMessage, SMS/RCS, or auto before sending. This is best-effort because Apple does not expose a direct preflight availability API.

send_message_batchA

Preview or send a reviewed SMS/iMessage batch. Preview returns an approval token. Sending requires the same exact batch, confirm=true, and the token.

list_delivery_failuresA

List recent outgoing messages that Messages marked failed, pending, or potentially recovered by SMS/RCS fallback. Use this to find red Not Delivered bubbles.

list_recent_chatsB

List recent active conversations, sorted by most recent activity

lookup_contactA

Look up a contact name in macOS Contacts to find their phone number or email

react_to_messageA

React to a message with an emoji (❤️, 👍, 👎, 😂, ‼️, ❓). IMPORTANT: Always show the user which message and reaction before sending, and get explicit confirmation.

get_attachmentA

Get an attachment (image, file) from a message. Returns images directly so Claude can view and analyze them. Use message IDs from get_conversation results.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 14 tools

Disambiguation2/5

Several tools overlap significantly: read_recent_messages, list_chats_structured, and list_recent_chats all list conversations with varying formats. get_conversation and get_conversation_by_chat_id retrieve threads but differ only in ID type, which could confuse agents. send_message and send_message_batch have overlapping purposes (sending messages) with subtle differences in batching.

Naming Consistency3/5

Most tools follow a verb_noun pattern (read_recent_messages, search_messages, send_message, list_delivery_failures), but there are inconsistencies: get_conversation vs get_conversation_by_chat_id (one is specific, one generic), and list_chats_structured vs list_recent_chats (both list chats but with different modifiers). The style is consistent snake_case, but the verbs (read, search, get, list, send, detect, find, lookup, react) vary without a clear hierarchy.

Tool Count4/5

14 tools is within the well-scoped range for a messaging server. The count is slightly high but justified by the need to handle message reading, searching, sending, attachments, and delivery status. Each tool serves a distinct function (though some overlap), so the count is reasonable.

Completeness3/5

The server covers core iMessage workflows: listing, searching, reading conversations, sending (including batch), reactions, attachments, and delivery failures. However, it lacks obvious lifecycle operations like deleting messages, marking as read/unread, or editing sent messages. There's also no tool to create a new conversation with a new contact, only sending to existing/known contacts. These gaps are not fatal as most agents would work around them, but they are notable for a comprehensive messaging tool.

Maintenance

ActivityMaintained
ResponsivenessNo issues