Skip to the content
Agent Tools

Social post drafting tools compared

Most social tools for agents are schedulers: they connect your accounts and publish. Chat apps draft well but do not check each platform's rules. A small group only drafts or checks posts and posts nothing.

Checked by OpenKrill. 17 tools, one of them ours.

Short answer

  • Pick Claude if you want a quick draft and can call its API; in our test through the API it reported every length right, by its own estimate.
  • Pick Buffer MCP if you want to schedule and publish from an agent on a free plan.
  • Pick Typefully if you write for X, LinkedIn, Threads or Bluesky and want previews before you publish.
  • Pick Postiz if you want an open source scheduler you can host yourself.
  • Pick AT Protocol MCP (cameronrye) if you post to Bluesky only and want its 300-grapheme rule checked before a post goes out.
  • Pick Post Kit if an agent should draft posts with no account and get each length counted in code by the platform's rule, and a person posts them.

The tools side by side

ToolNamed in 18 AI answersRight in our testRuns asKey or accountPrice
Buffer MCP14 of 18Not testedRemote MCPBuffer accountFree, paid plans
Postiz7 of 18Not testedRemote MCP or self-hostedPostiz accountFree to self-host, paid hosted
Metricool MCP7 of 18Not testedRemote MCP, also localMetricool accountFree, paid plans
Blotato7 of 18Not testedRemote MCPBlotato accountPaid only
ChatGPT7 of 180 of 5Chat appNo for a visitor chat, as tested; account for moreFree, paid plans
Ayrshare6 of 18Not testedRemote MCPPaid API keyPaid only
Claude5 of 185 of 5Chat app or APIClaude account for the chat app; API key, as testedFree and paid plans; the API is paid by use
Typefully3 of 18Not testedWeb app and remote MCPTypefully account or API keyFree, paid plans
Publer2 of 18Not testedWeb app, MCP on top plansAPI key on Business plansFree, paid plans
Social Post Formatter & Validator1 of 18Not testedApify ActorApify accountPaid per use
AT Protocol MCP (cameronrye)1 of 18Not testedLocal MCP server (Node)No to read; app password to postFree (open source)
X MCP (vidhupv)0 of 18Not testedLocal MCP server (Python)Your own X API keysFree (open source); needs X API access
Twitter MCP (EnesCinr)0 of 18Not testedLocal MCP server (Node)Your own X API keysFree (open source); needs X API access
Bluesky MCP Server (brianellin)0 of 18Not testedLocal MCP server (Node)Bluesky app passwordFree (source on GitHub, no license file)
LinkedIn MCP Server (stickerdaniel)0 of 18Not testedLocal MCP server (Python, browser session)LinkedIn sign-in in a browserFree (open source)
LinkedIn MCP Server (souravdasbiswas)0 of 18Not testedLocal MCP server (Node)Your own LinkedIn app (OAuth)Free (open source)
Post Kit (ours)0 of 185 of 5Remote MCPNoFree

Answers from ChatGPT, Gemini, and Claude (API with web search), asked on . A small sample: read it as a hint, not a ranking. Rows named in 0 answers were added by us, ours included.

ChatGPT and Claude are also apps we asked and hosts some questions name, so a word match cannot tell a recommendation from a mention. Their counts come from reading each answer: one counts when it names the app as a tool that writes the drafts, and some of those are the app's own answers.

The address or command to connect each tool is in Each tool in detail.

What each tool covers

