Skip to content
DunSocial Docs

Slack

Publish text and files to a Slack channel through MCP.

Prefer schedule_slack_post and publish_slack_now. Do not treat create_draft as a successful Slack message.

Flow

  1. list_social_accounts — find the Slack account id
  2. list_slack_channels — pick a real channelId (do not guess). Public and private channels the bot can see.
  3. Upload media if the message needs attachments (get_upload_url → PUT → complete_upload)
  4. publish_slack_now (or schedule) with:
    • socialAccountId
    • channelId
    • content (up to 4,000 characters; required unless mediaUrls is set)
    • optional channelName
    • optional mediaUrls (up to 10 images or videos; 50 MB per file)

Example ask

List Slack channels, then publish “Ship notes for Friday” to #launches with this screenshot.

Drafts

If you only want a draft for the web composer, use create_draft with selectedPlatforms: ["slack"]. That still does not publish.

Common mistakes

  • Using a channel name instead of channelId from list_slack_channels
  • Skipping the channel entirely — metadata.slack.channelId is required
  • Assuming a draft is live on Slack
  • Posting to a private channel without inviting the DunSocial Slack app
  • Claiming DMs, thread replies, Block Kit, or Slack analytics — V1 is text and attachments only
  • Confusing this with the Slack agent in Settings → Integrations. Publish uses a separate Slack app.