MCP (streamable HTTP) · Facebook

Post customer-facing updates to a Facebook Page from Claude Code

Many software products have a Facebook Page that customers actually follow, often more than the company blog. Claude Code already sees the changelog and the diff, so it can write the plain-language version for that audience. With SocialHandoff, it drafts the Page post, optionally uploads a few screenshots, and leaves it in the approval inbox. Facebook takes text-only posts too, so a quick update needs no media at all.

Prompt

Read the last 3 entries in CHANGELOG.md. Write one Facebook Page post for customers (not developers) covering the changes that affect billing and invoices. Plain language, under 120 words, and link to /changelog. Draft it for Facebook only.

How to do it

  1. Connect Facebook and mint a key In https://app.socialhandoff.com, open Connections, sign in with Facebook and pick the Pages to connect; each Page becomes its own channel. Then create an agent key named Claude Code scoped to Facebook 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 photos (up to 10, each with alt text) or one video: 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 in the repo. It reads the changelog and calls draft_post with networks set to facebook.
  5. Approve for the right Page The card shows which Page the post goes to. Approve on desktop or in the phone swipe stack, and it publishes to that Page at the scheduled time.

Example draft

A few changes to invoices this month, based on your feedback:

- You can now add your tax ID to every invoice automatically.
- Invoices show the billing period in the title, so they are easier to find.
- Refunds now appear as a separate line instead of a new invoice.

Nothing changes about what you pay. Full details: https://example.com/changelog

Gotchas

  • Claude Code can upload screenshots, but a Page post takes either photos or one video, not both. If a demo clip and screenshots are both in the repo, pick one.
  • A Page post can carry up to 10 photos or one video, not both. Each photo should have alt text, or the missing-alt-text guardrail flags it.
  • 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.
  • Facebook Page tokens do not expire, but removing the app's access in Facebook disconnects the Page. Reconnect it in Connections.
Facebook
  • Where you can post: Facebook Pages only. The API does not allow posting to personal profiles or to Groups through SocialHandoff.
  • Page access: You need a role on the Page that allows creating content.
  • Photos: One photo with alt text, or up to 10 photos in one post.
  • Video: One video per post.
Facebook post scheduler for Pages, with approval built in

Frequently asked questions

Can one agent post to several Pages?
Yes. Every Page granted at sign-in connects as its own channel, and a key scoped to Facebook can draft for them. Each post names its Page on the approval card.
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.
Why can only testers post at first?
Meta requires App Review and Business Verification before your own developer app can post for people outside its tester list. Until then, add people under App Roles.

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