Prompt
I just wrote docs/guides/webhooks.md. Draft a Bluesky post announcing the new guide for developers integrating our API: one sentence on what it covers, one on the part people get wrong (verifying signatures), and the link docs.example.dev/guides/webhooks. How to do it
- Mint a Bluesky agent key In https://app.socialhandoff.com, open Connections, connect your Bluesky account, then create an agent key scoped to Bluesky 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 Bluesky 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 Bluesky draft. Confirm the draft_post call when prompted; the post then waits in the approval inbox.
Example draft
New guide: receiving webhooks from our API, from the first request to retries and replay protection. The part most people get wrong is verifying the signature against the raw body, not the parsed JSON. The guide shows why. docs.example.dev/guides/webhooks
Gotchas
- Bluesky refuses images over 1 MB and allows at most 4 per post. Resize screenshots before the agent attaches them, and add alt text to each.
- Links, @handles, and #tags become clickable facets when the post publishes. Have the agent write the plain URL and handle, not markdown links.
- Connect Bluesky with an app password from Settings, never your account password. Revoking that app password cuts off only this connection.
- VS Code only calls MCP tools from agent mode. In ask or edit mode, Copilot Chat will describe a Bluesky post but never call draft_post.
- Character limit: 300 graphemes per post. An emoji or an accented letter counts as 1 grapheme even if it uses several bytes.
- Media per post: Up to 4 images, or 1 video. Images and video cannot be mixed in one post.
- Image size: The AT Protocol image embed accepts blobs of about 1 MB each; the official app compresses larger photos. SocialHandoff checks for 1 MB per image.
- Video: Up to 3 minutes and 100 MB, MP4. SocialHandoff does not publish video to Bluesky.
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.
Will VS Code link to my repo correctly on Bluesky?
Yes. Write the plain URL and it becomes a clickable link facet when the post publishes. The same happens for @handles and #tags.
Does it support custom domain handles on Bluesky?
Yes. Connect with whatever handle you sign in with, including a domain handle. Mentions of other handles become clickable facets on publish.