Discord
Publish text and attachments to a Discord channel through MCP.
Prefer schedule_discord_post and publish_discord_now. Do not treat create_draft as a successful Discord message.
Flow
list_social_accounts— find the Discord account idlist_discord_channels— pick a realchannelId(do not guess). Text and announcement channels only.- Upload media if the message needs attachments (
get_upload_url→ PUT →complete_upload) publish_discord_now(or schedule) with:socialAccountIdchannelIdcontent(up to 2,000 characters; required unlessmediaUrlsis set)- optional
channelName - optional
mediaUrls(up to 10 images or videos; total request max 25 MB)
Example ask
List Discord channels, then publish “Ship notes for Friday” to #announcements with this screenshot.
Drafts
If you only want a draft for the web composer, use create_draft with selectedPlatforms: ["discord"]. That still does not publish.
Common mistakes
- Using a channel name instead of
channelIdfromlist_discord_channels - Skipping the channel entirely —
metadata.discord.channelIdis required - Assuming a draft is live on Discord
- Claiming embeds, forums, polls, or Discord analytics — V1 is text and attachments only