MCP (streamable HTTP) · X

Draft X posts about your code from inside Cursor

If you build in public, the best tweet material is sitting in your editor: the refactor you just finished, the benchmark you ran, the bug that took two days. Cursor's agent can read those files and write a post that is specific instead of vague. With SocialHandoff added to .cursor/mcp.json, Cursor can queue that post as a draft for X. You keep coding; the tweet waits in the inbox until you have a minute to read it and approve.

Prompt

Look at the diff in src/cache/ from today. Write one X post for other developers explaining what we changed in the cache eviction and why it cut p95 latency. Include the before and after numbers from bench/results.md. No hashtags. Draft it for X.

How to do it

  1. Get the HTTP snippet Mint an X-scoped key in Connections. The key dialog shows a Cursor snippet for streamable HTTP.
  2. Edit .cursor/mcp.json Add a server entry with url https://app.socialhandoff.com/mcp and an Authorization header of Bearer plus your key. Use the global config in your home folder if you do not want the key in the project.
  3. Enable the tools In Cursor settings under MCP, confirm the server is green and draft_post, schedule_post, and preview_posts are listed.
  4. Ask in Agent mode Reference the files with @ so Cursor reads the real diff and benchmark, then ask for the draft.
  5. Review in the inbox The draft appears as pending. Edit, approve, or reject it there.

Example draft

We swapped our cache from LRU to a size-aware policy that evicts big, rarely hit entries first.

p95 on the search endpoint went from 412 ms to 180 ms. Memory stayed flat.

The trick was tracking bytes per hit, not just recency.

Gotchas

  • Newlines count toward the X limit. A post with three short paragraphs spends 4 characters on line breaks; the preview card shows the weighted total.
  • A project-level .cursor/mcp.json can end up in git. Put the server in the global Cursor config or keep the key out of the file and commit only the URL.
  • Cursor may ask before each tool call. That is fine: it adds one confirmation, and the post still needs approval in the inbox.
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 Cursor attach a chart image?
Images are supported on X, up to 4 per tweet with alt text. The simplest path is to add the image in the inbox before you approve.
Is the key shared across projects?
Only if you use the global config. You can mint one key per project, each scoped to its own networks, and revoke them separately.

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