MCP (streamable HTTP) · Instagram

Draft Instagram posts with Cline and approve them before they go live

Cline asks before it runs each tool, which suits Instagram well: you see the upload command, then the draft call, then the post itself in the inbox. With SocialHandoff as a remote MCP server, Cline can take a product photo from the repo, upload it with alt text, and create an Instagram draft with the caption. Because Instagram needs media on every post, Cline handles the file first, and the approval inbox gives a final check before publishing.

Prompt

Our open source CLI hit 10,000 GitHub stars. Upload assets/stars-10k.jpg with alt text, and draft an Instagram caption thanking contributors: mention that 214 people have sent a pull request, link to the contributing guide via link in bio, and use 4 hashtags.

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 Cline scoped to Instagram with draft and schedule permission.
  2. Configure the remote server Open Configure MCP Servers in the Cline panel and add an entry to cline_mcp_settings.json with type streamableHttp, url https://app.socialhandoff.com/mcp, and an Authorization header.
  3. Attach media from the workspace Cline 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 Paste the prompt into the Cline panel. Approve the file read, the upload, and the draft call one by one as Cline asks.
  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

10,000 stars. Thank you.

This project started as a weekend script. 214 people have since sent a pull request, fixed a typo, or rewrote a module we were scared to touch.

If you want to be number 215, the contributing guide is in our bio.

#opensource #cli #developers #github

[Image: stars-10k.jpg, a graphic reading "10,000 stars", alt text included]

Gotchas

  • 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.
  • Cline asks before each tool call unless you auto-approve it. Auto-approving draft_post is safe because drafts still wait for a person in the inbox.
  • Only professional accounts (Business or Creator) can connect. A personal account is refused at connect time with instructions to switch.
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

What happens if I hit Instagram's daily limit?
The daily publishing quota is checked before each post. If it is full, the post is deferred by an hour instead of failing.
Why does Cline fall back to SSE?
The type field is missing or misspelled. Set it to streamableHttp, in camelCase.
Can I post a carousel to Instagram this way?
Yes. Attach 2 to 10 images or videos and the post publishes as a carousel. Single images take alt text; set it when you upload with the alt field.

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