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
list_social_accounts— find the Slack account idlist_slack_channels— pick a realchannelId(do not guess). Public and private channels the bot can see.- Upload media if the message needs attachments (
get_upload_url→ PUT →complete_upload) publish_slack_now(or schedule) with:socialAccountIdchannelIdcontent(up to 4,000 characters; required unlessmediaUrlsis 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
channelIdfromlist_slack_channels - Skipping the channel entirely —
metadata.slack.channelIdis 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.