Skip to main content
Glama
iMessage MCP Server

iMessage MCP Server

by viraatdas

imessage-mcp

MCP server that exposes iMessage read/send capabilities on macOS. Runs on a Mac with Messages.app and can be accessed remotely via SSH over Tailscale.

Tools

Tool

Description

list_conversations

List recent conversations with last message preview

get_messages

Get messages from a specific conversation

search_messages

Full-text search across all messages

get_contact_info

Look up contact stats by phone/email

send_message

Send an iMessage to a phone number or email

send_group_message

Send a message to a named group chat

Related MCP server: iMessage RAG MCP

Setup (local)

uv run imessage-mcp

Requires macOS with Messages.app and Full Disk Access for the terminal process.

Claude Code config (local)

{
  "mcpServers": {
    "imessage": {
      "command": "uv",
      "args": ["--directory", "/path/to/imessage-mcp", "run", "imessage-mcp"]
    }
  }
}

Claude Code config (remote via SSH)

From any device on the Tailscale network:

{
  "mcpServers": {
    "imessage": {
      "command": "ssh",
      "args": [
        "mba-server",
        "/Users/viraat/.local/bin/uv --directory /Users/viraat/Documents/imessage-mcp run imessage-mcp"
      ]
    }
  }
}

This pipes MCP stdio through SSH — the server runs on the Mac, reads chat.db, and sends via AppleScript.

Available Tools

6 tools
get_contact_infoA

Look up a contact/handle by phone number or email and return conversation stats.

Args: identifier: Phone number (e.g. +15551234567) or email address

Inputs: identifier (required). Returns: result

get_messagesA

Get messages from a specific conversation.

Args: chat_identifier: Phone number (e.g. +15551234567), email, or group chat identifier limit: Max messages to return (default 50, most recent first)

Inputs: chat_identifier (required), limit. Returns: result

list_conversationsB

List recent iMessage/SMS conversations with last message preview.

Args: limit: Max number of conversations to return (default 20)

Inputs: limit. Returns: result

search_messagesB

Search across all iMessage conversations for messages containing a query string.

Args: query: Text to search for (case-insensitive) limit: Max results to return (default 30)

Inputs: query (required), limit. Returns: result

send_group_messageB

Send a message to a named group chat.

Args: group_name: The display name of the group chat text: Message text to send

Inputs: group_name (required), text (required). Returns: result

send_messageB

Send an iMessage to a phone number or email address.

Args: recipient: Phone number (e.g. +15551234567) or email address text: Message text to send

Inputs: recipient (required), text (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: get_contact_info retrieves contact details, get_messages fetches conversation history, list_conversations shows recent chats, search_messages performs text searches, send_message sends to individuals, and send_group_message sends to groups. No overlap exists between these functions.

    Naming Consistency5/5

    All tools follow a consistent verb_noun naming pattern (e.g., get_contact_info, send_message, list_conversations). The naming is uniform throughout, using snake_case and clear action descriptors without any deviations.

    Tool Count5/5

    With 6 tools, this server is well-scoped for iMessage functionality, covering key operations like reading, sending, searching, and listing without being overly complex or too sparse. Each tool serves a specific and necessary role.

    Completeness4/5

    The toolset provides strong coverage for core iMessage tasks, including sending, receiving, searching, and listing. A minor gap exists in update or delete operations (e.g., editing or deleting messages), but agents can still handle most workflows effectively.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Enables 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.
      13
      11
      MIT
    • F
      license
      Not graded
      quality
      B
      maintenance
      Enables AI assistants to search and retrieve from your local macOS iMessage history using hybrid retrieval with context expansion, all processed locally without sending data off-device.
      -
    • A
      license
      A
      quality
      B
      maintenance
      Enables AI agents on macOS to securely read and search the local Messages database, catch up on missed messages via a persistent inbox, and send texts or files to allowlisted chats, with optional voice note transcription and text-to-speech.
      10
      27 npm
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables an agent to read the user's local Messages.app database on macOS, listing chats and threads and searching iMessage/SMS history entirely on localhost, with optional AppleScript sending gated behind an explicit flag. Access is read-only and scoped-shut by default, and replies can be optionally sent when send mode is enabled.
      4
      MIT