MCP App Store
by KeenEthics

Overview

1Social publishes to Instagram, TikTok, LinkedIn, X (Twitter), Facebook, Threads and Bluesky from a single message — right away, or scheduled up to 30 days ahead. Before anything goes out, Claude can check the draft: per-network character counts, whether a network requires an image (Instagram and TikTok refuse posts without one), whether a multi-part post will publish as a native thread or be joined into a single post, and what it would cost against your remaining quota. The check publishes nothing and spends no quota. After publishing, Claude reports each network separately — what landed, with a link to the live post; what failed, with a readable reason; and the rare case where 1Social genuinely cannot tell. A network that failed can be retried on its own, without re-posting to the ones that already went out. Anything still scheduled can be edited or unscheduled, and deleted from the networks whose APIs allow deletion. Attach an image or video straight from the conversation, or pass a public URL. Ten tools: list_accounts, preview_post, publish_post, list_posts, update_post, cancel_post, delete_post, retry_delivery, upload_media, confirm_delivery. Connecting your social accounts happens in your browser at 1social.dev, through each network's own OAuth flow. There are no API keys to paste, and the agent never sees the credentials for your social accounts. Every account gets 30 deliveries a month free — pricing is per delivery, so one post to seven networks is seven deliveries. Paid plans are Solo $19/mo and Pro $39/mo.

Tools

cancel_post

ChatGPT
Cancels a scheduled post so it will not be published, and releases the quota it had reserved. It also stops any automatic retries still pending for deliveries that failed, so they will not be published later. The post stays in the list with a cancelled status and its receipt intact. Use this rather than delete_post when the post has not gone out yet.

confirm_delivery

ChatGPT
Records the answer to a delivery 1Social could not determine: whether the post is actually live on that network. The USER must check the network and say — never infer this, and never call it on their behalf without an explicit answer. Confirming that a post is live commits the quota it used; confirming that it is not marks the delivery failed so it can be retried.

delete_post

ChatGPT
Deletes a post from 1Social and attempts to remove the published post from each network. Removal works on X, LinkedIn, Bluesky and Facebook; Instagram, TikTok and Threads expose no working delete API, so a post that went to them STAYS LIVE and only the user can take it down. On a thread, only the first post is removed and the remainder stay live as orphans. The result reports what actually came down, per network — report that to the user accurately rather than confirming a clean delete. Confirm with the user before calling this.

list_accounts

ChatGPT
Lists the social accounts the user has connected to 1Social, what each network will accept (caption length, whether media is required, whether it can thread), the current plan, and the remaining monthly posting quota. Call this before composing anything: channel ids from here are required by every other tool. Connecting a new account needs a browser and cannot be done from a chat.

list_posts

ChatGPT
Lists the user's posts with the outcome on each network: delivered, failed with a readable reason, cancelled, or unknown when 1Social genuinely cannot tell. Includes stored engagement metrics where the network reports any. Pass postId to fetch one post, status to filter, or limit to shorten the list. Delivery ids needed by retry_delivery and confirm_delivery come from here.

preview_post

ChatGPT
Checks a draft post against each selected network WITHOUT publishing it, and reports what would go wrong: per-segment character counts against each limit, whether a network requires an image, whether a multi-segment post will publish as a native thread or be joined into one post, and what the post would cost against the remaining quota. Pass any attached image or video in media (or mediaUrls if you only have a public link) so the check accounts for it. Always call this before publish_post — it is free and it is the only preview that exists.

publish_post

ChatGPT
Publishes a post to the user's connected social accounts, or schedules it for a future time by setting scheduledAt (null publishes immediately; the limit is 30 days ahead). Run preview_post first and resolve any issues — this tool refuses a post that exceeds a network's limits. To attach an image or video the user shared, pass it in media (or mediaUrls if you only have a public link); Instagram and TikTok reject a post that has none. Pass a stable idempotencyKey so a repeated call cannot publish the same thing twice. The result is a per-network receipt: some networks can succeed while others fail, and that outcome must be reported to the user network by network.

retry_delivery

ChatGPT
Retries one failed delivery to a single network, leaving the deliveries that already succeeded untouched. Retrying spends quota again. It is refused for a permanent failure such as a revoked credential or a policy rejection, because it would only fail again. For a delivery in the unknown state, force is required and retrying MAY publish a second copy — ask the user before doing that.

update_post

ChatGPT
Changes the content and scheduled time of a post that has not been sent yet. Only works while the post is still editable — a post that is published, in progress, or cancelled cannot be edited. The networks have no edit endpoint, so this withdraws the scheduled post and replaces it; if some networks accept the replacement and others do not, the result names the ones that kept the old version.

upload_media

ChatGPT
Gets an upload target for a file you hold locally, for clients that cannot attach files to a tool call. Use it ONLY when you have the file itself and no public link — if the user attached something, pass that in publish_post's media instead, and if you already have a public https link use mediaUrls. The flow is: 1. Call this tool with the file's name, MIME type and size. 2. PUT the raw bytes to the uploadUrl it returns, sending uploadHeaders exactly as given. 3. Pass the returned publicUrl in mediaUrls when you call preview_post or publish_post. The upload target is short-lived, so do step 2 straight away. Serving the file from a local web server instead does not work: only public https links are accepted.

cancel_post

Claude

confirm_delivery

Claude

delete_post

Claude

list_accounts

Claude

list_posts

Claude

preview_post

Claude

publish_post

Claude

retry_delivery

Claude

update_post

Claude

upload_media

Claude

App Stats

20

Tools

3

Prompts

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily