MCP (streamable HTTP) · X

Draft X threads with Gemini CLI

Gemini CLI has a long context window, so it can read a long design doc or a stack of issues and still find the one point worth tweeting. Connect it to SocialHandoff in settings.json and that point becomes a queued X draft. This works well for research-heavy posts: a summary of a paper, a postmortem, or a benchmark. You get the thread in the inbox, check the facts against the source, and approve.

Prompt

Read docs/postmortem-2026-09-14.md. Write a 3-tweet X thread for our users: what broke, how long, and what we changed so it does not happen again. Calm, factual, no blame. Draft it for X and schedule it for today 17:00 UTC.

How to do it

  1. Mint the key Create a key for Gemini CLI in Connections, scoped to X with draft and schedule permissions.
  2. Edit ~/.gemini/settings.json Under mcpServers, add an entry with httpUrl https://app.socialhandoff.com/mcp and a headers object carrying Authorization: Bearer and your key. A stdio command of npx -y socialhandoff-mcp also works.
  3. Check the tools Run /mcp inside Gemini CLI to confirm the server is connected and the tools are listed.
  4. Prompt with the file Reference the doc with @ so Gemini reads it, then ask for the thread and slot.
  5. Approve Review the pending thread in the inbox and approve it.

Example draft

1/ On Sept 14, sign-ins failed for 38 minutes between 14:02 and 14:40 UTC. No data was lost. Here is what happened.

2/ A certificate on an internal service expired. Our alert fired, but it paged a rotation that no longer existed.

3/ We now renew certificates 30 days out, alert on 14 days left, and test the paging path every week.

Gotchas

  • Incident posts are a good fit for a banned-topics or wording rule in brand memory. Add phrases you never want in a public postmortem, and the guardrail flags them before review.
  • Gemini CLI may trust its own character math. X's weighted count treats emoji and some scripts as 2 characters, so rely on the preview card.
  • Scheduling with UTC in the prompt avoids surprises; if you omit the timezone, the draft uses the workspace default.
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

Does Gemini CLI support streamable HTTP?
Yes, with httpUrl in settings.json. If your network blocks outbound HTTP to the server, use the stdio command instead.
Can I hold everything during an incident?
Yes. The kill switch pauses all agents and holds queued posts; resume releases them.

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