Skip to content
DunSocial Docs

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

  1. list_social_accounts — find the Discord account id
  2. list_discord_channels — pick a real channelId (do not guess). Text and announcement channels only.
  3. Upload media if the message needs attachments (get_upload_url → PUT → complete_upload)
  4. publish_discord_now (or schedule) with:
    • socialAccountId
    • channelId
    • content (up to 2,000 characters; required unless mediaUrls is 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 channelId from list_discord_channels
  • Skipping the channel entirely — metadata.discord.channelId is required
  • Assuming a draft is live on Discord
  • Claiming embeds, forums, polls, or Discord analytics — V1 is text and attachments only