- Endpoint:
https://postonce.to/mcp - Transport: Streamable HTTP
- Manual authentication:
Authorization: Bearer <PostOnce API key>
Prepare your account
Create a dedicated key in Preferences → API keys. Start withaccounts:read to check the connection; add the relevant posts, media or workflow scopes for the actions you need. Keep the key in your client’s private configuration or secret environment, never in a conversation or a committed project file.
Connect your social accounts in PostOnce. An empty account list means the connection worked but no usable social accounts were returned. See plans for Public API entitlement.
Other clients
Use the endpoint, Streamable HTTP transport and private Authorization header above if your client supports them. A client that requires OAuth needs its own supported setup; an arbitrary JSON snippet does not establish compatibility. Consult the integration directory for available client instructions.First useful action
Ask: “Show my connected social accounts.” Thelist_accounts and list_active_accounts tools return account IDs and platform capabilities. Check media_requirements for required media and input constraints before choosing a text, image or video post. These are platform-level constraints; the service still checks account permissions at the requested operation.
For an authorized post:
- Select actual returned account IDs and prepare the content.
- Call
create_postwith the content and those targets. Use a futurepublish_attimestamp only when scheduling is intended. Usecreate_draftfor a draft. - Call
get_postwith the returned ID and inspect every destination’s actual status. A queued or scheduled post has not necessarily been published. - Review delivery and recovery in publishing history.
list_workflows first. Use create_workflow or update_workflow with the selected source and destination IDs, then read the saved rule with get_workflow. A new active workflow is configured to process future source content; its creation does not prove a source post has already been delivered. Review it in Workflows.
Media with the hosted connection
Pass a supported, publicly fetchable media URL tocreate_post, or upload a selected local file from your client:
- Call
create_upload_urlwithfilenameandcontent_type. - PUT the file bytes from the client to the returned
data.upload.signedUrlusing the matching content type. Check that upload succeeds. Do not send your PostOnce key to the storage host or expose the signed URL in chat/logs. - Call
get_mediawithdata.media_idand use the returnedpublic_urlin the post’s media object. - Inspect the resulting post’s delivery status.
upload_media_from_path, create_media_post_from_path or create_tiktok_draft_from_path; those helpers belong to a separately configured local stdio server. A chat attachment works only when the client can transfer its bytes through the supported upload flow or provide a suitable accessible URL.
Reusable agent skill
The PostOnce skill teaches account discovery, media transfer, posting, delivery inspection and automatic crossposting. Use it as workflow guidance according to your client’s supported skill mechanism. Installing a skill adds guidance; it does not authenticate the client or change plan access.Errors and recovery
- Invalid or revoked credentials: reconnect through the supported client setup.
- Missing scope or plan access: follow the returned requirement and update the existing key or plan as appropriate.
- Disconnected social account: reconnect it in PostOnce and refresh account discovery.
- Invalid media/settings: correct the specific input from the response before retrying.
- Uncertain creation result: retain the same
idempotency_keyand identical payload, inspect existing results before retrying, and avoid publishing a second copy. - Partial delivery: inspect each destination and recover the failed destination rather than recreating the post for every target.
