A1 Lane

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.

You
Schedule the Short I uploaded for Saturday 9am on YouTube.
Tool call
create_draft → post_id: pst_… status: draft schedule_draft { post_id, mode: "scheduled", scheduled_at: "…T09:00:00-07:00" } → status: scheduled
Assistant
Scheduled for Saturday 09:00 PT. I'll read the receipt after it goes out.
Tool call
get_receipt { post_id } → youtube: published · verified live · checked 09:01
Sample conversation
You
What went out this week, and does anything need me?
Tool call
get_delivery_digest { since: "…" } → live: 4 · limited: 1 (TikTok, private until audit) · needs you: 1
Assistant
Four posts are live and read back. TikTok delivered one as private. One X thread is unconfirmed; I won't re-send it.
Sample conversation
You
Did Friday's X thread go out?
Tool call
get_verification_status { post_id } → x: uncertain · a request may have landed
Assistant
It's unconfirmed: X didn't answer after we sent it. Re-sending could post it twice, so I've asked for a probe instead.
Tool call
resolve_attention { post_id, action: "probe" } → x: published · read back
Sample conversation

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 expiredYour draft is saved. Reconnect the assistant to keep going; nothing was sent.
More than one workspaceTell the assistant which workspace. It won't guess between them.
No channel can take this postThe draft is saved. Connect a channel that accepts this format, or change the media.
Media isn't reachableThe assistant can't see that file. It will give you an upload link; drop the file there and it carries on.
Plan channel limitSaved, not scheduled. The plan's channel count is full; the billing page names the exact limit.
Billing needs attentionSaved, not scheduled. The billing page shows the real blocker; it never replays queued work.
Approval neededSaved and sent for approval. Nothing publishes until a person approves this revision.
Platform quota reachedKept in the queue. It goes when the platform's quota resets; the receipt says when.
Still processingThe platform has it and is processing. We'll read it back when it finishes.
Title differsPublished, but the title came back different. The receipt keeps both; you decide.
UnconfirmedA request may have landed. We'll check again; we won't re-send it without you.
Some destinations didn't landMixed results stay mixed: 2 verified · 1 unconfirmed. Only the affected destination is rechecked.
Approval went staleThe 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.