Skip to main content
Glama
sameelarif

iMessage MCP Server

by sameelarif

πŸ’¬ iMessage MCP Server

Access your iMessage conversations through the Model Context Protocol

⚠️ Local-only server β€” This MCP server reads directly from local macOS database files (~/Library/Messages/chat.db and ~/Library/Application Support/AddressBook/). It must run on the same Mac where your iMessages are loaded and Apple ID is configured. Remote or cloud deployment is not supported.


✨ Features

πŸ“₯ Read Messages

  • Get recent messages with smart filtering

  • View unread messages grouped by sender

  • Search across all conversations

  • Filter by date, service (iMessage/SMS), attachments

πŸ’¬ Conversations

  • View full chat history with any contact

  • See recent conversations at a glance

  • Support for group chats

  • Track read/unread status

πŸ“€ Send Messages

  • Send text messages to any contact

  • Share images and files

  • Send multiple attachments at once

  • Works with phone numbers and emails

πŸ“Ž Attachments

  • Browse messages with attachments

  • Get attachment metadata (size, type, path)

  • Filter for images only

  • View all attachments in a conversation


Related MCP server: mac-messages-mcp

πŸš€ Quick Start

Prerequisites

  • macOS with iMessage configured

  • Node.js 18 or later

  • Full Disk Access permission (see below)

Installation

git clone https://github.com/sameelarif/imessage-mcp.git
cd imessage-mcp
pnpm install
pnpm build

Granting Full Disk Access

The MCP server needs permission to read your iMessage database.

  1. Open System Settings β†’ Privacy & Security β†’ Full Disk Access

  2. Click the + button

  3. Add your terminal app (Terminal, Claude Desktop, Cursor, Warp, VS Code, Ghostyy, etc.)

  4. Restart the application


πŸ”§ Configuration

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "imessage": {
      "command": "node",
      "args": ["/absolute/path/to/imessage-mcp/dist/index.js"]
    }
  }
}

Environment Variables

Variable

Description

Default

LOG_LEVEL

Logging verbosity (debug, info, warn, error)

info

DEBUG

Enable SDK debug mode

false


πŸ› οΈ Available Tools

Tool

Description

get-messages

Get messages with filters (sender, date, service, attachments)

get-unread-messages

Get unread messages grouped by sender

search-messages

Search messages by text content

send-message

Send a text message

send-image

Send an image

send-file

Send a file attachment

Tool

Description

get-conversation

Get full chat history with a contact

get-recent-conversations

Overview of recent chats

get-chat-messages

Get messages from a specific chat/group

Tool

Description

get-attachments

Get messages with attachments

get-conversation-attachments

Get all attachments from a conversation

send-files

Send multiple files at once


πŸ§ͺ Test Client

An interactive CLI is included for testing with the Vercel AI SDK:

export OPENAI_API_KEY=sk-...
pnpm test-client

Commands: exit β€’ clear β€’ tools


πŸ“ Project Structure

src/
β”œβ”€β”€ index.ts              # MCP server entry point
β”œβ”€β”€ test-client.ts        # Interactive test client
β”œβ”€β”€ tools/
β”‚   β”œβ”€β”€ messages.ts       # Message tools
β”‚   β”œβ”€β”€ conversations.ts  # Conversation tools
β”‚   └── attachments.ts    # Attachment tools
└── utils/
    β”œβ”€β”€ logger.ts         # Pretty CLI logging
    └── sdk.ts            # SDK initialization

πŸ“œ Scripts

Script

Description

pnpm build

Compile TypeScript

pnpm dev

Watch mode

pnpm start

Run the MCP server

pnpm test-client

Interactive test client

pnpm clean

Remove build artifacts


πŸ™ Acknowledgements


πŸ“„ License

Licensed under the MIT License.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Read-only MCP server for local macOS Messages database, enabling querying of chats, messages, attachments, and metadata.
    381 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables reading and sending iMessages on macOS through MCP, with tools for managing chats, messages, and attachments via AI agents.
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Enables reading, searching, sending iMessages, viewing image attachments, and managing conversations, with full support for modern macOS attributedBody parsing.
    14
    1
    MIT