Table of Contents
- Post to a Page, not your personal profile
- Check that you're an admin of the Page
- Let the agent find the Page ID itself
- Know which post types it can make
- Put Story text inside the image
- Check your Reel framing
- Start with drafts
- What the agent sends for an album
- Adding it to Cursor, Codex and the rest
- One post, more than one platform
- Posting from Muse, Manus or another agent
To let Claude Code, Cursor, Codex or another agent like Muse or OpenClaw post to Facebook, you need a Facebook MCP server and a Facebook Page you're an admin of. PublishQ's server is the shortest route: connect the Page in PublishQ, add the server, approve it in the browser.
claude mcp add --transport http publishq https://publishq.com/mcpAfter that, "post these three photos to our Page as an album" is all you have to type. Sort out the seven points below before the agent's first post, and that post goes out the way you meant it.

Post to a Page, not your personal profile
Facebook only lets apps publish to Pages. If your business posts from a personal profile today, create a Page for it first. One PublishQ connection can manage several Pages, and each shows up as its own account.
Check that you're an admin of the Page
You need admin access to the Page when you connect it. If someone else owns the Page, ask them to make you an admin, then connect again.
Let the agent find the Page ID itself
Don't paste Page IDs into your prompts. Your agent calls publishq_list_accounts with the platform set to FACEBOOK and gets every Page with its name and ID. Then "post to the bakery Page" just works.
Know which post types it can make
| You want | What to send |
|---|---|
| Text post | Text only, up to 63,206 characters |
| Photo post | One photo |
| Album | 2 to 20 photos |
| Reel | One video (any single video is published as a Reel) |
| Story | One photo or video, with contentType: "story" |
That one setting, contentType: "story", is the only Facebook-specific option. Everything else is decided by what you attach.
Put Story text inside the image
Facebook doesn't show captions on Stories. If the Story needs words, put them on the image or video itself. The Facebook Stories safe zone checker shows where Facebook's own bars and buttons sit, so your text doesn't end up under them.

Check your Reel framing
Reels get buttons and a caption over the bottom and right side of the video. Run a frame through the Facebook Reels safe zone checker before you post a batch.
Start with drafts
Ask the agent to save posts as drafts until you trust it. A post with no scheduledAt and no publishNow waits in PublishQ for you to publish it, and a scheduled post can be edited or cancelled until it goes out. The Facebook scheduler shows the queue on a calendar.
What the agent sends for an album
{
"content": "New drop, three colours.",
"mediaIds": [
"aaaa1111-bbbb-2222-cccc-333344445555",
"bbbb2222-cccc-3333-dddd-444455556666",
"cccc3333-dddd-4444-eeee-555566667777"
],
"accounts": [{ "accountId": "dddd4444-eeee-5555-ffff-666677778888" }],
"scheduledAt": "2026-11-12T10:00:00Z"
}Photos larger than Facebook's 10 MB limit are compressed by PublishQ before they go out, so you can attach exports straight from your camera or design tool. Every field is in the Facebook API guide.
Adding it to Cursor, Codex and the rest
- Cursor: add
{"mcpServers": {"publishq": {"url": "https://publishq.com/mcp"}}}to~/.cursor/mcp.json. Prompts that suit the editor are on the Cursor Facebook page. - Codex:
npx @publishq/cli@latest login, thencodex mcp add publishq -- npx -y @publishq/mcp@latest. See the Codex Facebook page. - Claude Code: the command at the top of this page, then Authenticate in
/mcp. More on the Claude Code Facebook page. - Claude and ChatGPT: add
https://publishq.com/mcpas a custom connector or app.
One post, more than one platform
The same call can include your Instagram account, so a product photo lands on the Facebook Page and on Instagram together, each with its own caption through postOverrides. The Instagram MCP guide covers that side. If you run Pages for several clients, keep each client's accounts in a workspace.

Posting from Muse, Manus or another agent
The checklist is the same in every agent. Only the setup step changes:
| Agent | Guide |
|---|---|
| Muse | Facebook from Muse |
| OpenClaw | Facebook from OpenClaw |
| Hermes Agent | Facebook from Hermes Agent |
| Manus | Facebook from Manus |
| Kiro | Facebook from Kiro |
| Gemini CLI | Facebook from Gemini CLI |
| Claude Cowork | Facebook from Claude Cowork |
For an agent that isn't listed, open publishq.com/agents and copy the line at the top of that page into your agent. It reads the page, sets itself up, and gives you a link to approve the login in your browser.
Create a PublishQ account, connect your Page, and ask your agent for a draft.
