How to post to a Facebook Page from Claude Code
claude mcp add --transport http postwire https://postwire.io/api/mcp, sign in with your email, tick your Facebook Page once on Facebook's own screen, and ask "post the launch announcement from NOTES.md to our Facebook Page". Claude Code writes the post with generate_posts (short, with the hook in the first 125 characters), shows it to you, and publishes it with post_to_social or queues it with schedule_post, as text, a photo or a video. You create no Meta developer app and hold no Page token: PostWire posts through Facebook's Graph API with its own app. The free plan includes Facebook Pages: 1 business, 10 posts a month, 5 AI drafts a day, 2 networks per post, no card.The same works without the MCP server: PostWire's schedule-posts skill calls the REST API with your key. Either way a scheduled post goes out from PostWire's servers with your terminal closed, and the same request can carry the Instagram, LinkedIn or Bluesky version of the news.
Updated . Written from PostWire's own code; vendor prices read on Oct 19, 2026. Live networks: TikTok, Instagram, YouTube, LinkedIn (personal profiles), Facebook Pages, Bluesky, Mastodon, Telegram, Discord, and X on paid plans.
Set it up and post, step by step
Prompt to copy once your Page is connected: Read NOTES.md, write a Facebook post for our Saturday open day with the time and the address, show it to me, and schedule it for Friday at 9am with ./assets/open-day.jpg.
- Add PostWire to Claude Code
In your terminal run
claude mcp add --transport http postwire https://postwire.io/api/mcp(add--scope userto have it in every project), then type/mcpin Claude Code and pick postwire to sign in. The sign-in asks for your email and a 6-digit code, which also creates a free PostWire account if you have none: no password and no card. - Or install the skill instead
npx skills add https://postwire.io --skill schedule-postsadds PostWire's scheduling skill to Claude Code (and to the other agents on the machine). It uses your key from the environment: copy it in the dashboard under API & MCP and setPOSTWIRE_API_KEY. The skill is a plain file you can read first: schedule-posts/SKILL.md. - Connect your Facebook Page
Ask "connect my Facebook Page". Claude Code calls
create_connect_linkand prints a one-hour link; open it and choose Facebook. Facebook shows "Continue as <your name>", then asks which Pages PostWire may use: tick the Page and press Save. Pages you manage directly and Pages inside a Business Portfolio both appear. PostWire never sees your Facebook password. - Ask for the post
"Write the Facebook post for the open day."
generate_postsreturns a draft and publishes nothing. It is written for Facebook: 40 to 80 characters when the idea allows and under 250 otherwise, the hook in the first 125 characters (where the mobile feed cuts), 1 to 3 hashtags, and a link can stay in the body. Ask for the Instagram or LinkedIn version in the same sentence and each comes back written for its own network. - Post now, or schedule it
Say "post it" and Claude Code calls
post_to_social. Say "schedule it for Friday at 9am" and it callsschedule_post, up to 365 days ahead, or withrun_at: "next_slot"for your next free posting hour. A photo or a video goes as its public https link inphoto_urlorvideo_url. A file on your computer goes through an upload page: ask for one (create_upload_link), pick the file there, and Claude Code gets its link. One file can be up to 100 MB on the free plan and 1 GB on paid plans. This is the call:{ "name": "schedule_post", "arguments": { "platforms": ["facebook"], "per_platform": { "facebook": { "text": "Open day this Saturday, 10 to 2, at 41 Main St. Coffee is on us ☕ #openday" } }, "photo_url": "https://postwire.io/m/…/open-day.jpg", "run_at": "2026-10-23T09:00:00-05:00" } } - Check that it went out
The result lists Facebook with
ok, the Page it went to and the post's link (https://facebook.com/…). If Facebook refuses it, the result carries what happened and the fix.
"What's scheduled on Facebook?" calls list_scheduled_posts and "cancel Friday's post" calls cancel_scheduled_post; the same queue is on the dashboard's Queue page, with Reschedule. Prefer to set it up by hand first? Open the dashboard, connect the account under Accounts and copy your key under API & MCP.
Ways to post to Facebook from Claude Code, side by side
How each service plugs into Claude Code and reaches Facebook, and what it costs to start, read on its own Claude Code and pricing pages on Oct 19, 2026.
| Service | How it plugs into Claude Code | How it reaches Facebook | Facebook on the free start | Cheapest paid plan |
|---|---|---|---|---|
| PostWire | claude mcp add with https://postwire.io/api/mcp, or the schedule-posts skill | Your Page, ticked once on Facebook's own screen; Business Portfolio Pages too | Yes — free plan: 1 business, 10 posts a month, 5 AI drafts a day, 2 networks per post, no card | $9/mo — 3 businesses, every network in each post |
| Postiz | claude mcp add with mcp.postiz.com/mcp-oauth-dynamic, or the Postiz skill | Facebook Pages connected in Postiz | 7-day free trial | $29/mo — 5 channels |
| Upload-Post | npx skills add Upload-Post/upload-post-skill | A Facebook Page, chosen with target_facebook_page_id | Free plan of 10 uploads a month | $24/mo — 5 profiles |
Checked on Oct 19, 2026 (2026-10-19) on each vendor's own pricing or docs page, linked in the first column and below. Monthly billing in USD unless noted. "Not listed" means we could not find it on their page, not that it is missing.
Where PostWire is ahead
- A free plan with no time limit: 10 posts a month, no card. Postiz starts with a 7-day trial.
- The cheapest paid plan here: $9 a month for 3 businesses. Upload-Post $24, Postiz $29.
- The post is written for Facebook:
generate_postswrites the short Page post with its hook in the first 125 characters and, from the same news, the Instagram caption and the LinkedIn post in one call. - The next free slot: "put it in my next free slot" queues the post in your next open weekly posting hour.
- A person approves what Claude Code queued: on paid plans, approval rules hold the post until you approve it from an emailed link.
- Postiz — Post to Facebook from Claude Code (claude mcp add --transport http postiz https://mcp.postiz.com/mcp-oauth-dynamic, or npx skills add gitroomhq/postiz-agent with POSTIZ_API_KEY; "Postiz posts to Facebook Pages you have connected"): postiz.com/claude-code/facebook
- Postiz pricing ("Start with a 7-day free trial"; Standard $29 a month, 5 channels): postiz.com/pricing
- Upload-Post — Claude Code + Facebook (npx skills add Upload-Post/upload-post-skill; free API key, "no card"; target_facebook_page_id): www.upload-post.com/skills/claude-code/facebook/
- Upload-Post plans (llms-full.txt: Free 10 uploads a month, "no credit card required", free-plan platforms include Instagram and Facebook; Basic $24 a month, 5 profiles): www.upload-post.com/llms-full.txt
Why post to Facebook from Claude Code
- The facts are already in your files: Claude Code reads the notes, the changelog or the event sheet in the repo and writes the Page's post from what is actually there, with the date and the address right.
- One piece of news, every network: "announce it on Facebook and Instagram" sends one request with a version written for each. On the free plan one post reaches 2 networks; paid plans (from $9 a month) add LinkedIn, Bluesky, X and the rest in the same request.
- From a script or a cron job:
claude -p "post this week's opening hours from hours.md to our Facebook Page" --allowedTools "mcp__postwire__*"runs it without a chat. Without Claude Code at all, the same post isPOST /api/postwith{"platforms": ["facebook"], "text": "…"}and your key. - A person can have the last word: on paid plans, a brand's approval rules hold what Claude Code queues until you approve it from an emailed link.
Source: PostWire's MCP server, Facebook integration and plans, read Oct 19, 2026.
Facebook's rules Claude Code works within
- Pages, not personal profiles: Facebook lets no app post to a personal profile, so Claude Code posts to a Page you manage. No Page yet? Create one at facebook.com/pages/create, then connect it.
- What a post can be: text alone, a photo with its caption, or a video with its description, up to 2,000 characters in PostWire's Facebook writer.
- Reels and Stories go through PostWire's REST API with
options.facebook.post_typeset to"reel"or"story", with the same connected Page: see network options. A video Reel is sent, then published when Facebook finishes processing it. - What Facebook asks you to allow: listing your Pages, creating posts on them and reading their engagement (
pages_show_list,pages_manage_posts,pages_read_engagement), plusbusiness_managementso a Page inside a Business Portfolio can be found.
What it does not do
Claude Code with PostWire publishes and schedules posts on your Facebook Page. It does not post to personal profiles or Groups, it does not read or answer comments or Messenger conversations, and it does not create or manage ads. Reels and Stories are a REST option today, not a field of the MCP tools.
Questions people ask
Can Claude Code post to a Facebook Page?
Yes, with an MCP server or a skill. Claude Code has no Facebook access of its own; with PostWire added (claude mcp add --transport http postwire https://postwire.io/api/mcp) and your Page ticked once on Facebook's screen, it writes the post and publishes or schedules it when you ask.
Do I need a Meta developer app or a Page access token?
No. You approve PostWire's app on Facebook's own screen and tick the Page it may use. There is no developer app to create, no App Review and no token to copy or refresh.
Can Claude Code schedule Facebook posts?
Yes. It calls schedule_post with a time up to 365 days ahead, or "next_slot" for your next free posting hour, and PostWire publishes it at that time with Claude Code closed. The free plan keeps 3 posts waiting at once; paid plans have no such limit.
Can it post to my personal profile or a Facebook Group?
No. Facebook lets no app post to a personal profile, and PostWire does not post to Groups. Claude Code posts to a Facebook Page you manage.
Can it post a photo or a video from my computer?
Yes. Claude Code passes a public https link as photo_url or video_url; a file on your computer gets one through create_upload_link, a page where you pick the file. A video posts as a video on the Page; a Reel or a Story is a REST option (options.facebook.post_type).
Can it post to several Pages?
Each brand in PostWire has one Facebook Page: tick only that Page on Facebook's screen. To post to a second Page, connect it under another brand (Starter has 3 businesses, Pro 10) and name that brand in the request.
How much does it cost?
The free plan includes Facebook Pages, the MCP server and the skill: 1 business, 10 posts a month, 5 AI drafts a day, 2 networks per post, no card. Starter is $9 a month for 3 businesses and Pro $29 for 10, with every network in each post; paid plans have a 14-day refund.
Try it on one business, free.
The free plan is 1 business, 10 posts a month, 5 AI drafts a day (about 20 a month) and 2 networks per post — every network connects free, no card, no time limit. Paid plans start at $9 a month and have a 14-day refund; Pro can be tried free for 7 days and Agency for 14, with a card at checkout and nothing charged that day.