Examples
Practical agent recipes for Social0 MCP — schedule, reels, threads, LinkedIn, bulk schedule, and multi-platform publish.
Same tools on remote (https://mcp.social0.app/mcp) and local (npx -y @social0/mcp). Tool names below match MCP tools.
Agent rules:
- Call
list_accountsbefore the first publish in a session. - After any publish, return
tracking_idand pollget_publish_statusuntil terminal (completed,failed, orpartial). - Remote hosts:
upload_mediawith publicurlor base64data— not sandboxfile_path. - MCP
scheduled_atis UTC ISO-8601 (CLI accepts natural language; MCP does not). - No analytics tools — out of scope.
Schedule to X
Agent flow:
1. list_accounts
2. schedule_content({
content: "Blog post goes live in the morning — thread in replies.",
platforms: ["twitter_x"],
scheduled_at: "2026-08-04T09:00:00.000Z"
})Confirm timezone with the user before converting local time to UTC.
Instagram reel (upload + publish)
Remote host (public URL):
1. list_accounts
2. upload_media({ url: "https://cdn.example.com/reel.mp4", filename: "reel.mp4" })
→ media_id
3. publish_now({
content: "60-second product walkthrough ✨",
platforms: ["instagram"],
media: ["<media_id>"]
})
→ tracking_id
4. get_publish_status({ tracking_id: "<tracking_id>" }) # poll every 2–5sLocal MCP (file on the same machine):
upload_media({ file_path: "/Users/you/reel.mp4" })Video jobs often stay in processing longer than text — keep polling.
Thread (X / Threads / Bluesky)
MCP has no dedicated thread tool. Options:
A — Legacy --- split (X only): API splits content on a line containing only --- into a reply chain.
publish_now({
content: "1/3 — We rebuilt the publish pipeline.\n---\n2/3 — Same queue as the dashboard.\n---\n3/3 — Docs: https://social0.app/docs",
platforms: ["twitter_x"]
})B — Structured parts (recommended for media per tweet): use REST metadata.twitterThread.parts or the dashboard thread composer. MCP platform_options today covers disclosure flags (madeWithAi, paidPartnership) but not multi-part arrays — for rich threads with per-part media, use the dashboard or REST API.
C — Draft workflow: create_draft → user reviews → publish_post — still one caption unless you use REST metadata.
Threads and Bluesky use the same structured twitterThread.parts shape when posting via API.
LinkedIn post
1. list_accounts
2. publish_now({
content: "Three things we learned shipping agent-friendly CLI docs:\n\n1. Shell beats MCP when available\n2. Always poll publish status\n3. Platform names ≠ account UUIDs when accounts collide",
platforms: ["linkedin"]
})
3. get_publish_status({ tracking_id: "..." })With image:
upload_media({ url: "https://cdn.example.com/chart.png" })
publish_now({ content: "Q3 snapshot", platforms: ["linkedin"], media: ["<media_id>"] })Bulk schedule (multiple schedule_content calls)
One tool call per slot — no batch tool.
1. list_accounts
2. schedule_content({
content: "Monday motivation",
platforms: ["twitter_x", "linkedin"],
scheduled_at: "2026-08-04T08:00:00.000Z"
})
3. schedule_content({
content: "Mid-week product tip",
platforms: ["instagram"],
media: ["<media_id>"],
scheduled_at: "2026-08-06T14:00:00.000Z"
})
4. schedule_content({
content: "Friday recap",
platforms: ["threads", "bluesky"],
scheduled_at: "2026-08-08T16:00:00.000Z"
})Return each scheduled post id to the user. Edit later with update_draft / cancel with delete_draft (drafts and schedules only — not live network posts).
Multi-platform publish_now + poll
1. list_accounts
2. publish_now({
content: "Social0 MCP examples are live 🚀",
platforms: ["twitter_x", "linkedin", "threads"]
})
→ { post_id, tracking_id }
3. get_publish_status({ tracking_id }) # repeat until terminalOn partial:
- Summarize which platforms in
platform_statusessucceeded vs failed. - Read
errorsfor failure reasons. - Do not invent new tracking IDs — use the one from step 2.
TikTok in multi-platform jobs: set privacy via dashboard defaults or platform_options.tiktok.privacy_level — bare content may fail. See TikTok settings.
Optional: suggest_best_platforms
Before publishing ambiguous copy:
suggest_best_platforms({
content: "Long-form essay about B2B SaaS positioning…",
has_media: false
})Heuristic only — does not publish.
Related
- MCP tools
- MCP quickstart
- CLI platform examples — preferred when the agent has a shell
- Provider settings — TikTok privacy, YouTube title, Pinterest board