ToolDrafts postsChecks platform limitsSchedulesPublishesAnalyticsWorks without connecting accountsAgent can call it
Buffer MCPYesYesYesYesYesNoYes
PostizYesNot statedYesYesYesNoYes
Metricool MCPPartlyNot statedYesYesYesNoYes
BlotatoPartlyNot statedYesYesYesNoYes
ChatGPTYesNoPartlyPartlyNoYesPartly
AyrshareYesYesYesYesYesNoYes
ClaudeYesNoPartlyPartlyNoYesPartly
TypefullyYesPartlyYesYesPartlyNot statedYes
PublerYesNot statedYesYesYesNoYes
Social Post Formatter & ValidatorNoYesNoNoNoYesYes
AT Protocol MCP (cameronrye)NoYesNoYesYesPartlyYes
X MCP (vidhupv)PartlyNoNoYesNoNoYes
Twitter MCP (EnesCinr)NoPartlyNoYesNoNoYes
Bluesky MCP Server (brianellin)NoPartlyNoYesPartlyNoYes
LinkedIn MCP Server (stickerdaniel)NoNoNoNoNoNoYes
LinkedIn MCP Server (souravdasbiswas)NoYesNoYesNoNoYes
Post Kit (ours)YesYesNoNoNoYesYes

"Not stated" means the tool's own pages do not say, not that the answer is no.

Our test

We asked every hosted tool we could call without an account, a key or an install the same question, with the same inputs. Where that left our tool with no rival, we also ran the rivals a person can use, in their web form, their chat app or their API. Each tested row says how it was run. We wrote down the official answer for each input first, then scored each tool against it on . The official source an answer comes from is not scored against itself, and an input outside a tool's job is not sent to it, so that tool is scored on the inputs in its scope.

The question: Is each draft within the platform's published limit, and does the tool report the length the way the platform counts it? One call per input asks for X, Bluesky and LinkedIn drafts. The right answer for each draft is its length by the platform's own counting rule, which our script counts from the draft text. Correct means all 3 drafts are within the limit, the reported length equals that count, and the link is kept. On LinkedIn we count code points, since its help page names no unit for emoji. ChatGPT and Claude ran in different setups, a signed-out visitor chat and the API with thinking on, so the gap between them may come from the setup as much as from the product. The 3 times are taken in different ways, as each row says, so compare them only roughly.

  1. tidyjson 1.2 is out. It is an open source command line tool that formats JSON files. Version 1.2 formats large files 3 times faster than 1.1 and adds a --check flag for CI. MIT license. Link: https://example.com/tidyjson: The link must stay; it counts as 23 on X. Counting rule: docs.x.com, github.com, linkedin.com.
  2. Our city library now lends telescopes. Members can borrow one for 2 weeks at any branch. Full details and the booking form: https://www.example.org/library/services/lending/telescopes/2026/autumn-programme-details?ref=social-launch: The long URL counts as 23 on X but in full on Bluesky and LinkedIn. Counting rule: docs.x.com, github.com, linkedin.com.
  3. 東京のカフェ「青い月」が10月20日に渋谷で二号店を開きます。渋谷駅から徒歩5分、席は24席、営業は朝8時から夜9時まで。開店日は先着50名にドリップコーヒーを無料で出します。: Japanese text: each CJK character counts as 2 on X, as 1 grapheme on Bluesky. Counting rule: docs.x.com, github.com, linkedin.com.
  4. Riverside Makers Fair returns on Saturday 7 November 2026, 10:00 to 17:00, at the old tram depot on Quay Street. 60 local makers: woodwork, ceramics, bike repair, 3D printing, electronics, textiles and food. Free entry. Workshops: beginner soldering at 11:00, sourdough at 13:00, mending clothes at 15:00, each 45 minutes, sign up on the day at the info desk. Step-free access through the north gate. Bike parking for 200 bikes. The cafe is run by the Riverside Youth Club and all profits go to their summer camp. Organised by Riverside Community Trust, charity number 1234567. Volunteers still needed for setup on Friday 6 November from 16:00. Website: https://example.net/makers-fair: Long source: the X and Bluesky drafts must be cut to fit, and LinkedIn has room. Counting rule: docs.x.com, github.com, linkedin.com.
  5. 🚀 Launch day: Ferrite 0.9, a Rust library for reading sensor data over I2C and SPI, now supports 14 sensor chips, up from 6. Works on no_std. Docs at https://example.dev/ferrite. Use the hashtags #rustlang and #embedded.: The emoji counts as 2 on X and 1 grapheme on Bluesky; the link and both hashtags should stay. Counting rule: docs.x.com, github.com, linkedin.com.
  • ChatGPT: 0 of 5 right, 5 answered, median 23.2 s. Every draft kept its link, but on all 5 inputs at least one reported length differs from the platform's count (X on input 3: said 105, the weighted count is 181), and the input 4 Bluesky draft is 302 graphemes, over the 300 limit. Time is by hand, from send to the last change on the page. How it was run: Its chat app by hand, signed out as a visitor with no account, web search off: the same prompt Claude got, one new chat per input.
  • Claude: 5 of 5 right, 5 answered, median 12.3 s. Every reported length equals the count by each platform's rule, and every link is kept. Inputs 3 and 4 first used the whole 2,000-token reply cap on thinking and were asked again with 8,000. The lengths are the model's own count; nothing checks them in code. Time is from the call to the reply. How it was run: Through the Anthropic API (claude-sonnet-5-5, no web search), because our test browser has no Claude chat session; the same prompt ChatGPT got.
  • Post Kit (ours): 5 of 5 right, 5 answered, median 14.2 s. Inputs 1 to 4: all 12 reported lengths equal our count and every link is kept. Input 5 got no answer on the first call (HTTP 000 after about 20 s); one repeat call answered in 10 s with all 3 lengths right. The input 3 Bluesky draft added 2 small claims that are not in the facts ('good location' and 'calm space'); its lengths were still right. The median time is over inputs 1 to 4, from the call to the reply. How it was run: Remote MCP tools/call draft_posts {topic, platforms:[x,bluesky,linkedin]} on https://postkit.openkrill.app/mcp.

