Skip to content

Feature Request: Add messages_attachment_fetch tool #130

@IGI2

Description

@IGI2

I've been using iMCP with Claude and noticed that message attachments are referenced in the output (e.g., at_0_F1E5F818-3332-446C-B96B-E60C6ED3F0F7) but there's no way to actually retrieve them.

Use case

When Claude fetches messages, I can see that attachments exist, but I cannot view or process them. This limits the usefulness of the Messages integration – for example, I can't ask Claude to read a document someone sent me via iMessage.

Proposed solution

Add a new tool messages_attachment_fetch that retrieves attachment content:

messages_attachment_fetch:
  - attachment_id: string (required) – the attachment identifier from messages_fetch
  
Returns:
  - data: base64 encoded file content
  - mime_type: string (e.g., "image/jpeg", "application/pdf")
  - filename: string

Technical feasibility

Based on iMessage's SQLite structure:

  • attachment table in chat.db contains metadata (file path, MIME type, filename)
  • Physical files are stored in ~/Library/Messages/Attachments/
  • Relationship: messagemessage_attachment_joinattachment

Since iMCP already uses Madrid to read chat.db, extending it to query the attachment table should be straightforward.

Sandbox considerations

The user would need to grant access to the ~/Library/Messages/Attachments/ folder via NSOpenPanel, similar to how access to chat.db is currently handled.

Optional enhancements

  • Size limit parameter to avoid loading large videos
  • Thumbnail generation for images
  • List attachments for a specific conversation

Would love to see this feature added!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions