MCP (streamable HTTP) · Threads

Draft and schedule Threads posts from Cursor

Product engineers who build in Cursor often ship things a wider audience cares about. Cursor's agent can read the UI change you just made and describe it for people who never open a code editor. Through SocialHandoff it drafts the Threads post, respects the 500-character limit, and can attach the screenshot with alt text. Media is served to Threads at signed URLs, and nothing publishes without approval.

Prompt

I just shipped dark mode for our habit-tracking app. Look at the theme files I changed and write a Threads post for users announcing it. Mention it follows the system setting, keep it friendly, under 300 characters.

How to do it

  1. Mint a Threads agent key In https://app.socialhandoff.com, open Connections, connect your Threads account, then create an agent key scoped to Threads with draft permission only. Copy the key when it is shown; only its hash is stored.
  2. Add the server to mcp.json In .cursor/mcp.json, add a server with url https://app.socialhandoff.com/mcp and a headers block carrying Authorization: Bearer and the Threads key. Keep the key in an environment variable, not in git.
  3. Confirm it in settings Open Cursor settings, then MCP, and check the server shows a green status with draft_post and schedule_post listed.
  4. Draft from the editor In agent chat, ask Cursor to turn the feature you just finished into a Threads post. It drafts, you approve in the inbox.

Example draft

Dark mode is here. The app now follows your phone's system setting, so it switches on its own at night. Your streaks look better in the dark too. Update from the app store to get it.

Gotchas

  • A draft too long for one post can go out as a reply-chain thread, with each part published as a reply to the one before. Every part has its own 500-character limit, and a carousel of 2 to 20 images or videos can lead the chain.
  • Threads allows 250 posts per account in any 24 hours. The quota is checked before each publish, so a post that would go over it is stopped before it is sent rather than failing at the network.
  • Threads fetches images and video from your instance at signed, expiring URLs, so you do not need a separate public media host. The API itself must be reachable over public HTTPS; an instance that only runs on localhost cannot publish media to Threads.
  • Cursor reads .cursor/mcp.json from the project. If you commit that file, reference the key through an environment variable so it never lands in git.
Threads
  • Character limit: 500 characters per post. Emoji count as their UTF-8 bytes, so an emoji can use up to 4 characters of the limit.
  • Links: Up to 5 links per post. Threads generates a preview for the first one.
  • Carousels: 2 to 20 images or videos in one carousel post.
  • Image files: JPEG or PNG, up to 8 MB. Threads fetches each file from a URL at publish time.
Threads scheduler for agent drafts you approve first

Frequently asked questions

Can Cursor post to Threads without me leaving the editor?
It can draft and schedule without you leaving. Approval happens in the inbox, which you can keep open in a browser tab or on your phone.
Can Cursor attach a screenshot to a Threads post?
Yes. Upload the image and SocialHandoff serves it to Threads at a signed, expiring URL, with alt text if you add it. The instance must be reachable over public HTTPS so Threads can fetch the file.
How do I connect Threads?
Open Connections in https://app.socialhandoff.com and sign in with your Threads account through the operator's own Meta developer app. Until Meta's app review approves that app, only its listed testers can publish.

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