Apple Messages — Claude Code MCP server: read and send iMessages
Lets an agent read your Messages history on macOS and send or reply to conversations. Handy when you want to work through threads without leaving the editor.
claude mcp add --env APPLE_MESSAGES_MCP_SAFETY_MODE=<APPLE_MESSAGES_MCP_SAFETY_MODE> --transport stdio applemessages-mcp -- uvx apple-messages-mcpWhat Apple Messages does
The server runs locally on your Mac and talks to the client over stdio. Your agent can pull up conversations from the Messages app and send new texts or answer existing threads. Sends go out as iMessage unless you pass service_name for SMS or RCS.
Reading history requires Full Disk Access; sending requires Automation. You approve both yourself in the macOS prompt or System Settings. Without them the server cannot reach the message database.
Installation runs through uvx, so you need Python 3.11+ and the uv tool. Safety behaviour is set with APPLE_MESSAGES_MCP_SAFETY_MODE; a blank or invalid value falls back to safe_readonly. If you switch to Streamable HTTP, the server only binds to 127.0.0.1, ::1 or localhost — there is no remote authentication, so exposing it through a tunnel or public proxy is off the table.
What it helps with
- pull up a Messages thread and find a specific conversation
- send a text to a contact from inside the editor
- reply within an existing iMessage thread
- work with SMS or RCS threads through the paired iPhone
- check which macOS permissions the server currently has
Example prompts for the agent
- Show me the latest messages from this contact in Messages
- Send them an iMessage that I'll be there in ten minutes
- Reply in the last thread with them
How to install Apple Messages
Platform CLI
claude mcp add --env APPLE_MESSAGES_MCP_SAFETY_MODE=<APPLE_MESSAGES_MCP_SAFETY_MODE> --transport stdio applemessages-mcp -- uvx apple-messages-mcpReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from apple-messages-mcp <command>
Platform CLI
codex mcp add applemessages-mcp --env APPLE_MESSAGES_MCP_SAFETY_MODE=<APPLE_MESSAGES_MCP_SAFETY_MODE> -- uvx apple-messages-mcpReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from apple-messages-mcp <command>
Config file
{
"mcpServers": {
"applemessages-mcp": {
"command": "uvx",
"args": [
"apple-messages-mcp"
],
"env": {
"APPLE_MESSAGES_MCP_SAFETY_MODE": "<APPLE_MESSAGES_MCP_SAFETY_MODE>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from apple-messages-mcp <command>
Config file
{
"servers": {
"applemessages-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"apple-messages-mcp"
],
"env": {
"APPLE_MESSAGES_MCP_SAFETY_MODE": "<APPLE_MESSAGES_MCP_SAFETY_MODE>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from apple-messages-mcp <command>
Platform CLI
gemini mcp add -e APPLE_MESSAGES_MCP_SAFETY_MODE=<APPLE_MESSAGES_MCP_SAFETY_MODE> applemessages-mcp uvx apple-messages-mcpReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from apple-messages-mcp <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Apple Messages
How do I install Apple Messages in Claude Code?
Install uv first, then run claude mcp add apple-messages-mcp -- uvx apple-messages-mcp. Restart the client afterwards.
What does Apple Messages do?
It reads your Messages history on macOS and sends new texts or replies inside existing threads.
Which macOS permissions does it need?
Full Disk Access for reading history and Automation for sending. Both are approved manually in the macOS prompt or System Settings.