Discord
Use the message tool with channel: "discord". The tool schema lists the actions enabled by the current account's channels.discord.actions.* gates; do not assume unavailable actions.
Workflow
- Prefer stable
guildId,channelId,messageId, anduserIdvalues from context. PassaccountIdwhen more than one Discord account could apply. - Resolve the exact message before editing, deleting, pinning, moderating, or reacting when the user's reference is ambiguous.
- Keep thread replies in their existing thread. A forum parent cannot receive components; send components to the created forum thread instead.
- Confirm destructive or moderation actions unless the user already specified the exact target and action.
Interactive components
components must be a structured object or native component array, never a placeholder string. Do not combine components v2 with legacy embeds.
json{ "action": "send", "channel": "discord", "to": "channel:123", "message": "Choose an option", "components": { "blocks": [ { "type": "actions", "buttons": [ { "label": "Approve", "style": "success", "callbackData": "approve" }, { "label": "Decline", "style": "danger", "callbackData": "decline" } ] } ] } }
Discord mention syntax, component availability, and form hints are injected automatically. Follow the current hints and tool schema rather than a duplicated action catalog.


