Skip to main content

Octopost

ink.octopost/octopostVersion 1.0.2

Your agent posts, schedules, queues and threads posts on X, with a human approval queue.

Status

Responds385 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 14:33 UTC
Latency
385 ms
Remotes responding
1 of 1
Sign-in
API key
Hosting
Hosted outside the EU (detected)
Registry data as of
Nov 14, 2026, 22:14 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://octopost.ink/mcpResponds385 ms
No sign-in

Claude Code

claude mcp add --transport http octopost https://octopost.ink/mcp --header 'Authorization: Bearer <YOUR_TOKEN>'

Replace <YOUR_TOKEN> before running.

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: octopost
Remote MCP server URL: https://octopost.ink/mcp
This server expects the header Authorization.

Cursor

{
  "mcpServers": {
    "octopost": {
      "url": "https://octopost.ink/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

Replace <YOUR_TOKEN> before running.

VS Code

code --add-mcp '{"name":"octopost","type":"http","url":"https://octopost.ink/mcp","headers":{"Authorization":"Bearer <YOUR_TOKEN>"}}'

Replace <YOUR_TOKEN> before running.

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

30 tools

Tools of Octopost
Read-only
Idempotent
Open world
add_feedTurn an RSS or Atom feed (a blog, a newsletter, a changelog) into posts. Octopost reads the feed right away (a site address works too if the page links its feed) and then checks it every 30 minutes by default. Each new item becomes a post from the template. The first check posts only the feed's latest item, so adding a feed never floods the account. By default (mode "hold") every new item waits for a person to approve it: Octopost emails the owner Approve / Reject / Edit links, so tell the user to check their email. With mode "queue" new items join the posting queue and publish in queue slots. A feed makes at most 10 posts a day; the same text to the same network within 7 days is skipped; a blocked term holds the post. Posts are shortened to fit each network (the excerpt first, then the title; the link is kept whole).NoNoNoYes
approve_queued_postApprove a post that is waiting for approval. Approval is meant for a person: by default this tool refuses, and the post has to be approved from the email Octopost sent or the dashboard. It only works when the account owner turned on "Let agents approve posts made by a different agent" in Settings, and never for a post your own key or connection made. Only call it when the user explicitly asked you to approve that specific post. If it refuses, tell the user the post is waiting for them and to check their email. Once approved, a queue post publishes in its queue slot and a scheduled post at its time.NoNoYesYes
cancel_scheduledCancel a scheduled post, converting it to a draft. The post is kept in Octopost but will NOT be published at the scheduled time. Give it a new time later with reschedule_post. To publish it right away instead, call publish_draft.NoNoYesNo
create_postCreate and publish a post to one or more social media platforms immediately. Octopost handles formatting, auth and uploads. Which networks work today is in the server instructions (and get_guide topic "platforms"). PLATFORM CONTENT LIMITS (checked before anything is published: if the text or any segment is too long for one of the networks, the call fails with the count and nothing goes out): - Twitter/X: 280 chars (URLs count as 23 chars). Can't mix video with images. - Bluesky: 300 graphemes. Octopost auto-generates link facets. - LinkedIn: 3,000 chars. - Threads: 500 chars. - Mastodon: ~500 chars (varies by server; checked when publishing). TIPS: - If a platform fails, the post still succeeds on other platforms — check the response for per-platform results. - A slow publish (Threads with media can take minutes) answers after ~20 s with status "publishing" and carries on: check it with get_post. Pass an idempotency_key; if a call times out with no postId, retry with the same key (you get the original post, never a second). - Use cross_link_enabled + primary_platform to post to one platform first, then share the link on others. - Polls are supported on Twitter (2-4 options, 5 min to 7 day duration) and Mastodon. APPROVAL: if the account requires approval for every post (an owner setting), create_post saves the post as pending_approval instead of publishing and the result says so. Tell the user to approve it from the email Octopost sends; don't approve it yourself. To ask for a review yourself, use queue_post or schedule_post with needs_approval=true.NoNoNoYes
create_uploadAttach a file from your machine (screenshot, photo, video): this returns a one-time upload_url, good for 15 minutes and one file. Send the raw bytes to it, e.g. curl -T ./shot.png "<upload_url>" (PUT; no auth header needed). The response has media_url: pass it in media_urls (as the URL, or {url, alt} with alt text) on create_post / schedule_post / queue_post / update_post. Accepts JPEG, PNG, GIF, WebP, MP4, MOV, WebM (checked from the file's bytes). Size limit depends on the plan (max_bytes in the response). Files already on a public URL don't need this: pass the URL directly.NoNoNoNo
delete_postDelete a post from Octopost. For published posts, also attempts to delete from each platform via their APIs. Platform deletion support: - Twitter: Full API deletion supported. - Bluesky: Full API deletion supported (deleteRecord). - LinkedIn: Full API deletion supported. - Mastodon: Full API deletion supported. - Threads: API deletion not supported — returns the post URL so the user can delete manually. The post is ALWAYS removed from Octopost's database regardless of platform deletion results.YesNoYesYes
get_analyticsHow published posts did: likes, reposts, replies, quotes and (on X) views. Two modes: - With post_id: that post's numbers per network, plus snapshots taken about 1 hour, 24 hours and 7 days after it went live. - Without post_id: a summary of posts published between from and to (default: the last 30 days): totals per network and the top posts by engagement (likes + reposts + replies + quotes). Which networks report what: X gives likes, reposts, replies, quotes, bookmarks and views. Bluesky gives likes, reposts, replies and quotes. Mastodon gives likes (favourites), reposts (boosts) and replies. Threads and LinkedIn are not available yet. Octopost reads the numbers on its own for 30 days after a post goes live, so they can be a few hours old; each network's result says when it was read. Pass refresh: true to read fresh numbers first (allowed once every 10 minutes).NoYesYesYes
get_guideGet a comprehensive guide on using Octopost effectively. Returns platform limits, best practices, content tips, and feature documentation. Call this if you need help with: - What platforms are supported and their limits - How to format content for cross-platform posting - Media/image/video requirements per platform - Scheduling and content calendar tips - How threads work on supported platformsNoYesYesNo
get_postGet everything about one post: status, full text, thread segments, per-network variants, media (with alt text), queue status and position, which account posts on each network, per-network results with links, and the last error. Use it to check whether a post went out everywhere.NoYesYesNo
get_queue_statusSee your queue: how many posts are ready, how many need approval, when the next one publishes, and your queue settings.NoYesYesNo
get_usageHow much of the plan is used: X post units this month (used, limit, remaining, when it resets; a post with a link costs 13 units, a plain post 1), and connected accounts vs the plan's limit. A null limit means unlimited. Check it before a batch of X posts so you don't hit the cap part way.NoYesYesNo
list_accountsList all connected social media accounts. ALWAYS call this before create_post to see which platforms the user has connected. Returns each account's platform, handle, id, and whether it is the platform's default (used when a post names no account). A platform can have several accounts: pass "accounts" to create_post / queue_post / schedule_post to pick one. Only connected platforms can be posted to. Not every network is live yet: check the network status in the server instructions before promising a post.NoYesYesNo
list_feedsList the RSS/Atom feeds this account turns into posts: each feed's networks, template, mode ("hold" = every new item waits for a person to approve it, "queue" = new items join the posting queue), how often it is checked, when it was last checked, any error, and how many items it has seen and posted.NoYesYesNo
list_postsList posts, newest first: content preview, platforms, status, scheduled time and each network's link. Filter with status. Results are paged: when next_cursor is set, call again with cursor = next_cursor for the next page. Call get_post for one post's full details.NoYesYesNo
list_presetsList publishing presets: saved platform combinations (system presets plus the user's own) with their cross-link settings. The create tools take platforms, not a preset name, so pass a preset's `platforms` (and cross-link fields) to create_post / schedule_post / queue_post. Platforms Octopost doesn't support are left out of the list, and presets with none left are skipped.NoYesYesNo
list_youtube_commentsRead the comments on a YouTube video: each top-level comment with its author, text, likes, date, reply count and up to 5 replies, and by_you on comments the connected channel wrote. YouTube is in platform review: this only works for an account with a YouTube channel connected (list_accounts). Pass next_page_token back as page_token for more.NoYesYesYes
preview_postDry run: what would happen if you sent this post, without saving or posting anything. Returns ok (would it go out), problems (fix these first) and warnings, character counts per network and part the way each network counts (X: links 23, emoji/CJK 2; Bluesky: graphemes), X units it would use vs what's left this month, media checks per network (counts, video, missing alt text), which connected account each network would post as, and guardrails (this connection's daily limit, same text posted recently, blocked terms that would hold it for approval). Takes the same arguments as create_post. Call it before a create_post / schedule_post / queue_post you're unsure about.NoYesYesNo
publish_draftPublish a post that's already saved in Octopost right now: a draft, a scheduled post (it goes out now instead of at its time) or a queued post (it skips the queue). Uses the post's own text, networks, media and thread segments. Returns per-network results like create_post (or status "publishing" if slow; see get_post). Posts waiting for human approval (pending) can't be published this way; a person approves them first. For a post that already went out and failed on some networks, use retry_failed.NoNoNoYes
queue_postAdd a post to your publishing queue. It will be published automatically during your active hours. Posts require platforms to be specified. HUMAN APPROVAL: set needs_approval=true when a person should review the post first (anything the user hasn't seen word for word). The post is held as "pending" and nothing is published until a person approves it. Octopost emails the account owner and any approvers one-tap Approve / Reject / Edit links (batched, within about 5 minutes) and shows it in the dashboard. After queueing, tell the user: "It's waiting for your approval; check your email." You can't approve your own posts. The account owner can also set auto-approve rules, in which case the result says the post was auto-approved. The queue publishes posts in FIFO order (oldest first) at regular intervals during active hours (default: every 4 hours, 9am-8pm). Great for evergreen content and maintaining a regular posting cadence. Same platform limits and same options as create_post, which documents them in full.NoNoNoYes
reject_queued_postTake a queued post out of the queue and turn it back into a draft, with an optional note saying why (shown with the post). Nothing is published or deleted; edit it with update_post and queue it again, or delete it with delete_post. A post waiting for approval (pending) is for a person to approve or reject, so this refuses it; to withdraw a post you made, delete it.NoNoNoNo
remove_feedStop turning a feed into posts and forget which items it has seen. Posts the feed already made (published, queued or waiting for approval) are kept; delete those separately with delete_post if needed. Get the feed id from list_feeds.YesNoYesNo
reorder_queueSet the order queued posts publish in. The posts you list go first, in that order; queued posts you leave out keep their current order after them. Pending-approval posts can be listed too: their place applies once approved. Call list_posts with status "queued" to see the queue.NoNoYesYes
reply_to_youtube_commentPost a public reply to a YouTube comment as the connected channel; it goes live right away. Get comment_id from list_youtube_comments. YouTube is in platform review: this only works for an account with a YouTube channel connected (list_accounts). Show the user the reply before posting it. Refused when the account holds agent posts for approval or the text has a blocked term.NoNoNoYes
reschedule_postChange the scheduled time of a post. The new time must be in the future. Works on both scheduled posts and drafts (effectively scheduling a draft). The post will be published at the new time by Octopost's scheduler (checks every 60 seconds).NoNoYesYes
retry_failedRetry publishing to platforms that failed on a previous post. Only retries platforms that had errors — already-successful platforms are not re-published. Call get_post first to see which platforms failed and why. You can retry all failed platforms or specify specific ones. Common failure reasons: expired tokens (user needs to re-connect), rate limits (wait and retry), network errors (usually transient).NoNoNoYes
schedule_postSchedule a post for future publishing. The Octopost scheduler will publish it at the specified time automatically. The post is saved as a draft until the scheduled time, then published to all specified platforms. Same platform limits and same options as create_post, which documents them in full. Options are saved with the post and applied when it publishes. Set needs_approval=true to hold it for a person to approve first (same flow as queue_post).NoNoNoYes
set_evergreenMark a post evergreen (or not). When the posting queue runs empty, Octopost posts an evergreen post again in the empty queue slot, picking the one that has rested longest. The same post goes out at most once every 30 days, and never while the same text is on (or going to) the same network within those 30 days, so X's rule against repeating a recent post is respected. A draft or scheduled post can be marked now and becomes eligible once it has been published. Only works while the queue is on (update_queue_settings).NoNoYesYes
split_threadSplit long text into thread parts that fit every network you name, breaking at paragraphs, then sentences, then words. Counts the way each network does (X: links are 23, emoji 2; Bluesky: graphemes). Nothing is saved or posted. Pass the result straight to create_post / schedule_post / queue_post as content + segments.NoYesYesNo
update_postUpdate a post's content, platforms, scheduled time, attached media, or thread reply segments. Only works on unpublished posts (drafts, scheduled, queued, and pending). Any field you omit is preserved as-is. Pass `media_urls: []` to clear all attached media; pass new media_urls or video_url to replace it. For already-published posts, you'll need to delete and re-create.YesNoYesYes
update_queue_settingsChange your queue settings: how often to post, active hours, timezone, or pause/resume the queue. Defaults: publish every 4 hours, active 9am-8pm, timezone America/New_York. The queue only publishes during active hours. The exact minute within each interval is randomized so posts look natural.NoNoYesYes

Details

Registry status
Active
Published
Oct 9, 2026
Updated
Oct 9, 2026
Repository
Not given
Categories (suggested)
Data and analyticsFiles and storageDesign and mediaSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
GDPR
Not declared

Are you the operator? Claim this listing