An AI agent (Claude, ChatGPT, Claude Code, Cursor or your own) can reach X through X's own API, X's own MCP server, or the API or MCP server of a tool that posts for you: Typefully, Buffer, Postiz or Flaghand. They differ in what the agent can do and, above all, in whether a person sees the post before it goes live.
Checked on October 25, 2026, from each product's own pages, linked under Sources. Prices and features change, so check those pages before you choose.
The short answer
- X's API, used directly, charges per call without another scheduler's subscription. You build the rest. The agent's token posts the moment it calls. There are no drafts, no scheduling and no approval unless you build them.
- X's MCP server at
api.x.com/mcpsearches and reads X, manages bookmarks and publishes Articles. Its page lists no tool that creates a post. X's open-source xmcp, which you run yourself, does. - Typefully, Buffer and Postiz give the agent drafts, a queue, threads and media on many networks, and Typefully and Buffer have free plans. The credential you give the agent can publish, unless you set it up as a separate user without publish rights (Typefully Business, Buffer Team).
- Flaghand is for an agent that writes your posts while nothing goes out until you approve the exact post with your passkey. No agent credential can publish, on any plan.
What the agent can do
| Drafts | Schedule | Post at once | Threads | Media | |
|---|---|---|---|---|---|
| X API | No | No | Yes | Reply to each part in turn | Up to 4 photos, 1 GIF or 1 video |
| X MCP, hosted | Articles only | No | Articles only | No | Not listed |
| xmcp, self-hosted | No | No | Yes | Reply to each part in turn | Upload tools |
| Typefully | Yes | Yes | Yes | Yes | Yes |
| Buffer | Yes | Yes | Yes | Yes | Yes |
| Postiz | Yes | Yes | Yes | Yes, media on every part | Yes |
| Flaghand | Yes | Proposes a time; you approve it | No | Yes, one draft | Up to 4 per post, with alt text |
Who decides, how it signs in, what it costs
| A person approves before it posts? | How the agent signs in | Public price | |
|---|---|---|---|
| X API | No | Your own X developer app, then OAuth for the account | Pay per use: $0.015 a post, $0.200 with a link |
| X MCP, hosted | No | X's xurl bridge with your own X app's keys |
Pay per use, on your app |
| xmcp, self-hosted | No | Your own X app's keys, in your .env |
Pay per use, on your app |
| Typefully | Only if the agent's user can't publish (Business plan) | OAuth or API key; the key has its creator's access | Free; Creator $99 a year; Business from $18 a month per social set, billed yearly |
| Buffer | Only for a Needs Approval member (Team plan) | OAuth or API key; reaches your whole account | Free; Essentials from $6, Team from $12 a month per channel |
| Postiz | No: approval is a conversation, not a state | API key, in a header or the URL, or OAuth token | $29 to $99 a month; 7-day trial; open source to self-host |
| Flaghand | Always, by the owner's passkey | OAuth (Claude, ChatGPT) or a draft-only API token | Early access; sign-up isn't open yet |
X's API, used directly
An agent posts with POST /2/tweets using a user token: OAuth 2.0 with the tweet.write scope (plus tweet.read and
users.read) or OAuth 1.0a. The post goes live at once. A thread is several calls, each a reply to the post before
it. Media is uploaded first (media.write), then attached: up to 4 photos, 1 animated GIF or 1 video.
X's API reference has no draft or schedule call for posts (Articles have drafts). Scheduled posts live in X's separate Ads API, for ads accounts. Nothing asks a person first: whoever holds the token can post.
You need your own developer app, and each account authorizes it. X bills pay per use from credits you buy: $0.015 a post and $0.200 for a post with a link, $0.005 to add alt text.
Where it's better: no added scheduler subscription, every feature X's API has (polls, reply settings, Communities, search, analytics), and no other company holding your account's token. For light use, a competitor's free plan can cost less than paying X directly.
X's MCP server
X hosts an MCP server at https://api.x.com/mcp. Its page lists what the model can do: fetch posts and who liked,
reposted or quoted them, search posts, users and news, read timelines and mentions, manage bookmarks, get trends, and
"create draft Articles and publish them". It lists no tool that creates a post, and the OAuth scopes the server lists
don't include tweet.write, which X's create-post endpoint requires.
To sign in as you, you run X's xurl mcp bridge on your machine with your own X app's client ID and secret; it logs in
once in your browser and refreshes the token. An app-only bearer token works without the bridge, for reads only. X's
troubleshooting table has you move the app to pay per use.
X's open-source xmcp, which you run yourself in Python, turns X's API into
tools, including createPosts, media upload and deletePosts. X_API_TOOL_ALLOWLIST chooses which tools load. Like
the API, it posts at once. Your MCP client may ask you before a tool runs; X doesn't.
Where it's better: far more reading than any tool here: full-archive search, timelines, trends, news and bookmarks, for an agent that researches before it writes.
Typefully
Typefully's API and MCP server (https://mcp.typefully.com/mcp, OAuth or API key) create drafts and threads, upload
media, schedule, and publish: "publish_at": "now" publishes at once. There's an Agent Skill for coding agents, and
webhooks.
API keys "inherit the same permissions as the user who created them". Creating a draft needs write access; scheduling
or publishing needs publish access. Free and Creator have one user, so the agent's key can publish. On Business, a key
made by a separate Write-role user can't. plan_at puts a draft on the calendar, where it "never auto-publishes until
confirmed".
Where it's better: a free plan with the API and MCP (10 posts a month, 1 social set), X, LinkedIn, Threads, Bluesky, Mastodon and Substack, X analytics and AI writing. More in Flaghand vs Typefully.
Buffer
Buffer's MCP server (https://mcp.buffer.com/mcp, OAuth) has create_post, which "schedules or publishes a post":
to the queue, at a set time, next, or now (shareNow), or as a draft. X threads go in metadata.twitter.thread, and
each part can carry media. The API key "acts on behalf of your account only" and reaches every organization and channel
in it. Buffer's own advice is to "leave the approval prompts on": your AI app's prompts are the check.
On the Team plan, posts by a Needs Approval member "will always be saved as drafts awaiting approval", including through the API and the MCP server. The account owner or a Full Access member approves them into the queue. Connect the agent as that member and Buffer's server holds its posts for you.
Where it's better: a free plan with the API (3 channels, 10 scheduled posts per channel, 3,000 requests a month), far more networks (Instagram, Facebook, TikTok, YouTube, Pinterest and more), and a team approval role on Team.
Postiz
Postiz's MCP server (https://mcp.postiz.com/mcp) has 13 tools; schedulePostTool schedules, drafts or publishes at
once. The API takes type now, schedule or draft. X threads carry images on every part. It signs in with an API
key, as a bearer token or in the URL, or with an OAuth token that doesn't expire.
Postiz's preview links collect comments, but in its own words "approval is a conversation, not a state: there is no 'approved' flag that blocks publishing".
Where it's better: open source (AGPL-3.0) to self-host without plan limits, 34 platforms, AI images and video, and unlimited posts on every paid plan. More in Flaghand vs Postiz.
Flaghand
An agent drafts X posts and threads (a thread is one draft, up to 25 posts), uploads images and video with alt text,
checks each draft and proposes a time. One call, POST …/posts, drafts, checks and requests approval for a whole
plan. Agents connect to Flaghand's MCP server at /mcp by OAuth (Claude, ChatGPT) or with a workspace API token.
No token scope can approve, schedule or post, on any plan. Those routes refuse every token and accept only an owner of
the workspace, signed in with a passkey. Apps that connect by OAuth get a draft-only token: read, drafts, media
and request-approval.
Approving freezes each post into a snapshot (the account, the time, the text, every media file and its alt text, and the exact request), hashed with SHA-256 and signed with your passkey. Any change needs a new approval, and the scheduler checks the signed snapshot again right before posting. Afterwards Flaghand reads each X post back and compares it with what you approved: normalized text, author, hidden reply mentions, media count, available alt text, reply chain and quote. It doesn't verify link destinations or the media files themselves. Flaghand prepays X's API, so you don't buy X credits.
Where it does less: X and LinkedIn personal profiles only, no free plan, no AI writing of its own (your agent writes), and it's in early access: sign-up isn't open yet. An agent can't post anything urgent without you.
Which to pick
- Your agent researches X (search, trends, bookmarks): X's MCP server.
- You're building your own product and want every X feature at cost: X's API.
- You want many networks and a writer's tools, and you're happy for the agent to publish: Typefully, Buffer or Postiz. Typefully and Buffer also offer free plans; Postiz's hosted plans are paid.
- Your agent writes the posts and you want the server to refuse anything you haven't approved: Flaghand, or a Needs Approval member on Buffer Team.
How to let an AI agent post on social media safely has nine checks to run on any of these. Flaghand's agent documentation covers its API and MCP server. Get access to Flaghand.
Sources
All read on October 25, 2026.
- X: MCP servers, create post, pricing, xmcp
- Typefully: pricing, API reference, AI agents
- Buffer: pricing, MCP server, API keys, approvals
- Postiz: pricing, MCP, approvals, plans