This guide was originally published on the Sendhour blog.
You shipped v2.3. The changelog is written, the tag is pushed, and now comes the part most solo developers skip: telling anyone. Writing four versions of the same announcement, one for each network's length limit and tone, then remembering to post them at a sensible hour, is exactly the kind of chore that never gets done on release day.
If you already work in Claude Code, you can hand it that chore. Claude Code can connect to remote tools over the Model Context Protocol (MCP), and several social media schedulers now run MCP servers. Once one is connected, Claude can read your CHANGELOG.md, write a post per network, and schedule them, without you leaving the terminal you shipped from.
This guide covers the whole loop: picking a scheduler, connecting it, the prompt that works, the per-network limits Claude needs to respect, and the guardrails that keep an agent from posting something you'd regret.
Before you connect anything, decide whether Claude may publish or only draft. This is the single most important setting in the whole workflow.
A good scheduler gives you levels like these:
| Level | What the agent can do | When to use it |
|---|---|---|
| Read only | List accounts, scheduled posts and analytics | Asking "what's going out this week?" |
| Drafts only | Everything above, plus create drafts you approve | Your default for launch posts |
| Full posting | Schedule and cancel posts that go out without a check | Repeat jobs you've already reviewed a few times |
Start with drafts. A language model will occasionally invent a feature, round a number the wrong way or tag the wrong account. A draft costs you one extra click; a wrong public post costs more.
If the server authenticates with an API key instead of a sign-in, remember that the key usually carries the full permissions of the person who created it. Keep it out of your repo and out of shared config.
Remote MCP servers are added with claude mcp add and the HTTP transport. Anthropic's Claude Code MCP documentation describes HTTP as the recommended option for remote servers and shows the general shape:
claude mcp add --transport http <name> <url>
claude mcp add --transport http <name> <url> \
--header "Authorization: Bearer <your-key>"
Two details from the same docs are worth knowing:
--scope user to make it available in every project, or --scope project to write it to a .mcp.json file your team can share. If you use a bearer token, don't put it in a project-scoped claude mcp list from your shell, or type /mcp inside a Claude Code session to see each server's status and finish any sign-in.
Then ask Claude something harmless first: "List my connected social accounts." If you get back your X handle, LinkedIn page and so on, the connection works.
The difference between generic AI posts and ones that sound like you is almost entirely in the prompt. Save something like this as a snippet, or as a Claude Code slash command if you release often:
Read CHANGELOG.md and find the section for the latest version.
Write launch posts for:
- X: a thread of 2-4 posts. First post says what shipped and why it
matters to a user. No hashtags. Link only in the last post.
- LinkedIn: one post, plain language, short paragraphs, link to
https://example.com/changelog as a link card.
- Threads: one post, conversational.
- Bluesky: one post.
Rules:
- Only mention changes that are in the changelog. Do not invent
features, numbers or customer names.
- Stay inside each network's character limit.
- No emojis in the first line.
Create these as DRAFTS for Friday 09:00 in my time zone (Asia/Kolkata).
Show me every draft before you finish.
A few things make this prompt hold up:
2026-11-20T09:00:00+05:30.
Claude is good at writing to a length when you tell it the length. It is not reliably good at counting characters the way each network does, so build some margin in and let the scheduler's validation be the final check.
| Network | Text limit | Notes |
|---|---|---|
| X | 280 characters per post | X weights some characters, such as many emoji, more heavily and counts links at a fixed shortened length. See Counting characters . |
| Threads | 500 characters | Meta's API docs note that emoji are counted by their UTF-8 bytes. See Threads posts . |
| Bluesky | 300 graphemes | Set in the app.bsky.feed.post lexicon; aproposal to raise it was opened in June 2026, so check the current limit before relying on more room. |
| 3,000 characters | See LinkedIn's Post and share updates help page. |
Practical rules that follow from this:
One cost to know about: X now prices API usage by consumption (see X API pricing), so schedulers often cap how many X posts you can send per day or month. A three-post thread uses three posts from that allowance.
When Claude finishes, you should have one draft per network. Before approving:
After the posts go out, you can close the loop from the same terminal: "How did last Friday's release posts do?" If your scheduler exposes analytics over MCP, Claude can pull views and engagement per post, which is a quick way to learn which networks are worth writing longer versions for next time.
Agents that post in public deserve a few more safety checks than agents that edit code.
Several schedulers now publish Claude Code setup guides for their MCP servers, including Postiz, Preflight and bundle.social. When comparing them, check four things:
Disclosure: I built Sendhour, a social media scheduler that has an MCP server for this exact workflow. It posts to TikTok, YouTube, Instagram, Threads, Bluesky, X and LinkedIn through each network's official API. Agents can connect with read-only, drafts-only or full-posting access, and a send that loses contact with a network midway is marked "Check account" rather than retried, so you don't get duplicates. Connecting it to Claude Code is one command (claude mcp add --transport http sendhour https://sendhour.com/mcp --header "Authorization: Bearer sh_your_api_key"), and the setup for other agents is in the API docs. Plans start at $29/month for 5 accounts. Pick whichever tool fits your networks and budget; the workflow above works the same with any of them.
The point isn't to let an AI run your social accounts. It's to remove the friction between shipping something and saying so. With an MCP-connected scheduler, a release announcement becomes one saved prompt, one review pass and one click to approve. You'll do it every release instead of every third, and that consistency matters more than any single post.
Start small: connect a scheduler with drafts-only access, run the prompt on your next release, and edit what comes back. After a few releases you'll know whether the drafts are good enough to trust with more.