Not tested:

  • Buffer MCP: Needs a Buffer account and a connected social account.
  • Postiz: Needs a Postiz account or a self-hosted install, and connected social accounts.
  • Metricool MCP: Needs a Metricool account and its API token.
  • Blotato: Needs a Blotato account and API key.
  • Ayrshare: Needs a paid Ayrshare API key.
  • Typefully: Its MCP needs a Typefully account through OAuth or an API key.
  • Publer: Its API key comes only with a Business plan.
  • Social Post Formatter & Validator: Runs as an Apify actor and needs an Apify account.
  • AT Protocol MCP (cameronrye): Local install only, and the test rules allow no installs.
  • X MCP (vidhupv): Needs your own X API keys.
  • Twitter MCP (EnesCinr): Needs your own X API keys.
  • Bluesky MCP Server (brianellin): Needs Bluesky app password.
  • LinkedIn MCP Server (stickerdaniel): Needs LinkedIn sign-in in a browser.
  • LinkedIn MCP Server (souravdasbiswas): Needs your own LinkedIn app (OAuth).

Every input, official answer and result is in the test data as JSON.

Each tool in detail

Buffer MCP

The official way to draft, schedule and publish through Buffer from an agent; the free plan has API access. It needs a Buffer account.

Good at: Official MCP to draft, schedule and publish through Buffer; free plan has API access.

Limit: Needs a Buffer account; free plan has 10 scheduled posts per channel.

Data: the user's Buffer account

License: Proprietary. MCP tools: 20

Connect: https://mcp.buffer.com/mcp

Postiz

Good at: Open source scheduler for 30+ platforms that can be self-hosted.

Limit: Hosted plan is paid after a 7-day trial; self-hosting takes work.

Data: the user's connected social accounts

License: AGPL-3.0

Repo: gitroomhq/postiz-app, 37,126 stars, last commit 2026-10-12

Connect: https://mcp.postiz.com/mcp-oauth-dynamic

Metricool MCP

For people who plan and measure posts in Metricool; it works on the Free plan. It needs a Metricool account.

