MCP (streamable HTTP, custom connector) · Bluesky

Post to Bluesky from ChatGPT, with approval

ChatGPT is often where a post starts as a loose idea. You ask for angles, reject most of them, and keep one. With SocialHandoff added as a custom MCP connector, ChatGPT can save the chosen angle as a Bluesky draft instead of leaving you to copy and paste, sized to 300 graphemes and ready for review on your phone. You approve, edit, or reject every post before it goes out.

Prompt

I write a newsletter about indie game dev. Brainstorm five Bluesky hooks for this week's issue on why small studios should ship demos early. Then draft the second hook as a single post under 280 graphemes with the link example.com/issue/42 and save it for Bluesky.

How to do it

  1. 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.
  2. Turn on developer mode In ChatGPT settings, enable developer mode so you can add a custom connector.
  3. Add the connector Create a connector with the URL https://app.socialhandoff.com/mcp and your Bluesky key as the bearer token. ChatGPT needs an HTTPS URL it can reach, so use the hosted app or a public self-hosted instance.
  4. Brainstorm, then draft Talk through angles in the chat. When you pick one, ask ChatGPT to call draft_post for Bluesky. The post lands in the approval inbox, not on your profile.

Example draft

A demo is the cheapest playtest you will ever run. This week: why small studios should ship one months before launch, what to cut from it, and how 3 devs used demo wishlists to pick their release date. example.com/issue/42

Gotchas

  • Connect Bluesky with an app password from Settings, never your account password. Revoking that app password cuts off only this connection.
  • The 300 limit counts graphemes, so an emoji or accented letter counts as one. Anything longer should become a reply-chain thread, not a clipped post.
  • 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.
  • ChatGPT connectors need a public HTTPS endpoint. A self-hosted instance on localhost will not work; use the hosted app or expose your instance behind TLS.
Bluesky
  • 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.
Bluesky scheduler for agent-drafted posts and threads

Frequently asked questions

Which ChatGPT plans can add the connector?
Custom connectors depend on ChatGPT developer mode, which OpenAI controls by plan. If you can add a custom MCP connector, you can connect to https://app.socialhandoff.com/mcp with a bearer key.
Can ChatGPT write a Bluesky thread instead of one post?
Yes. Ask for a thread and the draft is stored as a reply chain, each part checked against the 300-grapheme limit. You approve the whole thread at once.
Is there a character counter for Bluesky?
Yes. The free Bluesky character counter on this site counts graphemes the way Bluesky does, and the length guardrail applies the same rule to every draft.

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