mac_messages_mcp

MCP.Pizza Chef: carterlasalle

Running entirely on your own Mac, this opens the Messages and Contacts databases read-only and answers questions about your texts: recent conversations, fuzzy searches across your whole history, named group chats, and attachments filtered by date, sender, or file type. It can also send an iMessage when you explicitly ask for one, falling back to SMS for numbers that cannot receive iMessage. Works in Claude Desktop, Claude Code, Cursor, VS Code, and the ChatGPT desktop app. Nothing to pay for, but macOS Full Disk Access is required.

Communication
Files/PDF

Use This MCP server To

Find the text where a friend sent me an address Pull up every message about dinner plans from last month Draft a reply saying I am running late before sending it List the PDFs someone texted me this month Check which group chat a conversation actually happened in Send a quick message without picking up my phone

README

Mac Messages MCP

Use Claude, Codex, Cursor, VS Code, or any local MCP client to search, read, and send messages through the macOS Messages app.

PyPI Python CI Downloads License: MIT

Mac Messages MCP runs locally on your Mac. It opens the Messages and Contacts databases read-only, returns only the data a client asks for, and uses Messages.app automation only when the client explicitly calls the send tool.

[!IMPORTANT] This server is macOS-only. Reading messages requires Full Disk Access. Sending requires a Mac signed into Messages plus permission for the launching app to automate Messages.

What it can do

  • Read recent messages across all conversations or filter by contact or group chat
  • Fuzzy-search message text across a time window, including all available history
  • Find Contacts by approximate name and return send-ready phone numbers
  • List named group chats and use their chat IDs for reads or sends
  • Send iMessage, with SMS/RCS fallback for eligible phone recipients
  • Check whether a recipient appears reachable through iMessage before sending
  • Find attachments by date, sender, and MIME type
  • Return small images inline, convert HEIC images to PNG, or return a local path for larger and non-image files
  • Diagnose Messages and Contacts database permissions from inside the MCP client

Quick start

1. Install uv

brew install uv

Confirm that the launcher is available:

uvx --version

Python 3.10 or newer is required. uvx can provision a compatible Python and installs Mac Messages MCP in an isolated environment, so you do not need to create a virtual environment first.

mac_messages_mcp FAQ

Which apps does this work in?
Claude Desktop, Claude Code, Cursor, VS Code, the Codex tools, and the ChatGPT desktop app — anything on your Mac that can load a local helper.
Do I need to pay for an account or a key?
No. Everything runs against the Messages app already installed on your Mac, so there is nothing to sign up for.
Can I use this to send a text, not just read them?
Yes. It sends iMessage and falls back to SMS or RCS for phone numbers that cannot receive iMessage, and it only sends when your assistant is explicitly asked to.
Will it work on Windows, or from my iPhone alone?
No. It is macOS-only and needs Messages open and signed in on that Mac.
How hard is setup?
You paste a short block into your app's settings, then grant Full Disk Access in System Settings and restart the app.
Does my message history get uploaded anywhere?
No. It reads the local databases on your machine and hands back only what was asked for.
Can I use this to find an attachment someone sent me?
Yes. You can search attachments by date, sender, and file type, and small images come back right in the chat.