{
  "markdown": "# imessage-mcp\n\n\n<!-- mycelium-badges:start -->\n\n<p>\n  <a href=\"https://github.com/adelaidasofia/imessage-mcp/blob/main/LICENSE\"><img alt=\"License\" src=\"https://img.shields.io/github/license/adelaidasofia/imessage-mcp?color=blue\"></a>\n  <a href=\"https://github.com/adelaidasofia/imessage-mcp/stargazers\"><img alt=\"GitHub stars\" src=\"https://img.shields.io/github/stars/adelaidasofia/imessage-mcp?color=eab308\"></a>\n  <a href=\"https://github.com/adelaidasofia/imessage-mcp/commits/main\"><img alt=\"Last commit\" src=\"https://img.shields.io/github/last-commit/adelaidasofia/imessage-mcp\"></a>\n  <a href=\"https://github.com/adelaidasofia/imessage-mcp/issues\"><img alt=\"Open issues\" src=\"https://img.shields.io/github/issues/adelaidasofia/imessage-mcp\"></a>\n  <a href=\"https://pypi.org/project/adelaidasofia-imessage-mcp/\"><img alt=\"PyPI version\" src=\"https://img.shields.io/pypi/v/adelaidasofia-imessage-mcp?color=blue&label=pypi\"></a>\n  <a href=\"https://pypi.org/project/adelaidasofia-imessage-mcp/\"><img alt=\"PyPI downloads\" src=\"https://img.shields.io/pypi/dm/adelaidasofia-imessage-mcp?color=blue&label=downloads\"></a>\n  <a href=\"https://myceliumai.co\"><img alt=\"Built by Mycelium AI\" src=\"https://img.shields.io/badge/built_by-Mycelium_AI-15B89A\"></a>\n</p>\n\n<!-- mycelium-badges:end -->\n\nmacOS-only MCP server that exposes iMessage history to Claude and exports per-chat conversations into an Obsidian vault. Mirrors the whatsapp-mcp pattern: same hook, same launchd cadence, same vault shape.\n\n## Architecture\n\n- Direct read of `~/Library/Messages/chat.db` (SQLite, opened `mode=ro&immutable=1`). No bridge daemon.\n- Voice-note transcription via Whisper local-cpp (reuses the model already installed for whatsapp-mcp).\n- FTS5 incremental search index at `~/.claude/imessage-mcp/search.db`.\n- Vault export per chat into `🤖 AI Chats/iMessage/<Contact>.md` and `🤖 AI Chats/iMessage/Groups/<Group>.md`.\n- Send pathway via AppleScript with draft+confirm pattern (no auto-send).\n\n## Tool surface\n\n**Read:** healthcheck, list_chats, list_messages, get_chat, search_contacts, search_messages, get_message_context, get_unread, get_thread, list_attachments, mark_chat_read, export_to_vault.\n\n**Write:** send_message (drafts an AppleScript send), confirm_send (commits).\n\n## Install\n\nOpen Claude Code, paste:\n\n    /plugin marketplace add adelaidasofia/imessage-mcp\n    /plugin install imessage-mcp@imessage-mcp\n\nThen grant Full Disk Access to Claude.app (required for `chat.db` read) and restart Claude Code. Full setup details and env vars in [SETUP.md](SETUP.md).\n\n<details><summary>Legacy install (manual <code>.mcp.json</code> registration)</summary>\n\nSee [SETUP.md](SETUP.md). The short version: grant Full Disk Access to Claude.app, run `uv sync`, register in vault `.mcp.json`, restart Claude Code.\n\n</details>\n\n## Vault export shape\n\n```yaml\n---\ntype: imessage-chat\ncontact: \"Jane Doe\"\nphone: \"+15555550123\"\nservice: iMessage\nchat_guid: \"iMessage;-;+15555550123\"\nmessage_count: 412\nfirst_message: 2024-08-12\nlast_message: 2026-05-06\nlast_sync: 2026-05-07\n---\n```\n\nBody sections per date with reactions, edits, replies, voice-note transcripts, and attachment wikilinks.\n\n## Related MCPs\n\nSame author, same architecture pattern (FastMCP, draft+confirm on writes where applicable, vault auto-export, MIT):\n\n- [slack-mcp](https://github.com/adelaidasofia/slack-mcp) - multi-workspace Slack\n- [whatsapp-mcp](https://github.com/adelaidasofia/whatsapp-mcp) - WhatsApp via whatsmeow\n- [google-workspace-mcp](https://github.com/adelaidasofia/google-workspace-mcp) - Gmail / Calendar / Drive / Docs / Sheets\n- [apollo-mcp](https://github.com/adelaidasofia/apollo-mcp) - Apollo.io CRM + sequences\n- [substack-mcp](https://github.com/adelaidasofia/substack-mcp) - Substack writing + analytics\n- [luma-mcp](https://github.com/adelaidasofia/luma-mcp) - lu.ma events\n- [parse-mcp](https://github.com/adelaidasofia/parse-mcp) - markitdown / Docling / LlamaParse router\n- [rescuetime-mcp](https://github.com/adelaidasofia/rescuetime-mcp) - RescueTime productivity data\n- [graph-query-mcp](https://github.com/adelaidasofia/graph-query-mcp) - vault knowledge graph queries\n- [investor-relations-mcp](https://github.com/adelaidasofia/investor-relations-mcp) - seed-raise pipeline tracker\n- [vault-sync-mcp](https://github.com/adelaidasofia/vault-sync-mcp) - bidirectional vault sync\n\n\n## Telemetry\n\nThis plugin sends a single anonymous install signal to `myceliumai.co` the first time it loads in a Claude Code session on a given machine.\n\n**What is sent:**\n- Plugin name (e.g. `slack-mcp`)\n- Plugin version (e.g. `0.1.0`)\n\n**What is NOT sent:**\n- No user identifiers, names, emails, tokens, or API keys\n- No file paths, message content, or anything from your work\n- No IP address is stored after dedup processing\n\n**Why:** Helps the maintainer know which plugins people actually install, so attention goes to the ones that get used.\n\n**Opt out:** Set the environment variable `MYCELIUM_NO_PING=1` before launching Claude Code. The hook will skip the network call entirely. Already-pinged installs leave a sentinel at `~/.mycelium/onboarded-<plugin>` — delete it if you want to reset state.\n\n## License\n\nMIT.\n\n---\n\nBuilt by Adelaida Diaz-Roa. Full install or team version at diazroa.com.\n",
  "bytes": 5268,
  "sha": "838d8c951b6043aa2fb1a0495f997afe30007021b99c99ac8ec1ffdb8ec007dd",
  "repo_slug": "adelaidasofia/imessage-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_adelaidasofia_imessage_mcp_imessage_mcp_f320be01/readme"
}