Skip to main content
The ShingleAI MCP server provides 7 tools for accessing and managing messages. These tools allow you to retrieve messages, search content, manage message status, and view conversation threads.

getMessage

Get detailed information about a specific message by its ID, including all message type-specific fields (email headers, SMS encoding, WhatsApp media, etc.). Permission: messages:read Parameters:
NameTypeRequiredDescription
messageIdstring (UUID)YesID of the message to retrieve
Returns: Message object with all type-specific fields.

listMessages

List messages in the organization with optional filtering. Permission: messages:read Parameters:
NameTypeRequiredDefaultDescription
limitnumberNo10Maximum number of messages to return (1-100)
offsetnumberNo0Offset for pagination
sortOrderstringNo”desc”Sort order by creation date (“asc” or “desc”)
directionstringNo-Filter by message direction (“incoming” or “outgoing”)
Returns: Array of message objects.

searchMessages

Search messages using semantic search to find messages containing specific content or related to specific topics. Uses AI-powered search to find relevant messages even if they don’t contain exact keywords. Permission: messages:read Parameters:
NameTypeRequiredDefaultDescription
querystringYes-Search query (e.g., “invoice”, “meeting tomorrow”)
limitnumberNo10Maximum number of messages to return (1-100)
offsetnumberNo0Offset for pagination
directionstringNo-Filter by message direction (“incoming” or “outgoing”)
Returns: Array of message objects matching the search query.
The search uses semantic matching, so queries like “customer complaint” will find relevant messages even if they don’t contain those exact words.

updateMessageStatus

Update the status of a message - mark as read/unread, archive/unarchive, or snooze/unsnooze. Permission: messages:write Parameters:
NameTypeRequiredDescription
messageIdstring (UUID)YesID of the message to update
readAtstring | nullNoISO datetime to mark as read, or null to mark as unread
archivedAtstring | nullNoISO datetime to archive, or null to unarchive
snoozedUntilstring | nullNoISO datetime to snooze until, or null to unsnooze
Returns: The updated message object.
This tool only allows updating status fields for security reasons. To modify message content, use the appropriate channel-specific tools.

getMessagesByContact

Get all messages sent to or received from a specific contact. Useful for viewing the complete communication history with a contact. Permission: messages:read Parameters:
NameTypeRequiredDefaultDescription
contactIdstring (UUID)Yes-Contact ID to retrieve messages for
limitnumberNo20Maximum number of messages to return (1-100)
offsetnumberNo0Offset for pagination
sortOrderstringNo”desc”Sort order by creation date (“asc” or “desc”)
directionstringNo-Filter by direction (“incoming” = from contact, “outgoing” = to contact)
Returns: Array of message objects from/to the specified contact.

getMessageThread

Get all messages that belong to the same conversation thread. Useful for viewing the complete conversation history. Permission: messages:read Parameters:
NameTypeRequiredDefaultDescription
threadIdstringYes-Thread ID to retrieve messages for
limitnumberNo50Maximum number of messages to return (1-100)
offsetnumberNo0Offset for pagination
sortOrderstringNo”asc”Sort order (“asc” = oldest first for conversation flow, “desc” = newest first)
directionstringNo-Filter by message direction (“incoming” or “outgoing”)
Returns: Array of message objects in the thread.

listMessageAttachments

List all file attachments associated with a specific message, including details like filename, size, content type, and URL. Permission: messages:read Parameters:
NameTypeRequiredDefaultDescription
messageIdstring (UUID)Yes-ID of the message
limitnumberNo20Maximum number of attachments to return
offsetnumberNo0Offset for pagination
sortOrderstringNo”asc”Sort order by creation date (“asc” or “desc”)
Returns: Array of attachment objects with metadata (filename, size, content type, URL).

Next Steps