SI

sameelarif/imessage-mcp

Developer tools
10 stars 3 forks Quality 76 Trend 18MIT

Access your iMessage conversations through the Model Context Protocol

Overview

Access your iMessage conversations through the Model Context Protocol Read, search, and send iMessages directly from Claude, Cursor, or any MCP-compatible client. No external servers required — works locally with your iMessage database. ⚠️ — 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.

README

💬 iMessage MCP Server

Access your iMessage conversations through the Model Context Protocol

Read, search, and send iMessages directly from Claude, Cursor, or any MCP-compatible client. No external servers required — works locally with your iMessage database.

⚠️ 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


🚀 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


🧪 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.

View the full README on GitHub

Install

This server does not publish a one-line install command.

Open the repository installation guide New to MCP? Start with the mcpskill.org guide →

Configuration

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