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.
{
"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.