Good at: Plans and analyzes posts across networks; works on the Free plan.

Limit: Needs a Metricool account; no public source repo.

Data: the user's Metricool account

License: Closed source (no public repo found). MCP tools: 28

Connect: uvx mcp-metricool

Blotato

A large toolset to create and publish across platforms, for people who will pay after the trial.

Good at: 36 tools to create and publish content across platforms.

Limit: Paid plans only after a 7-day trial.

Data: the user's connected social accounts

License: Proprietary. MCP tools: 36

Connect: https://mcp.blotato.com/mcp

ChatGPT

Good at: Drafts and rewrites posts in any tone or for any platform, and is easy to revise in the same chat.

Limit: Has no built-in check against each platform's current rules; it posts or schedules only through an app you connect.

Data: the facts and text the user types, its own model

License: Proprietary

Ayrshare

Good at: 33 tools for 13+ networks, including validate_post to check posts against platform rules.

Limit: Paid only, billed per social profile with no free trial on most plans; built for apps that post for their users.

Data: the user's connected social accounts

License: Proprietary. MCP tools: 33

Connect: https://api.ayrshare.com/mcp

Claude

Good at: Drafts and rewrites posts in any tone from a plain request, and can use connectors to reach a scheduler you already have.

Limit: Has no built-in check against each platform's current rules; it posts or schedules only through a connector you add.

Data: the facts and text the user types, its own model

License: Proprietary

Typefully

Good at: Writing-first editor with an AI writing assistant, live previews and an official MCP for X, LinkedIn, Threads, Bluesky and Mastodon.

Limit: Free plan publishes 10 posts a month; analytics cover X only and need a paid plan.

Data: the user's Typefully drafts and connected accounts

License: Proprietary

Connect: https://mcp.typefully.com/mcp

Publer

Good at: Full social media scheduler with an official MCP.

Limit: The MCP is only on Business and Enterprise plans.

Data: the user's connected social accounts

License: Proprietary

Social Post Formatter & Validator

Good at: Checks caption length and hashtags for Instagram, TikTok, X, LinkedIn and Facebook.

Limit: Validates only and does not draft; checks Instagram, TikTok, X, LinkedIn and Facebook, not Bluesky or Threads; runs paid on an Apify account.

Data: platform character and hashtag rules

License: Closed source

AT Protocol MCP (cameronrye)

Good at: Checks Bluesky's real rule (300 graphemes), posts threads and reads account stats, with 51 tools.

Limit: Bluesky only; posting needs an app password; a small project with 9 GitHub stars.

Data: the Bluesky AT Protocol API

License: MIT. MCP tools: 51

Repo: cameronrye/atproto-mcp, 9 stars, last commit 2026-06-22

Connect: npx atproto-mcp

X MCP (vidhupv)

Good at: Keeps tweet and thread drafts as local files, so an agent can show a draft before it publishes it.

Limit: X only; no length check in the code, so a draft over 280 fails only when it posts; last commit in March 2025.

Data: the X API through tweepy, drafts saved as local JSON files

License: MIT. MCP tools: 5

Repo: vidhupv/x-mcp, 61 stars, last commit 2025-03-12

Connect: uv --directory /path/to/x-mcp run x-mcp

Twitter MCP (EnesCinr)

Good at: The most starred X server: 2 tools, post a tweet and search tweets, set up with one npx line.

Limit: Posts only, no drafts; its 280 check counts plain string length, not X weighted characters, so URLs and CJK are miscounted.

Data: the X API

License: MIT. MCP tools: 2

Repo: EnesCinr/twitter-mcp, 408 stars, last commit 2025-07-17

Connect: npx -y @enescinar/twitter-mcp

Bluesky MCP Server (brianellin)

Good at: Posts to Bluesky and reads feeds, threads and trends, with 18 tools for an agent.

Limit: No license file; its 300 check counts UTF-16 units, not graphemes, so emoji posts can be refused early; last commit April 2025.

