calls_list_history
ActiveTool of io.github.saloprj/dialogbrain
Search historical voice calls in this workspace by participant name, contact_id, thread, channel, source, and/or date range. Returns one row per call (NOT per turn) with call_id, duration_seconds, outcome, direction, started_at, source, channel_label, and parent_thread_id (the originating chat thread for Telegram-group / Twilio-outbound / Meet calls). Pair with calls.get_transcript(call_id) for the full per-turn transcript. Use this instead of messages.read_history for cross-thread call queries — group calls and Meet sessions live on per-call sub-threads, not on the parent chat thread.
Parameters schema
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "integer",
"description": "Maximum calls to return (default 20, max 100)."
},
"since": {
"type": "string",
"description": "ISO date or datetime lower bound (inclusive). Default: 90 days ago. Naive timestamps are interpreted as UTC."
},
"until": {
"type": "string",
"description": "ISO date or datetime upper bound (inclusive). Default: now."
},
"source": {
"enum": [
"telegram",
"twilio",
"meet",
"livechat"
],
"type": "string",
"description": "Filter by voice_sessions.source: 'telegram' (1:1 + group), 'twilio' (PSTN), 'meet' (Google Meet bot), 'livechat' (in-app voice). OMIT to include all sources."
},
"channel": {
"enum": [
"telegram",
"twilio_voice",
"meet_voice",
"livechat_voice"
],
"type": "string",
"description": "Filter by message-level channel of the call thread: 'telegram' (1:1 voice or group call sub-thread), 'twilio_voice', 'meet_voice', 'livechat_voice'. OMIT to include all voice channels."
},
"thread_id": {
"type": "integer",
"description": "Restrict to calls on this thread OR with this thread as their originating parent (Telegram group → call sub-thread back-link, Twilio outbound source_thread_id back-link)."
},
"contact_id": {
"type": "string",
"description": "Filter by exact entity_id (from contacts.find). Mutually exclusive with participant_name when both target the same person."
},
"participant_name": {
"type": "string",
"description": "Filter to calls whose parent thread has a participant matching this name (substring match against entity.title). Resolves group calls via the parent group's roster, not the per-call thread's speaker list."
}
}
}Parent server
io.github.saloprj/dialogbrain
https://github.com/saloprj/dialogbrain-mcp
1/7 registries