mac-messages
Provides read-only access to an Apple device's Messages (iMessage/SMS) history, enabling listing chats, retrieving transcripts, fetching recent messages, and searching message bodies.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mac-messagesSearch my messages for mentions of ‘dinner plans’ and show the matching chats."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Mac Messages Host
Your Mac's entire Apple Messages (iMessage/SMS) history, read-only, for AI agents — one batched tool over REST/OpenAPI and streamable HTTP MCP.
One tool, batched requests: a single
messages(requests: str)tool takes a JSON array of requests and returns an aligned JSON array of responses — one call does many independent ops. Served identically over REST (POST /api/messages) and MCP (/mcp/).Read-only by construction: the database is opened with SQLite
mode=ro; there is no write path. Nothing can be sent, edited, or deleted.Modern macOS body decoding: message text stored in
attributedBodytypedstream blobs (Ventura+) and edit history inmessage_summary_infoplists is decoded transparently.Auto-generated tool prompt: the AI-facing prompt is generated from the Pydantic models (~615 gpt-4o tokens, counted by
tiktokenand enforced by a test); atool_prompt.mdsnapshot is kept in sync by a drift test.
Install
Requires Python 3.11+ on macOS.
pip install . # or: pip install -e . for development
mmhost info # permission check + database status
mmhost start # serve API + MCP on http://127.0.0.1:8761macOS permissions (important)
~/Library/Messages/chat.db is protected by macOS TCC. The process that runs
mmhost needs Full Disk Access:
System Settings → Privacy & Security → Full Disk Access → enable your terminal app (or whatever launches the server), then restart it.
mmhost info tells you immediately whether the database is readable.
Related MCP server: jons-mcp-imessage
Endpoints
Endpoint | Purpose |
| The batched tool (REST) |
| OpenAPI schema |
| Interactive docs |
| Liveness probe |
| Streamable-HTTP MCP endpoint (single |
Auth
Authorization: Bearer <token> when admin_token is configured (persisted config, MMHOST_ADMIN_TOKEN, or --admin-token). With no token configured, access is open — safe because the server binds 127.0.0.1 by default.
Request kinds
get_info— database status, counts, history date rangelist_chats— conversations by recent activity (filter, paginate)get_chat— a chat's transcript (paginate older viabefore)get_recent— newest messages across all chats (poll viasince)search_messages— case-insensitive substring search over bodies
See tool_prompt.md for the exact AI-facing documentation (generated from the models).
Example
curl -s http://127.0.0.1:8761/api/messages \
-H 'Content-Type: application/json' \
-d '{"requests": "[{\"kind\":\"list_chats\",\"limit\":3}]"}'MCP client configuration
{
"mcpServers": {
"mac-messages": {
"type": "streamable-http",
"url": "http://127.0.0.1:8761/mcp/"
}
}
}Configuration
Persisted at the platform config dir (~/Library/Application Support/mac_messages_host/config.json on macOS); override the location with MMHOST_CONFIG. Server-level settings only — see example.env.
Development
pip install -e '.[dev]'
pytest
# after changing request models:
python -m tests.regenerate_tool_promptArchitecture follows the oWoHo AI Tool Server pattern (pure core library + derived FastAPI/FastMCP/CLI interfaces), like reddit_tool_server and obsidian_ai_miniserver.
License
MIT — see LICENSE.md.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables reading, searching, and sending iMessages directly from MCP-compatible clients by accessing the local macOS iMessage database, supporting conversations, attachments, and both individual and group chats.10410MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to read iMessage history and send messages on macOS. Supports conversation listing, message search with keyword and semantic modes, contact lookup, and sending messages to existing conversations.1311MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to read, search, and send iMessages with features like contact name resolution, session grouping, and attachment listing. It provides intent-aligned tools to efficiently navigate conversation history and manage messages through natural language queries.5MIT
- AlicenseNot gradedqualityDmaintenanceEnables reading and sending iMessages on macOS through MCP, with tools for managing chats, messages, and attachments via AI agents.MIT
Related MCP Connectors
MCP connector for iMessage & Contacts via a local Mac agent + Vercel relay
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- 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/whogben/mac_messages_host'
If you have feedback or need assistance with the MCP directory API, please join our Discord server