MCP & API
Your assistant can publish, and prove it.
Claude, ChatGPT and Grok work through 26 documented tools (version v1.3). Every result says what happened, what's known, and the one next step. The same receipt comes back to the chat.
Try a request
Sample conversations with real tool names. One of them doesn't go green on the first try.
Tool catalogue · v1.3
The 26 tools, by what you're doing.
Generated from the server's own tool table, so this list can't drift from what your assistant sees.
Orient 4 tools
See what is connected and what each platform accepts.
list_accountsList connected accounts. Connected social accounts in this workspace with health state (ok / credential_invalid / action_required_in_app / unknown) and posting-slot schedules.get_platform_schemaGet platform constraints. Media constraints, caption limits, per-destination options and disclosure fields per platform — call before composing to avoid validation errors.get_delivery_digestGet the delivery digest. Start here: what went out since a time (default the last 24 hours) with platform links — live counts published only, limited deliveries on their own line — plus what needs you, each with a link to the exact post.list_postsList posts. Posts with per-destination status. status filter: active | attention | published | draft | pending_approval | scheduled | failed | …
Prepare 7 tools
Bring in media and build drafts. Nothing is queued yet.
upload_mediaImport media from a link. Ingest a video or image the user supplies (https URL) into the workspace library; returns the media id. No generation.create_upload_linkCreate an upload link. A single-use link the user opens to drop ONE file into the library (phone or desktop). The link adds exactly one library item and can never post or publish. Poll get_upload_status, then create_draft with the media id.get_upload_statusGet upload status. State of an upload link: waiting / receiving (percent) / validating / ready (media id + per-platform fit) / rejected (code, reason, fix_hint) / expired / revoked.create_draftCreate a draft post. Create a DRAFT (never queued). Schedule it with schedule_draft; the workspace's approval policy applies.update_draft_settingsUpdate a draft. Change caption, destinations, options, schedule, parts, first comment or UTM on a post that has not started delivering. Edits after an approval reset the approval.submit_batchSubmit a batch of drafts. Create many posts in one call with per-item results; one bad item never sinks the batch. Items are drafts unless the token has publish scope and the item names a mode.delete_draftDelete a draft. Delete a draft or finished post. Queued or scheduled posts must be cancelled first.
Review and hand off 2 tools
Ask a person, or hand the last step to a human.
request_approvalRequest approval. Submit a draft to the workspace's approvers (draft → pending_approval).create_handoff_packCreate a handoff pack. For destinations that end with a human finishing in the platform app: caption and every toggle to set, phone-sized.
Schedule and manage 4 tools
Queue, schedule, pause and cancel.
schedule_draftSchedule or queue a draft. Queue a draft now, at an instant, or into an account's next free slot. Needs the publish scope; a workspace that requires approval refuses until approved.cancel_scheduledCancel a scheduled post. Cancel before send = clean stop; a destination whose request may have landed becomes uncertain, never silently cancelled.pause_workspacePause or resume publishing. Pause every new delivery in the workspace (or one account with account_id): queued posts are held, not failed. resume=true clears that pause. Needs the publish scope.get_batch_statusGet batch status. Roll-up for a batch: live / pending / parked per destination, fullyLive and done flags.
Verify and recover 5 tools
Read the receipt; resolve what didn't land; take a post down.
get_receiptGet a delivery receipt. Full receipt for one post: destinations, platform ids and URLs, flags, every checkpoint.get_verification_statusGet verification status. Which destinations are verified live, still pending, awaiting a human finish, or parked as uncertain — for one post or across the workspace's active posts.list_attention_itemsList attention items. The needs-attention feed: failed, uncertain, awaiting human finish, held, blocked, flagged, approvals, unhealthy accounts.resolve_attentionResolve an attention item. probe: run the read-back probe on an uncertain destination. retry: retry provably-failed destinations (uncertain is refused). release: release a same-asset hold. acknowledge_force_retry: after a probe, re-send an uncertain destination — requires acknowledge=true because a duplicate is possible. confirm_deleted: record that the user deleted the post in the platform's app, closing a delete_manual destination whose route has no read-back — requires destination_id and acknowledge=true; the delete is human-attested, never read-back verified.unpublish_postUnpublish a post. Delete a live post from its platforms (or one destination). Requires acknowledge=true. Ends deleted only when a read-back confirms it is gone; delete_uncertain is probed, never blindly re-deleted; delete_manual means the platform has no delete API and returns the in-app steps.
Measure 4 tools
Read what each platform reports, with the time it was read.
get_post_engagementGet post engagement. Engagement for one post, per destination: latest platform-reported views / likes / comments / shares, each with its as-of time, the pull pipeline state, and the series. Metrics a platform did not report are marked unavailable with the reason, never shown as zero. Engagement is the platform's number, not delivery truth — use get_receipt for delivery.get_engagement_rollupGet engagement rollup. Engagement totals over a window (default 30 days, capped by the plan's history), per metric, platform and channel. Posts whose platform did not report a metric are excluded from that metric and counted with their reason — never zero-filled.get_engagement_coverageGet engagement coverage. Which engagement metrics each platform exposes, which are scope-gated, and the pull cadence — the same generated matrix as the public /docs/engagement page. Discord and Telegram expose none; X reads are off until the operator enables them (they bill per read).get_best_timesGet best times to post. Best weekday x hour slots for one channel, from that channel's own scored history (never other accounts, never a reschedule). Below the evidence threshold the answer is {enough: false, message: "Not enough data yet."} instead of a guess.
What the assistant cannot do.
Publish without approval
If the workspace requires approval, nothing publishes until a person approves that exact revision.
Edit a receipt
Receipts are written from what the platform returned. The assistant can't edit one; only new observations are added. Deleting your account deletes them.
Call a limited delivery live
Where a platform can't be read back (Telegram) or restricts visibility (TikTok before its audit), the receipt says Delivered (limited), and so does the assistant.
When something goes wrong, it says what's saved
| Sign-in expired | Your draft is saved. Reconnect the assistant to keep going; nothing was sent. |
|---|---|
| More than one workspace | Tell the assistant which workspace. It won't guess between them. |
| No channel can take this post | The draft is saved. Connect a channel that accepts this format, or change the media. |
| Media isn't reachable | The assistant can't see that file. It will give you an upload link; drop the file there and it carries on. |
| Plan channel limit | Saved, not scheduled. The plan's channel count is full; the billing page names the exact limit. |
| Billing needs attention | Saved, not scheduled. The billing page shows the real blocker; it never replays queued work. |
| Approval needed | Saved and sent for approval. Nothing publishes until a person approves this revision. |
| Platform quota reached | Kept in the queue. It goes when the platform's quota resets; the receipt says when. |
| Still processing | The platform has it and is processing. We'll read it back when it finishes. |
| Title differs | Published, but the title came back different. The receipt keeps both; you decide. |
| Unconfirmed | A request may have landed. We'll check again; we won't re-send it without you. |
| Some destinations didn't land | Mixed results stay mixed: 2 verified · 1 unconfirmed. Only the affected destination is rechecked. |
| Approval went stale | The post changed after approval. The approval no longer applies to this revision. |
The REST API runs the same checks: API reference · MCP reference.
Make something worth sharing. We'll bring back the proof.
No card. The trial's end date is shown up front, and when it ends publishing simply pauses until you choose a plan.