macOS-only MCP server that exposes iMessage chat

io.github.adelaidasofiaPublished by GitHub account adelaidasofiav0.1.0Updated Oct 24, 2026

macOS-only MCP server that exposes iMessage chat.db to Claude and exports per-chat history to an…

The publisher's own server: OnlyMCP

Overview

AI-generated overview

macOS-only local MCP server that lets an assistant read iMessage history from chat.db, search it, and export chats to an Obsidian vault.

What you can do
  • Browse and read chats and messages: list chats, list messages, get a chat, thread or message context, and list attachments
  • Search contacts and message history through an incremental full-text index
  • Check unread messages and mark a chat as read
  • Export a chat's history into an Obsidian vault as a per-contact or per-group note with metadata, reactions, replies and voice-note transcripts
  • Draft and confirm an outgoing message via AppleScript, with a separate confirm step before anything is sent
When to use it
Useful when you want an assistant on a Mac to look up past iMessage conversations, find what a contact said, or keep a searchable copy of chats in an Obsidian vault. Only relevant for macOS users who already keep their messages in Apple's Messages app.
Requirements
Runs as a local process on macOS only, installed as an MCP bundle or registered manually in a project config. Requires Full Disk Access granted to the Claude app to read the Messages database, plus a Python environment set up with uv for the manual install. Voice-note transcription relies on a locally installed Whisper model; setup details and environment variables are in the project's setup file.
Before you install
It reads the full local Messages database, so the assistant can see private conversations and contact details. Sending is a write action: a message is drafted first and only sent after a separate confirm call, but confirming does send it to real people. The plugin sends a one-time anonymous install signal to the author's site on first load; set MYCELIUM_NO_PING=1 to opt out. Exported vault notes contain message content and phone numbers.

Installation

In SourceWeft

  1. Open macOS-only MCP server that exposes iMessage chat in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

imessage-mcp

[License] [GitHub stars] [Last commit] [Open issues] [PyPI version] [PyPI downloads] [Built by Mycelium AI]

macOS-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.

Architecture

  • Direct read of ~/Library/Messages/chat.db (SQLite, opened mode=ro&immutable=1). No bridge daemon.
  • Voice-note transcription via Whisper local-cpp (reuses the model already installed for whatsapp-mcp).
  • FTS5 incremental search index at ~/.claude/imessage-mcp/search.db.
  • Vault export per chat into 🤖 AI Chats/iMessage/<Contact>.md and 🤖 AI Chats/iMessage/Groups/<Group>.md.
  • Send pathway via AppleScript with draft+confirm pattern (no auto-send).

Tool surface

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.

Write: send_message (drafts an AppleScript send), confirm_send (commits).

Install

Open Claude Code, paste:

/plugin marketplace add adelaidasofia/imessage-mcp/plugin install imessage-mcp@imessage-mcp

Then 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.

Legacy install (manual .mcp.json registration)

See SETUP.md. The short version: grant Full Disk Access to Claude.app, run uv sync, register in vault .mcp.json, restart Claude Code.

Vault export shape

yaml
---type: imessage-chatcontact: "Jane Doe"phone: "+15555550123"service: iMessagechat_guid: "iMessage;-;+15555550123"message_count: 412first_message: 2024-08-12last_message: 2026-05-06last_sync: 2026-05-07---

Body sections per date with reactions, edits, replies, voice-note transcripts, and attachment wikilinks.

Related MCPs

Same author, same architecture pattern (FastMCP, draft+confirm on writes where applicable, vault auto-export, MIT):

Telemetry

This plugin sends a single anonymous install signal to myceliumai.co the first time it loads in a Claude Code session on a given machine.

What is sent:

  • Plugin name (e.g. slack-mcp)
  • Plugin version (e.g. 0.1.0)

What is NOT sent:

  • No user identifiers, names, emails, tokens, or API keys
  • No file paths, message content, or anything from your work
  • No IP address is stored after dedup processing

Why: Helps the maintainer know which plugins people actually install, so attention goes to the ones that get used.

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.

License

MIT.


Built by Adelaida Diaz-Roa. Full install or team version at diazroa.com.

Source: README.md at commit d754e4e

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Only-Mcp integrations