social_post_draft
Create a social post **draft** on the caller's own Zernio account and return an `approveUrl` for the user to click. This tool never publishes and has no argument that could make it publish — Zernio's create-post is only ever called from the approve route, on the user's own click, exactly like signing a transaction. The user sees a per-platform preview at the link, edits or schedules it, and approves. Pass `scheduledFor` to have Zernio publish at that time once approved; omit it to publish as soon as they approve. `text` is one caption for every target, `perPlatformText` a caption per platform slug, and every target without an entry falls back to `text`. Media are putty asset ids and travel to Zernio as short-lived signed Garage URLs minted at approval. Runs on the caller's own stored Zernio key; without one the result is `{ code: "integration_required" }` and no call is made.
Create a social post draft on the caller's own Zernio account and return an approveUrl for the user to click. This tool never publishes and has no argument that could make it publish —.
Input
The tool takes a single JSON object. Every field, its type, and an example are on the generated reference at GET /mcp/tools, under this tool's name.
Calling it
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": { "name": "social_post_draft", "arguments": {} }
}Put your arguments in place of the empty object. A call that fails comes back as a normal result carrying isError: true and a message naming what went wrong, not as a JSON-RPC protocol error.
The full request and response shape, and a live playground, live on the generated reference at GET /mcp/tools.
social_connect_account
Start connecting a social account to the caller's own Zernio account. Returns a **dashboard link** to open in a browser the user is watching — deliberately not Zernio's raw OAuth URL, so an agent cannot run a connect flow out of the user's view. Zernio hosts the platform's consent screen, the user authorises there, and Zernio redirects back to putty with the account recorded. Runs on the caller's own stored Zernio key; without one the result is `{ code: "integration_required" }` and no call is made. The connected account lives in and is billed by the caller's Zernio account.
social_post_status
Read one of the caller's own social posts by id: its status, the Zernio post id once it exists, any error text, and the per-platform targets. A post belonging to another user answers the same not-found as one that does not exist. The status moves `draft` → `approved` → `scheduled`/`published` as the user approves and Zernio publishes; `partial` means some platforms took it, `failed` and `cancelled` are terminal. This tool only reads the caller's own store — it makes no Zernio call, so it works without a stored key.