If you want Claude, ChatGPT, a script or an n8n workflow to put posts on your calendar, you need a scheduler that takes requests from software. I read the developer pages of eight schedulers, and all eight now have an MCP server in some form. MCP (Model Context Protocol) is the standard way for an AI assistant to call tools in another app, so it doesn't help you choose between them.
Three things narrow it down.
- The plan you need.
- How far you can limit what an agent holds.
- Whether a post an agent writes waits for a reviewer before it goes live.
The last one decides whether you can let an assistant write for your brand at all, so it's the one I'd ask about first.
I build Orbitwrite, so I have a stake in this. I've quoted each vendor's own page, marked the gaps, and held Orbitwrite to the same standard.
The roundup
I read these pages between 19 October and 8 November 2026. Prices and plan rules change often, so check the page before you buy. Where a page said nothing, the cell says that.
| Tool | API | MCP server | How an agent signs in | Plan |
|---|---|---|---|---|
| Social Champ | REST API for publishing. Analytics, inbox and workspace management are not in it | Yes, 41 tools at mcp.socialchamp.com | OAuth2 tokens for apps, static keys for scripts | Keys are on the Agency plan, up to 10 active keys. 60 requests a minute per key and 1,000 an hour per account |
| SocialPilot | Not covered on the page I read | Yes, aimed at agencies and client groups | SocialPilot credentials, or an API key for custom agents | Not stated |
| bundle.social | REST API, typed SDK and CLI | Yes | An API key in an environment variable | Not stated on the page. 14-day trial |
| PostEverywhere | REST API and webhooks | Yes, hosted | Sign-in for Claude and ChatGPT, API key for other clients | Every plan, from $9 a month |
| Postiz | Public API | Yes. Postiz Cloud has a Claude connector, and a self-hosted install can relay through it | API key, or an OAuth2 token for apps | Create-post limit of 90 requests an hour (100 on the cloud) |
| Publer | Not covered on the page I read | Yes | OAuth sign-in for Claude and ChatGPT | Business and Enterprise plans |
| TryPost | REST API | Yes, 31 tools | Setup steps aren't on the page | Socials at $19 a month (one workspace) and Workspaces at $99 (unlimited), both with API and MCP |
| Orbitwrite | Yes, with keys scoped to what each one needs | Yes, hosted at mcp.orbitwrite.com | Sign-in for Claude and ChatGPT, API key for other clients | Every plan, from $15 a month |
PostEverywhere's page is a roundup PostEverywhere wrote, and it says so, so the claims about its own plans are the vendor's word. Postiz's API docs don't mention MCP, so that cell comes from its release notes.
What to check once it has an MCP server
- Which plan is it on? Social Champ keeps keys on its Agency plan and Publer keeps its MCP server on Business and Enterprise. PostEverywhere puts both on every plan, and both of TryPost's plans include them. Read the pricing page, since a feature page often leaves the plan out.
- Does an agent's post wait for a reviewer? PostEverywhere's help page says a post made with an API key skips approval by default, and an agent sends one for review by saving it as a draft with
request_approval: true. Itsapprove_posttool works only on a connection or key an owner or admin made. SocialPilot describes an agent saving drafts for team or client approval. For the others, ask before an agent writes anything in your name. - Can a key be limited? An agent that reads your calendar has no reason to hold the right to publish. Ask whether a key can be held to reading, or to drafting without publishing.
- How does an assistant sign in? A hosted server with a sign-in screen is a URL you paste. A key in a config file is fine for a script, and for a teammate connecting Claude it's one more secret someone has to rotate. A self-hosted connector like Postiz's is also software you keep updated.
- What are the rate limits, and what do they count? Social Champ allows 60 requests a minute per key and 1,000 an hour across the account, and Postiz caps post creation at 90 an hour (100 on its cloud). If a vendor doesn't publish its limits, ask before you build a pipeline on it.
How Orbitwrite answers them
The API, MCP server, CLI and SDK are on every plan, starting with Standard at $15 a month (see the pricing page). A key carries only the permissions you give it, and the MCP server shows an agent only the tools those permissions allow, so a read-only key never sees a publishing tool.
Orbitwrite checks the same publish permission whether a person, an API key or a connected assistant makes the post. Callers allowed to write posts and not to publish them can still draft and schedule. Each post they schedule waits for an approval, and a request to publish now has to carry one, then goes out once a reviewer approves it. Connected assistants are limited to the role of the person who connected them, and one given read access can't write posts at all. None of them can manage API keys, billing or members, and you can cut one off from Settings, MCP, under Connected apps. Approvals are on the Advanced plan.
Each route below runs the same request. It drafts a post, scores it and schedules it for 9am tomorrow on two channels.
From Claude or ChatGPT
Connect the assistant with https://mcp.orbitwrite.com/mcp and sign in. Then ask for it in a sentence:
Draft a post announcing our autumn menu for LinkedIn and Bluesky, check its score, fix anything that scores badly, and schedule it for tomorrow at 9am.
The assistant writes the draft, runs it through score_content before saving anything, and calls create_post with the time, which Orbitwrite reads in your workspace's timezone. The five prompts post covers what else it can do once connected.
From the terminal
The CLI scores the text first and then schedules it. orbitwrite channels lists the channel ids.
orbitwrite score --text "Autumn menu is up. Pumpkin loaf from Saturday." -c acc_1 -c acc_2
orbitwrite post "Autumn menu is up. Pumpkin loaf from Saturday." -c acc_1 -c acc_2 --at "tomorrow 9am"
--at takes plain English and reads it in the workspace's timezone. The CLI prints the time it settled on, so you can catch a misread before the post goes out.
From code
The SDK has the same two steps.
import { Orbitwrite } from "@orbitwrite/sdk";
const orbit = new Orbitwrite({ apiKey: process.env.ORBITWRITE_API_KEY });
const content = "Autumn menu is up. Pumpkin loaf from Saturday.";
const channels = ["acc_1", "acc_2"];
const score = await orbit.posts.scoreContent({ channels, content });
if (score.grade === "needs_work") {
for (const channel of score.channels) {
for (const check of channel.checks) {
if (check.status === "fail") console.log(`${channel.platform}: ${check.summary}`);
}
}
process.exit(1);
}
const tomorrowAt9 = new Date();
tomorrowAt9.setDate(tomorrowAt9.getDate() + 1);
tomorrowAt9.setHours(9, 0, 0, 0);
await orbit.posts.create({ channels, content, scheduledAt: tomorrowAt9 });
scoreContent returns a grade plus a checklist for each channel, and the script stops on needs_work and prints what failed. The SDK takes an instant, so the script works out 9am tomorrow in the timezone of the machine running it. Each route ends with an ordinary post on the calendar, and your team can open and edit it there. If the caller can't publish, it waits for approval like a teammate's post would.
Where Orbitwrite falls short
There's no free plan, so the 10-day trial is the only free way to point an agent at your own workspace. Approvals need the Advanced plan, which is $179 a month. Connecting a channel also stays a browser step, so an agent can't add a new network for you.
If an agent writing for your brand is the plan, start with the review question. For Orbitwrite, the MCP page has the connection details for Claude, ChatGPT and the clients that take a key.
