imessage-mcp

MCPattested
v1.3.1Ani PottsMITUpdated 6d agonpmGitHub

iMessage MCP server — 25 tools for searching, analyzing, and exploring your entire iMessage history on macOS

Works in
ClaudeCursorCopilotGemini

Inferred from the transports this listing declares (stdio). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Attested build
A verified provenance attestation binds this artifact to the listed repository. Nobody has claimed the listing yet — this proves where the code was built, not who stands behind it.
975Downloads/wk
6d agoLast update
Package
AuthorAni Potts
LicenseMIT
Version1.3.1
Sourcenpm+mcp-registry
Trust Status
A
85/100Trusted
Listed in Forge index+10/10
Identity verified · attested build+20/20
Ed25519 publish signature+0/5
Included automatically when the publisher runs `forge publish`
Domain verification+0/5
Publisher: host /.well-known/forge.json on the package homepage with { "publisher": "<github-login>" }
npm Trusted Publishing (Sigstore)+5/5
npm maintainer match+0/5
Publisher: add the verified GitHub login to the npm package's maintainers (npm owner add <login>)
CVE scan · clean+30/30
Static analysis · clean+20/20
Paste into Claude Code, Cursor, or any AI assistant to fix all gaps
StatusIdentity verified
PublisherUnverified
SignatureUnsigned
Domain
Provenance✓ Sigstore-verified · e0ab712
Dependencies✓ 60 resolved+ · none vulnerable
Tool surface25 tools · none privileged
Security scan✓ Cleanv1.3.1 · 2d agoHow well does this scan work?
EvalsNone
IndexedAug 27, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

25 tools · none privileged
Statically extracted from the published packagev1.3.1 · 2d ago

Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.

message_statsAggregate message statistics with flexible time-series grouping. Returns counts, sent/received splits, and averages grouped by day, week, month, year, hour, or day-of-week. By default excludes contacts you've never replied to.

Aggregate message statistics with flexible time-series grouping. Returns counts, sent/received splits, and averages grouped by day, week, month, year, hour, or day-of-week. By default excludes contacts you've never replied to.

No input schema was published for this tool.

contact_statsDeep per-contact analytics: message volumes, response time estimates, conversation patterns, and yearly trends.

Deep per-contact analytics: message volumes, response time estimates, conversation patterns, and yearly trends.

No input schema was published for this tool.

temporal_heatmapGenerate a 7x24 activity heatmap (day-of-week x hour-of-day). Returns message counts for each of the 168 weekly time slots. By default excludes contacts you've never replied to.

Generate a 7x24 activity heatmap (day-of-week x hour-of-day). Returns message counts for each of the 168 weekly time slots. By default excludes contacts you've never replied to.

No input schema was published for this tool.

list_attachmentsQuery message attachments (images, videos, audio, documents) with filtering by contact, MIME type, and date range. Returns file metadata, not file contents.

Query message attachments (images, videos, audio, documents) with filtering by contact, MIME type, and date range. Returns file metadata, not file contents.

No input schema was published for this tool.

list_contactsList all contacts with message counts and tier assignments. Supports filtering by tier and minimum message threshold. By default, only shows contacts you've actually messaged (replied to). Use include_all to see all.

List all contacts with message counts and tier assignments. Supports filtering by tier and minimum message threshold. By default, only shows contacts you've actually messaged (replied to). Use include_all to see all.

No input schema was published for this tool.

get_contactDeep info on a specific contact: tier, message stats, yearly breakdown, and recent messages.

Deep info on a specific contact: tier, message stats, yearly breakdown, and recent messages.

No input schema was published for this tool.

resolve_contactFuzzy-match a name, phone number, or email to a contact record. Uses multi-level resolution: exact match, digits, fuzzy, and macOS AddressBook.

Fuzzy-match a name, phone number, or email to a contact record. Uses multi-level resolution: exact match, digits, fuzzy, and macOS AddressBook.

No input schema was published for this tool.

get_edited_messagesFind edited and unsent (retracted) messages. Queries date_retracted and date_edited columns. Returns message list with timestamps and per-contact stats.

Find edited and unsent (retracted) messages. Queries date_retracted and date_edited columns. Returns message list with timestamps and per-contact stats.

No input schema was published for this tool.

get_message_effectsiMessage expressive send effects and screen effects analytics: slam, loud, gentle, invisible ink, confetti, fireworks, balloons, lasers, etc. Queries expressive_send_style_id.

iMessage expressive send effects and screen effects analytics: slam, loud, gentle, invisible ink, confetti, fireworks, balloons, lasers, etc. Queries expressive_send_style_id.

No input schema was published for this tool.

list_group_chatsList all group chats with member counts, message volumes, and activity dates. Group chats have multiple participants.

List all group chats with member counts, message volumes, and activity dates. Group chats have multiple participants.

No input schema was published for this tool.

get_group_chatDetailed info on a specific group chat: all members with per-member message counts, activity timeline, and recent messages.

Detailed info on a specific group chat: all members with per-member message counts, activity timeline, and recent messages.

No input schema was published for this tool.

helpShow the imessage-mcp guide: all 25 tools and usage examples. Call this when you're unsure what's available.

Show the imessage-mcp guide: all 25 tools and usage examples. Call this when you're unsure what's available.

No input schema was published for this tool.

on_this_dayMessages from this date in previous years — like 'Memories' for iMessage. Shows what you and your contacts were talking about exactly 1, 2, 3+ years ago today. By default excludes contacts you've never replied to.

Messages from this date in previous years — like 'Memories' for iMessage. Shows what you and your contacts were talking about exactly 1, 2, 3+ years ago today. By default excludes contacts you've never replied to.