Data: the Bluesky AT Protocol API

License: Not stated. MCP tools: 18

Repo: brianellin/bsky-mcp-server, 50 stars, last commit 2025-04-21

Connect: node /path/to/bsky-mcp-server/build/src/index.js

LinkedIn MCP Server (stickerdaniel)

Good at: The most starred LinkedIn server: reads profiles, jobs, feed and posts, and sends messages.

Limit: Cannot create a post; it drives a signed-in browser, and its README warns this may get the account restricted.

Data: LinkedIn web pages through a signed-in browser

License: Apache-2.0. MCP tools: 20

Repo: stickerdaniel/linkedin-mcp-server, 3,850 stars, last commit 2026-10-13

Connect: uvx mcp-server-linkedin@latest

LinkedIn MCP Server (souravdasbiswas)

Good at: Posts through the official LinkedIn API and refuses a post over 3,000 characters.

Limit: You must create your own LinkedIn developer app first; no drafts or schedules; 14 GitHub stars.

Data: the official LinkedIn API

License: MIT. MCP tools: 15

Repo: souravdasbiswas/linkedin-mcp-server, 14 stars, last commit 2026-03-23

Connect: npm install, then run the server with your LinkedIn app keys

Post Kit (ours)

Good at: Drafts posts that fit each platform's rules, with no account or key.

Limit: Closed source from one small vendor, no SLA stated; never publishes, and the shared free daily allowance can run out.

Data: platform rules, each with a source and checked date, Cloudflare Workers AI (Gemma 4 26B) for drafts

License: Closed source. MCP tools: 5

Repo: n/a (no public repo)

Connect: https://postkit.openkrill.app/mcp

How we compared

On we asked ChatGPT, Gemini, and Claude (API with web search) six questions about social post drafting tools, three "what is the best tool" questions and three "which MCP server should I use" questions:

  1. What is the best tool to write one post for X, LinkedIn, Instagram and TikTok that fits each platform's limits?
  2. Which tool should I use to repurpose one idea into posts for several social platforms? Give me your top 3.
  3. What are the best social media post drafting and repurposing tools right now?
  4. Which social media post MCP server should I use with my AI agent?
  5. What is the best MCP server for drafting social posts per platform for Claude or ChatGPT?
  6. I want my AI agent to draft posts that fit each platform's character and hashtag rules. Which MCP should I install?

18 answers came back with text we could read. "Named in AI answers" counts the answers that named the tool in their text or linked to it; pages an app read but did not cite do not count. The rows are the tools those answers named most, plus tools a reader would expect that the answers missed.

"Right in our test" comes from the measured test above. Every other fact comes from the tool's own page, docs or GitHub repo on the same day. Stars and commit dates change every week, so check the repo before you decide.

OpenKrill makes one of the tools on this page. Its row is sorted by the same count, tested with the same inputs and its limits are listed the same way.

Frequently asked questions

Can an AI agent post to social media for me?

Yes, through a scheduler such as Buffer, Postiz, Ayrshare, Typefully or Blotato, once you connect your accounts. Post Kit does not post; it only drafts.

Do I need an account to draft posts with an agent?

Not for Post Kit, and ChatGPT answered our test as a signed-out visitor. Claude needs an account for its chat app or a key for its API, and every scheduler on this page needs an account, because it publishes on your behalf.

Do these tools know each platform's character limits?

Post Kit keeps a rule set for each platform with a source and checked date, and counts each draft in code. Ayrshare, Buffer MCP, AT Protocol MCP, the souravdasbiswas LinkedIn server and the Apify validator also check length. Chat apps estimate the length themselves: in our test Claude through its API reported all 5 right and ChatGPT as a visitor none, and the two setups differ, so that gap is a hint, not a ranking.

Other comparisons

OpenKrill builds live-data tools for AI agents, with a human check on the result.