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.
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.
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_connect_account", "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.
Notes
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.
The full request and response shape, and a live playground, live on the generated reference at GET /mcp/tools.
social_accounts_list
List the social accounts connected in the caller's own Zernio account. Runs on the caller's own stored Zernio key — putty has no Zernio account of its own and pays nothing, so the connected accounts and every post are billed to the caller's Zernio account. Returns `{ profileId, profileCandidates, accounts }`. `profileCandidates` is non-null only when the account has several Zernio profiles and none has been chosen: the user picks one on the Integrations page. With one profile it is used automatically; with none, putty creates one named "putty". Without a stored key the result is `{ code: "integration_required" }` and no call is made.
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.