Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Imessage Portal

FreeNot checked

Read-only MCP server for iMessage, reachable from anywhere over an embedded Tailscale tunnel with OAuth.

GitHubEmbed

About

Read-only MCP server for iMessage, reachable from anywhere over an embedded Tailscale tunnel with OAuth.

README

A native macOS menu bar app that turns your iMessage history into an MCP server any AI agent can reach from anywhere — Claude Code, claude.ai, ChatGPT, Cursor — plus a plain-HTML web portal for humans and for agents that still don't speak MCP.

It is 100% read-only. The app keeps a live full-text index of the Messages database and publishes it at a stable public URL through an embedded Tailscale node, so your agent can search your texts, read a thread, and pull an attachment whether or not it runs on this Mac.

How it works

iMessage Portal.app (menu bar, SwiftUI)
 ├─ Indexer            chat.db → index.db (FTS5), incremental, every 3s
 ├─ HTTP server        127.0.0.1:4870
 │    ├─ /mcp          MCP server (Streamable HTTP + OAuth 2.1)
 │    └─ /messages…    plain HTML portal, token login
 └─ Embedded Tailscale (vendored libtailscale/TailscaleKit)
      └─ Funnel :443 → https://messages.<tailnet>.ts.net  (public, TLS)

No Tailscale app install, no BlueBubbles, no SIP changes. Onboarding is: grant Full Disk Access (macOS relaunches the app) → read the remote-access intro and click Continue → sign in to Tailscale in the browser (any SSO) and click Connect → approve Funnel on the consent page → you're online.

Connect your AI

The MCP address and access token are in the app's menu and settings.

Claude Code / anything that sends headers:

claude mcp add --transport http imessage https://messages.<tailnet>.ts.net/mcp \
  --header "Authorization: Bearer <access token>"

claude.ai, ChatGPT (custom connector / developer mode): add a connector with the MCP address. The client walks through OAuth: a consent page opens in your browser, and you approve with one click (or by pasting the access token). Tokens issued this way die whenever you regenerate the access token.

Tools: search_messages (FTS5 + person/date/chat filters), list_conversations, get_conversation, get_attachment, and the search/fetch pair ChatGPT's research modes expect.

Agents without MCP support get the same history as plain HTML: every page is a bookmarkable URL behind the same token (see /help on your portal). Ergo: MCP → M-See-P 🔥

Install

Grab the latest DMG from Releases, open it, and drag iMessage Portal into Applications. Builds are signed and notarized, so macOS opens them without any Gatekeeper warnings. The app updates itself from then on — it asks before checking automatically, and each update installs with one click. Apple Silicon only for now (the vendored Tailscale framework builds arm64).

Develop

make deps    # build vendored TailscaleKit.framework (Go + Xcode required)
make build   # swift build
make run     # run the menu bar app from the debug build
make test    # unit tests (PortalCore only)
make app     # assemble dist/iMessage Portal.app

Runtime data lives in ~/Library/Application Support/MessagesPortal/ (index.db, config.json with the access token, Tailscale node state, OAuth client/token store, attachment transcode cache).

from github.com/vinsidious/imessage-portal

Installing Imessage Portal

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/vinsidious/imessage-portal

FAQ

Is Imessage Portal MCP free?

Yes, Imessage Portal MCP is free — one-click install via Unyly at no cost.

Does Imessage Portal need an API key?

No, Imessage Portal runs without API keys or environment variables.

Is Imessage Portal hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Imessage Portal in Claude Desktop, Claude Code or Cursor?

Open Imessage Portal on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Imessage Portal with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs