Posts and drafts
The DunSocial MCP tools for posts and drafts: schedule, publish now, post X/Twitter threads, and save drafts, all callable by an AI assistant.
Posts
| Tool | What it does |
|---|---|
list_posts |
List posts (optional status, account, pagination). Includes mediaUrls (asset ids). |
get_post |
Get one post by id |
validate_post |
Dry-run schedule/publish checks (no writes). Call before schedule/publish; fix issues[].next when valid is false. |
schedule_post |
Schedule for later (socialAccountIds, content, scheduledAt, optional media/metadata) |
publish_now |
Publish immediately |
schedule_thread / publish_thread_now |
X/Twitter threads (2–25 tweets) |
schedule_reddit_post / publish_reddit_now |
Reddit self, link, image, or video |
schedule_instagram_post / publish_instagram_now |
Feed image, carousel, or Reel |
schedule_pinterest_post / publish_pinterest_now |
Image Pin to a board |
schedule_discord_post / publish_discord_now |
Discord text and attachments to a channel |
schedule_slack_post / publish_slack_now |
Slack text and files to a channel |
reschedule_post |
Change time and content (content and scheduledAt are both required) |
cancel_post |
Cancel a scheduled post |
delete_post |
Delete a post |
get_x_cap_usage |
X monthly posting cap |
Needs scopes: read tools use workspace:read; schedule/cancel need posts:schedule; publish tools need posts:publish; delete needs content:delete.
Example ask
Schedule this LinkedIn post for tomorrow at 15 UTC on account
ACCOUNT_ID: “We just shipped …”
The assistant should call schedule_post with ISO scheduledAt and the social account id.
Drafts
| Tool | What it does |
|---|---|
list_drafts / get_draft |
Browse drafts |
create_draft / update_draft |
Save ideas (optional platforms, accounts, media, Pinterest options) |
delete_draft |
Remove a draft |
Drafts need drafts:write (delete needs content:delete). A draft never publishes by itself.
Platform metadata on generic tools
schedule_post and publish_now can carry metadata.reddit, metadata.instagram, metadata.pinterest, metadata.discord, or metadata.slack plus mediaUrls. Discord requires metadata.discord.channelId from list_discord_channels (optional channelName). Slack requires metadata.slack.channelId from list_slack_channels (optional channelName). Facebook Pages need no metadata — pass the Page account id, text, and optional images. Prefer the dedicated tools when available.