messages_send
ActiveTool of io.github.saloprj/dialogbrain
Send a message to a thread, channel, or contact. Supports Telegram, Email, LinkedIn, and other connected channels. For LinkedIn posts (comment_thread kind), this posts a comment on the post. Can automatically resolve recipients and channels when not specified. Can send files/images/documents as attachments — pass `attachments=[file_id, ...]` with integer file IDs obtained from collections.list_files, search.files, or files.search. `text` is optional when attachments are provided.
Parameters schema
{
"type": "object",
"required": [],
"properties": {
"text": {
"type": "string",
"maximum": 4096,
"description": "Message text to send. Optional if attachments provided."
},
"format": {
"enum": [
"text",
"markdown",
"html"
],
"type": "string",
"default": "text",
"description": "Message format"
},
"silent": {
"type": "boolean",
"description": "Send without notification"
},
"thread_id": {
"type": "string",
"description": "Target thread. OMIT to reply in the same chat you received the triggering message from — the backend defaults to the current thread. Pass an explicit value ONLY to reply in a DIFFERENT thread, and only use: (a) a numeric DB thread id from search.threads, or (b) a channel_ref like 'telegram:-12345'. NEVER use a chat-type word (dm, group, channel, livechat) — those are category labels from the SITUATION block, not ids."
},
"attachments": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Array of integer file IDs to send as attachments (images, documents, any files). Get file IDs from collections.list_files (field `file_id`), search.files (field `file_id`), or files.search. Example: [302237]. The file must already exist in the workspace (status=ready) — no separate upload step needed. When attachments are provided, `text` becomes optional (a caption can be included alongside)."
},
"recipient_name": {
"type": "string",
"description": "Name of person to send to (e.g., 'Jane', 'John'). Tool will auto-resolve channel. Optional if thread_id provided."
},
"recipient_username": {
"type": "string",
"description": "Telegram @username to message (e.g. '@some_username'). Use this for a Telegram user NOT yet in contacts — it resolves the handle, adds the contact, and creates the thread. Telegram only; for existing contacts prefer thread_id or recipient_name."
},
"reply_to_message_id": {
"type": "string",
"description": "ID of message to reply to (optional)"
}
}
}Parent server
io.github.saloprj/dialogbrain
https://github.com/saloprj/dialogbrain-mcp
1/7 registries