MCP (streamable HTTP) · X

Let Windsurf's Cascade draft your X posts

Cascade in Windsurf works across your whole project, which makes it good at summaries: what shipped this week, which docs changed, what a new API looks like. Hooked up to SocialHandoff, it can turn that summary into an X thread and queue it for review. This suits small teams where the person writing code is also the person posting updates. The draft lands in the inbox, where a teammate or you can approve it later.

Prompt

Summarize everything we merged this week from the git log into a 3-tweet X thread called 'This week in the SDK'. One tweet per theme, plain language, no emoji. Draft it for X and leave it unscheduled so I can pick the time.

How to do it

  1. Create the key In Connections, create a key named Windsurf scoped to X with the draft permission.
  2. Edit mcp_config.json Open Windsurf settings, go to MCP servers, and edit the raw config. Add an entry with serverUrl https://app.socialhandoff.com/mcp and an Authorization: Bearer header, or a stdio command of npx -y socialhandoff-mcp.
  3. Refresh Cascade Refresh the MCP list so Cascade loads draft_post and preview_posts.
  4. Ask Cascade Give it the prompt. It can run git log itself, then call draft_post with a thread array.
  5. Pick a time and approve In the inbox, set the slot or approve now. The 60-second undo covers a publish-now mistake.

Example draft

1/ This week in the SDK: faster cold starts, a friendlier error, and one breaking change you should know about.

2/ Cold start dropped because we lazy-load the crypto module. Errors for a missing API key now say which variable to set.

3/ Breaking: timeout is now in milliseconds, not seconds. Upgrade notes: https://example.com/sdk/changelog

Gotchas

  • Thread tweets are checked one by one against X's weighted 280 limit. A single long tweet in the middle fails the guardrail, not the whole thread silently.
  • Windsurf caps how many MCP tools are active at once. If draft_post is missing, turn off tools you do not use from other servers.
  • Cascade may write thread numbering itself. Keep it consistent: either number every tweet or none.
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 a teammate approve instead of me?
Yes. Anyone with access to the inbox can approve. On the Pro plan, multi-reviewer approvals let you require more than one reviewer.
Does Windsurf need a separate key from Cursor?
It should have its own. One key per agent keeps permissions and the audit log clear, and you can revoke one without touching the other.

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