Imessage-MCP
Provides read-only access to your iMessage and SMS history, allowing searching, listing conversations, and retrieving recent messages.
Read-only iMessage MCP server
Gives an assistant read-only access to your macOS Messages so it can help you
read, search, and analyze texts. It cannot send, edit, or delete anything —
every database connection is opened with SQLite mode=ro. You send replies yourself.
What it reads
~/Library/Messages/chat.db— your iMessage/SMS history (read-only)~/Library/Application Support/AddressBook/.../AddressBook-v22.abcddb— to turn phone numbers/emails into contact names (read-only, best effort)
It never writes to, copies, or transmits these anywhere — it just answers queries from whichever Claude client is connected.
Related MCP server: jons-mcp-imessage
Tools
Tool | What it does |
| Most recently active threads + last-message preview |
| Threads where the other person texted last (awaiting your reply) |
| Recent message history with a person or group (fuzzy name/phone/email match) |
| Full-text search across messages, optionally scoped to one contact |
| Inbox-style view of recent messages across all threads (optional |
Requirements
uvinstalled (handles the Python deps automatically).Full Disk Access for whatever app runs the server, because
chat.dbis protected:Claude Code (CLI): the terminal app you launch
claudefrom (Terminal, iTerm, etc.).Claude Desktop: the Claude.app itself. Grant it in System Settings → Privacy & Security → Full Disk Access, then restart the app.
How it's wired up
Claude Code: registered at user scope (
~/.claude.json). Remove withclaude mcp remove imessage-readonly.Claude Desktop: added under
mcpServersin~/Library/Application Support/Claude/claude_desktop_config.json(a timestamped.bakof the original sits next to it). Restart the app to load it.
Notes
On recent macOS the message text is stored in a binary
attributedBodyblob rather than thetextcolumn;server.pydecodes it (handles emoji/accents).Timestamps are converted from Apple absolute time (nanoseconds since 2001-01-01).
Override the database path with the
IMESSAGE_DBenvironment variable if needed.
This server cannot be installed
Maintenance
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/joshkaplan-dev/imessage-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server