messages_read_history
ActiveTool of io.github.saloprj/dialogbrain
Read messages from a conversation thread. Use text_contains to find specific messages by content. Returns the most recent messages, including sender info and timestamps. Voice calls: each row carries a `meta` object with allowlisted keys (`event_type` ∈ 'call_started'|'call_ended'|null, `source` ∈ 'voice_transcript'|null, `call_id`, `speaker_display_name`, `duration_seconds`, `outcome`, `direction`) plus per-message `channel`. To find calls without scanning every row, use `calls.list_history` instead. Usage: 1. Get thread_id from threads.list first, OR 2. Use contact_name to auto-resolve thread_id Examples: - User: 'show me messages from chat with [contact]' → read_history(contact_name='[contact]', limit=10) - User: 'last 5 messages from thread 571' → read_history(thread_id=571, limit=5)
Parameters schema
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of messages to return (default: 10, max: 100)"
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Number of messages to skip (for pagination, default: 0)"
},
"thread_id": {
"type": "string",
"description": "Thread ID to read messages from (e.g., '571' or 'telegram:571'). Optional if contact_name provided."
},
"contact_name": {
"type": "string",
"description": "Contact/thread name to search for (optional if thread_id provided). Example: 'Jane Smith', 'John Doe'"
},
"text_contains": {
"type": "string",
"description": "Filter: only return messages containing this text (case-insensitive substring match)"
},
"include_outgoing": {
"type": "boolean",
"default": true,
"description": "Include messages sent by you (default: true)"
}
}
}Parent server
io.github.saloprj/dialogbrain
https://github.com/saloprj/dialogbrain-mcp
1/7 registries