No input schema was published for this tool.

first_last_messageThe very first and very last message ever exchanged with a contact. People use this for sentimental lookups like 'what was the first text I sent my partner?' or 'what was the last thing my grandparent texted me?'

The very first and very last message ever exchanged with a contact. People use this for sentimental lookups like 'what was the first text I sent my partner?' or 'what was the last thing my grandparent texted me?'

No input schema was published for this tool.

search_messagesFull-text search across all iMessages with rich filtering. Supports query text, contact, date range, direction, group chat, and attachment filters. By default, only searches contacts you've messaged. Use include_all to search everything.

Full-text search across all iMessages with rich filtering. Supports query text, contact, date range, direction, group chat, and attachment filters. By default, only searches contacts you've messaged. Use include_all to search everything.

No input schema was published for this tool.

get_conversationGet a full conversation thread with a specific contact or chat. Supports cursor-based pagination via before_rowid for scrolling through history.

Get a full conversation thread with a specific contact or chat. Supports cursor-based pagination via before_rowid for scrolling through history.

No input schema was published for this tool.

who_initiatesWho starts conversations? After a gap of N hours, the next message is a 'conversation initiation.' Shows per-contact who reaches out first and how often. Answers 'do I always text first?' By default excludes contacts you've never replied to.

Who starts conversations? After a gap of N hours, the next message is a 'conversation initiation.' Shows per-contact who reaches out first and how often. Answers 'do I always text first?' By default excludes contacts you've never replied to.

No input schema was published for this tool.

streaksConsecutive-day messaging streaks with contacts. Like Snapchat streaks but for iMessage. Shows longest streak, when it happened, and current streak status. By default excludes contacts you've never replied to.

Consecutive-day messaging streaks with contacts. Like Snapchat streaks but for iMessage. Shows longest streak, when it happened, and current streak status. By default excludes contacts you've never replied to.

No input schema was published for this tool.

double_textsDetect double-texting and unanswered message patterns. Finds when you (or a contact) sent multiple consecutive messages without a reply. Shows frequency, longest bursts, and who does it more. Omit contact for a global ranking of who you double-text the most.

Detect double-texting and unanswered message patterns. Finds when you (or a contact) sent multiple consecutive messages without a reply. Shows frequency, longest bursts, and who does it more. Omit contact for a global ranking of who you double-text the most.

No input schema was published for this tool.

conversation_gapsFind the longest silences in a conversation. Detects periods where you and a contact stopped talking — falling-outs, busy periods, or drifting apart. Shows gap duration and when it happened.

Find the longest silences in a conversation. Detects periods where you and a contact stopped talking — falling-outs, busy periods, or drifting apart. Shows gap duration and when it happened.

No input schema was published for this tool.

forgotten_contactsFind dormant relationships — contacts you used to message but haven't talked to in a long time. Great for reconnecting with people you've lost touch with. By default excludes contacts you've never replied to.

Find dormant relationships — contacts you used to message but haven't talked to in a long time. Great for reconnecting with people you've lost touch with. By default excludes contacts you've never replied to.

No input schema was published for this tool.

get_reactionsTapback/reaction analytics: distribution by type, top reactors, most-reacted messages, emoji breakdown. Queries associated_message_type 2000-2005 for love/like/dislike/laugh/emphasize/question reactions.

Tapback/reaction analytics: distribution by type, top reactors, most-reacted messages, emoji breakdown. Queries associated_message_type 2000-2005 for love/like/dislike/laugh/emphasize/question reactions.

No input schema was published for this tool.

get_read_receiptsRead receipt and delivery timing analytics: per-contact read latency stats, unread patterns, fastest/slowest readers. Queries date_read and date_delivered columns.

Read receipt and delivery timing analytics: per-contact read latency stats, unread patterns, fastest/slowest readers. Queries date_read and date_delivered columns.

No input schema was published for this tool.

get_threadReconstruct iMessage reply threads using thread_originator_guid. Returns nested thread trees with parent message and all replies in order.

Reconstruct iMessage reply threads using thread_originator_guid. Returns nested thread trees with parent message and all replies in order.

No input schema was published for this tool.

yearly_wrappedYour iMessage Year in Review — like Spotify Wrapped but for texting. Returns a complete summary of a year: total messages, top contacts, busiest day, monthly trends, reactions, group chats, media shared, late-night texting, new contacts, and effects used. By default excludes contacts you've never r…

Your iMessage Year in Review — like Spotify Wrapped but for texting. Returns a complete summary of a year: total messages, top contacts, busiest day, monthly trends, reactions, group chats, media shared, late-night texting, new contacts, and effects used. By default excludes contacts you've never r…

No input schema was published for this tool.

25 of 25 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

iMessage MCP server — 25 tools for searching, analyzing, and exploring your entire iMessage history on macOS

Keywords
imessagemcpmcp-servermodel-context-protocolmodelcontextprotocolmacosmessagesclaudeaillmapplesmschat-historyanalytics
Alternatives
Comparing tool surfaces…

Dependency tree

What one Forge scan resolved from npm metadata on 2026-08-31 — observed resolution, not a publisher declaration.

60 packages resolved · 3 direct · none carrying advisories Resolution stops at depth 4 and 60 packages.

The crawl stopped at the 60-package limit. The rest of the tree was never resolved.

36 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)

Declared but not resolved

76 declared dependencies never landed in the tree. They are missing from Forge's resolution, not from the package.

+64 more not listed. The counts by reason above cover all of them.

Not followed: peerDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.

Topics

Related in analytics & dashboards