Skip to main content
Glama
thenavidm

iMessage MCP

by thenavidm

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
IMESSAGE_DBNoDatabase to read. Point it at a copy to work against a snapshot.~/Library/Messages/chat.db
GROQ_API_KEYNoAPI key for Groq. Required for the default transcription provider.
OPENAI_API_KEYNoAPI key for OpenAI. Required when using the 'openai' transcription provider.
ELEVENLABS_API_KEYNoAPI key for ElevenLabs. Required for the 'speak' tool and for 'elevenlabs' transcription.
GROQ_WHISPER_MODELNoModel used by the 'groq' transcription provider.whisper-large-v3-turbo
IMESSAGE_STATE_DIRNoWhere the cursor is stored.~/.imessage-mcp
ELEVENLABS_VOICE_IDNoVoice ID used by the 'speak' tool.
IMESSAGE_TRANSCRIBENoTranscription provider: groq, local, openai or elevenlabs.groq
IMESSAGE_WHISPER_MODELNoModel used by the 'local' transcription provider.base

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
inboxA

Messages that have arrived since this tool last ran. The cursor is stored on disk, so anything received while nothing was running is still waiting here rather than lost. Call with peek=true to look without consuming.

search_messagesA

Search message history by text, sender, chat, or date range. Reads bodies from both the text column and the encoded attributedBody blob, so it finds messages that plain SQL cannot.

list_conversationsB

List chats by most recent activity, with resolved contact names and participants.

get_conversationA

Read one conversation in order, oldest first.

resolve_contactA

Look up a person in Contacts by name and return their sendable handles. Use before send_message when you know a name but not a number.

send_messageA

Send a message to a phone number, email, or chat GUID. Waits for Messages to confirm delivery and reports the failure if it did not go through.

send_fileB

Send a file by absolute path. Images and audio render inline in Messages.

transcribe_voice_noteA

Transcribe an audio attachment to text. Pass a message rowid to transcribe its attachments, or an absolute path. Uses the configured provider: groq by default, or local to keep the audio on this machine.

speakA

Turn text into speech with ElevenLabs and return the audio file path, optionally sending it. Note that Messages shows script-sent audio as an attachment, not as a native voice-note bubble.

server_statusB

Database reachability, cursor position, contact count, and which optional tools are installed.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 10 tools

Disambiguation4/5

Most tools target clearly distinct purposes: STT (transcribe_voice_note) vs TTS (speak), sending (send_message/send_file), receiving (inbox), and querying (search_messages/list_conversations/get_conversation). The reading tools overlap somewhat—inbox, get_conversation, and search_messages all return messages—but descriptions differentiate them by scope and cursor semantics.

Naming Consistency3/5

Most tools follow a verb_noun pattern (transcribe_voice_note, search_messages, list_conversations, get_conversation, resolve_contact, send_message, send_file), but several deviate: bare verb 'speak' and bare nouns 'inbox' and 'server_status'. Mixed conventions across the set, though each name is individually readable.

Tool Count5/5

Ten tools is well-scoped for a messaging server that combines send/receive, search, read, contact lookup, voice transcription, TTS, and diagnostics. Each tool earns its place without redundancy.

Completeness4/5

Core messaging lifecycle is covered: send text/files, receive via inbox, search history, list/read conversations, resolve contacts, plus STT/TTS and status. Minor gaps exist—no message edit/delete, reactions, or group-chat administration—but agents can handle typical workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues