MCP (streamable HTTP) · Instagram

Turn release notes into Instagram carousels with Claude Code

Developer tools rarely show up on Instagram because making a post means leaving the terminal. Claude Code closes that gap. It already has your changelog and the screenshots in docs/, so it can export them as JPEG, attach them to SocialHandoff with attach_media, and create a carousel draft with a caption that explains each slide. The post then waits in the approval inbox, where a person checks the slide order and the words before anything appears on the account.

Prompt

Read CHANGELOG.md for v2.8. Pick the 4 changes a non-developer would notice, convert the matching screenshots in docs/img to JPEG, attach each one with attach_media as base64 with alt text, and create an Instagram carousel draft with a caption that names each slide in order. Do not schedule it.

How to do it

  1. Connect Instagram and mint a key In https://app.socialhandoff.com, open Connections, connect an Instagram professional account (Business or Creator). Then create an agent key named Claude Code scoped to Instagram with draft and schedule permission.
  2. Register the server with claude mcp add Export the key as SOCIAL_AGENT_KEY, then run claude mcp add with the HTTP transport, the URL https://app.socialhandoff.com/mcp, and an Authorization: Bearer header that reads the variable.
  3. Attach media from the workspace Claude Code calls attach_media for the JPEG image, Reel, or carousel (up to 10 items): a public url, or the file as base64 data (up to 8 MB) with its mime type and alt text. Larger files go to POST https://app.socialhandoff.com/v1/media as multipart. The ids go into draft_post as mediaIds.
  4. Ask for the draft Give Claude Code the prompt. It reads the changelog, picks the slides, converts them, calls attach_media for each, and passes the ids to draft_post.
  5. Review and approve Check the caption, hashtag count, and alt text on the approval card. On approval, the post publishes; if Instagram's daily quota is full, it is deferred by an hour.

Example draft

Version 2.8 is out. Swipe through the 4 changes you will notice first:

1. Dark mode that follows your system setting
2. Search that finds notes by tag
3. Offline edits that sync when you reconnect
4. A faster start: under a second on most laptops

Full notes at the link in bio.

#productivity #notes #release

[Carousel: 4 JPEG screenshots, each with alt text describing the screen]

Gotchas

  • Screenshots in a repo are usually PNG. Instagram only takes JPEG images, so have Claude Code convert them (for example with sips or ImageMagick) before the upload, not after.
  • Images must be JPEG (up to 8 MB). A PNG screenshot is not accepted, so convert it before upload.
  • For a file over 8 MB, Claude Code falls back to curl with your shell's permissions. Keep the key in an environment variable so it never lands in a committed script or shell history.
  • Captions allow 2,200 characters, 30 hashtags, and 20 mentions. A thread is joined into one caption, so a 5-part draft becomes one long caption.
Instagram
  • Account type: Professional accounts only (Business or Creator). Personal accounts cannot publish through the API.
  • Media: Every post needs an image or video. Text-only posts are not possible on Instagram.
  • Image files: JPEG only, up to 8 MB. Convert PNG or WebP before posting.
  • Reels: Video posts publish as Reels, from MP4 or MOV files.
Schedule Instagram posts and Reels your agents draft

Frequently asked questions

Does it work with a personal Instagram account?
No. Instagram only allows publishing through its API for professional accounts, Business or Creator. Switching is free in the Instagram app settings.
Does Claude Code need the stdio server?
No. It connects over streamable HTTP with claude mcp add. The stdio package with npx also works if you prefer a local process.
Can I post Reels?
Yes. Attach an MP4 or MOV video and it publishes as a Reel with your caption.

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