MCP (stdio) · X

Draft and schedule X posts from Claude Desktop

Claude Desktop is where many people think out loud: you paste notes, argue with an idea, and end up with something worth saying. Connecting it to SocialHandoff means that last step, turning the idea into a tweet or a short thread, happens in the same chat. Claude writes the draft, calls draft_post, and shows you an approval card inline. The post waits in your inbox until you approve it, so a half-finished thought never reaches your timeline by accident.

Prompt

Here are my notes from this week's customer calls. Pull out the one insight about onboarding that surprised me most, write it as a 3-tweet thread for X in my voice, keep each tweet under 240 characters, and schedule it for Thursday 9:00 in America/New_York. Show me the preview before you finish.

How to do it

  1. Mint an agent key In https://app.socialhandoff.com, open Connections, create a key named Claude Desktop, and scope it to X with draft and schedule permissions. Copy the stdio snippet shown with the key.
  2. Add the server to Claude Desktop Open claude_desktop_config.json from Settings > Developer and paste the mcpServers block. It runs npx -y socialhandoff-mcp with your key. Restart Claude Desktop.
  3. Ask for a draft Give Claude your notes and the prompt. It calls draft_post with networks set to x and a thread array, then schedule_post for the slot you named.
  4. Check the inline card preview_posts renders the approval card in the chat, with per-tweet character counts, so you can ask for a rewrite before the draft reaches the inbox.
  5. Approve on desktop or phone Open the inbox or the phone swipe stack and approve. The thread publishes at the scheduled time as a reply chain.

Example draft

1/ We assumed people quit onboarding because it was long. The calls said otherwise: they quit at the first screen that asked for something they did not have yet.

2/ The fix was not fewer steps. It was reordering them so every screen could be finished with what you already had open.

3/ Completion went up the week we shipped it. Lesson for us: map what a new user has in hand, not what we want from them.

Gotchas

  • X counts characters by weight: most CJK characters and many emoji count as 2, and every link counts as 23 no matter how long it is. Ask Claude to leave headroom rather than aim for exactly 280.
  • Claude Desktop only sees your key through the config file. If you rotate the key in Connections, update claude_desktop_config.json and restart, or draft_post will fail with an authorization error.
  • Up to 4 images per tweet, each with alt text. Claude Desktop cannot attach local files to a tool call on its own, so add media in the inbox before approving.
X
  • Character limit: 280 weighted characters for standard accounts. Most CJK characters and many emoji count as 2. Premium accounts can post longer, but SocialHandoff checks against 280.
  • Links: Every URL is wrapped by t.co and counts as 23 characters, whatever its real length.
  • Media per post: Up to 4 images, or 1 GIF, or 1 video.
  • File sizes: Images up to 5 MB, GIFs up to 15 MB, video up to 512 MB (uploaded in chunks).
Schedule tweets and X threads with a human approval step

Frequently asked questions

Can Claude Desktop publish to X without me?
Not by default. A new agent key is draft-only, and agent keys can never approve their own drafts. You can later promote the key to auto-publish on X through the trust ladder.
Does the thread post as replies?
Yes. A draft with a thread array publishes on X as a reply chain, one tweet after another, in the order you approved.
Which timezone does schedule_post use?
The one you pass. If you leave it out, the draft keeps the workspace timezone, and the card shows the resolved time before you approve.

Let your agents post. Keep the final say.

Connect your first agent in minutes. Every draft waits in your inbox until you approve it.

14 days free. No card required.

The hosted version is opening soon

Leave your email and we will send one message when hosted accounts open, with your 14-day trial ready. Want it today? Self-host it free from the repo.

Start free trial