Local iMessage RAG MCP Server
About
iMessage RAG MCP Server from Anthropic MCP Hackathon (NYC)
Details
- Author
- willccbb
- GitHub stars
- 14
- Downloads
- 322
- Categories
- Knowledge Base, Other, Communication
Jump to
- Built at the Anthropic NYC MCP hackathon
- Co-developed with @youssefish
- Integrates iMessage with RAG capabilities
- Currently unmaintained and may have bugs
- Setup instructions in subfolder READMEs
Setup instructions are located in the individual folder READMEs. Beyond that, the README provides no specific installation, configuration, or invocation commands.
search_messages
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.
get_conversation
Get a full conversation thread with a specific contact or chat. Supports cursor-based pagination via before_rowid for scrolling through history.
list_contacts
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.
get_contact
Deep info on a specific contact: tier, message stats, yearly breakdown, and recent messages.
resolve_contact
Fuzzy-match a name, phone number, or email to a contact record. Uses multi-level resolution: exact match, digits, fuzzy, and macOS AddressBook.
message_stats
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.
contact_stats
Deep per-contact analytics: message volumes, response time estimates, conversation patterns, and yearly trends.
temporal_heatmap
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.
list_group_chats
List all group chats with member counts, message volumes, and activity dates. Group chats have multiple participants.
get_group_chat
Detailed info on a specific group chat: all members with per-member message counts, activity timeline, and recent messages.
list_attachments
Query message attachments (images, videos, audio, documents) with filtering by contact, MIME type, and date range. Returns file metadata, not file contents.
get_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.
get_read_receipts
Read receipt and delivery timing analytics: per-contact read latency stats, unread patterns, fastest/slowest readers. Queries date_read and date_delivered columns.
get_thread
Reconstruct iMessage reply threads using thread_originator_guid. Returns nested thread trees with parent message and all replies in order.
get_edited_messages
Find edited and unsent (retracted) messages. Queries date_retracted and date_edited columns. Returns message list with timestamps and per-contact stats.
get_message_effects
iMessage expressive send effects and screen effects analytics: slam, loud, gentle, invisible ink, confetti, fireworks, balloons, lasers, etc. Queries expressive_send_style_id.
on_this_day
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.
first_last_message
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?'
who_initiates
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.
streaks
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.
double_texts
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.
conversation_gaps
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.
forgotten_contacts
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.
yearly_wrapped
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 replied to. Defaults to last year.
help
Show the imessage-mcp guide: all 25 tools and usage examples. Call this when you're unsure what's available.
Local iMessage RAG MCP Server
From the Anthropic NYC MCP hackathon in December 2024. Co-developed with @youssefish.
Probably a bit buggy. Setup instructions in the folders READMEs. Not planning to actively maintain, it kinda worked last time I tried it. Good luck. Better docs at some point maybe.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





