Prompt
Read launch/brief.md and draft a Threads post for Thursday's launch of our team calendar feature. Audience is small agency owners. Under 400 characters, one clear benefit, no emoji. Use schedule_post for Thursday 9am America/New_York. How to do it
- 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.
- Create .vscode/mcp.json Add a server of type http with url https://app.socialhandoff.com/mcp. Use an input variable for the Threads key so VS Code prompts for it once and stores it securely.
- Start the server Open the MCP server list from the Command Palette and start it. Copilot Chat in agent mode now shows the tools.
- Ask in agent mode Switch Copilot Chat to agent mode and ask for the Threads draft. Confirm the draft_post call when prompted; the post then waits in the approval inbox.
Example draft
Your team calendar now lives in the same place as your projects. See who is out, which deadlines overlap, and which client work is at risk, all in one view, without another tool to update. It is live today for every workspace.
Gotchas
- 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.
- Keep each Threads post within 500 characters, and remember that Threads counts emoji by their UTF-8 bytes, so a few emoji use more of the limit than they appear to. The per-network length guardrail flags longer drafts before they reach the inbox.
- VS Code only calls MCP tools from agent mode. In ask or edit mode, Copilot Chat will describe a Threads post but never call draft_post.
- 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.
Frequently asked questions
Does this need GitHub Copilot?
The MCP tools run inside Copilot Chat's agent mode in VS Code, so you need Copilot enabled. Any extension that speaks MCP, such as Cline, works too.
Can VS Code 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.
Can I post videos to Threads?
Yes. Threads takes a single video, or mixes videos and images in a carousel of 2 to 20 items. SocialHandoff serves the file at a signed URL, so the only requirement is that your API is reachable over public HTTPS.