Use flayr in Claude and ChatGPT
Connect your flayr account to an AI assistant and turn a conversation into real social posts.
What flayr does in Claude and ChatGPT
With flayr connected, you can ask Claude or ChatGPT to work with your brand's social content: list your brands and the social accounts they post to, draft posts, attach media you already have, schedule or publish posts, check what's scheduled and read how recent posts did.
The assistant only reaches the brand you pick when you connect, and only with the permissions you allow. Anything that publishes or deletes is marked that way, so the assistant asks you before it goes live.
Connect
Claude (claude.ai and Claude Desktop)
From the Claude connectors directory:
- In Claude, open Settings, then Connectors.
- Find flayr in the directory and choose Connect.
- Sign in to flayr and finish the steps below.
Or add flayr as a custom connector:
- In Claude, open Settings, then Connectors, and choose Add custom connector.
- Name it
flayrand use the URLhttps://flayr.social/api/mcp/claude. - Add it, choose Connect, and sign in to flayr.
ChatGPT
- In ChatGPT, open Settings, then Apps & Connectors.
- Find flayr and choose Connect.
- Sign in to flayr and finish the steps below.
Where ChatGPT lets you add an app by URL (developer mode), use https://flayr.social/api/mcp/chatgpt with OAuth sign-in.
Claude Code
Add the server, then run /mcp in Claude Code and choose Authenticate to sign in:
claude mcp add --transport http flayr https://flayr.social/api/mcp
Other MCP clients
Add https://flayr.social/api/mcp as a remote MCP server (Streamable HTTP). Clients that support MCP sign-in (OAuth) take you through the flayr sign-in below. Clients that don't can send a flayr API key instead, as the header Authorization: Bearer flayr_sk_…. Create keys in Developers.
Sign in, brand and permissions
When you connect, flayr opens in your browser:
- Sign in to flayr, or create an account. Your password is never shared with the assistant.
- Pick the brand the assistant may use, or all of your brands. It sees and posts only to the brands you pick.
- Choose what it may do:
- Read: see brands, drafts, posts and analytics.
- Write: create and edit drafts, media and templates. Nothing is posted.
- Publish: post and schedule to your connected social accounts.
- Choose Allow. You're returned to the assistant, connected.
You can narrow the permissions or disconnect at any time (see Disconnect).
Plan
Over MCP, connecting, reading, drafting and publishing need the Pro plan or higher.
Each publish counts against your plan's direct posts for the month. Posting queues, reviews and approvals need the Agency plan or higher.
You can still connect on a lower plan. The assistant can see what flayr offers and tell you which plan you have, but its tools say your plan doesn't include them. Once your plan includes it, the same connection works without reconnecting. Plans are managed on flayr.social, never inside the assistant. See plan details.
Tools
What the assistant can do through flayr. Read tools only look; Write tools change drafts in flayr; Publish tools act on your real social accounts; Delete tools remove flayr data.
In Claude and ChatGPT
- Check this connectionRead
whoamiReturns who this connection (an OAuth sign-in or an API key) belongs to: userId, the account's current plan tier, and brandId/brandName when the connection is bound to one brand (null = account-wide).
- List brandsRead
list_brandsLists the brands this connection can file content into and publish through.
- List connected social accountsRead
list_connected_accountsThe social accounts a brand can post to — the same set publish would use for that `brandId`: platform, handle, display name, health (healthy, needs_reauth, disconnected) and whether flayr can post there right now (`postable`; Reddit is paused because Reddit closed its API to third-party apps).
- List YouTube playlistsRead
list_youtube_playlistsPlaylists of the YouTube channel(s) a brand publishes to.
- Get a media upload URLWrite
upload_mediaStep 1 of attaching a LOCAL file (video or image) to a draft.
- List contentRead
list_contentLists content items (drafts), newest first.
- Get a content item and its post statusRead
get_contentOne content item plus its live posting status: `postState` and `posts[]` (up to 20, newest first) with each post's status (scheduled · publishing · published · partial · failed · review_held · held), scheduledAt, and per-platform status, live URL and error.
- Create a draftWrite
create_contentCreates a DRAFT content item.
- Edit a draftWrite
update_contentEdits a draft in place; only the fields you pass change.
- Delete a content itemDelete
delete_contentDESTRUCTIVE: permanently deletes a content item from the library.
- Publish or schedule a post (goes live)Publish
publishPUBLISHES TO REAL SOCIAL ACCOUNTS.
- Get a scheduled post's first commentsRead
get_postA post (`id` = convexPostId from publish, or posts[].id from get_content): status, slot, platforms, and while it is scheduled the first comment each platform will publish and whether it can be changed now.
- Edit a scheduled post (caption, first comments, platforms)Publish
update_scheduled_postCHANGES WHAT A SCHEDULED POST WILL PUBLISH on real accounts, keeping its slot, accounts, options, labels and draft.
- Cancel a scheduled postPublish
cancel_scheduled_postTakes a SCHEDULED post off the platform schedule and marks it cancelled (the draft stays, so it can be published again).
- List scheduled-post reviewsRead
list_reviewsScheduled posts waiting for (or given) a human sign-off, oldest slot first.
- List content waiting for your approvalRead
list_approvalsContent held for approval that waits on the account owner's decision, newest first: posts filed with publish `requiresApproval: true`, drafts submitted for review, and workflow runs parked at an approval gate.
- List posting queuesRead
list_queuesPosting (drip) queues of one brand.
- Get a posting queueRead
get_queueA queue and its items in order, with each item's state (queued · publishing · scheduled · posted · failed · skipped), booked or projected slot, and attribution status.
- Create a posting queuePublish
create_queueCreates a posting queue.
- Update, pause or resume a queuePublish
update_queue`status: "paused"` stops new bookings (already-booked posts stay booked); "active" resumes.
- Delete a posting queueDelete
delete_queueDESTRUCTIVE: deletes the queue (its drafts stay in the library).
- Add drafts to a queuePublish
add_queue_itemsAppends drafts (content ids) to the end of a queue — they will be BOOKED AND POSTED on the queue's schedule.
- Skip, retry, unschedule, retitle or move a queue itemPublish
queue_item_action`action`: "skip" passes over a queued item; "retry" puts a failed/skipped item back in line; "unschedule" deletes a booked platform post and puts the item back in line.
- Remove an item from a queueDelete
remove_queue_itemDESTRUCTIVE: removes an item (the draft stays in the library).
- Reorder waiting queue itemsPublish
reorder_queue_itemsSend every waiting (queued) item id exactly once, in the new order.
- Analytics overviewRead
get_analyticsEngagement overview for the last 7, 30 or 90 days.
- Run a custom insight queryRead
query_insightsRead-only analytics query: one `metric` aggregated (median by default) over posts, broken down by up to a few dimensions (platform, weekday, hour, brand, campaign, postType, label:<key>, arm), at a fixed post age `window` (48h / 7d / 30d / lifetime) so posts are compared fairly.
- Compare posts by a label (A/B)Read
compare_labelsSplits every labelled post by the values of one label key (e.g.
- List experimentsRead
list_experimentsA/B experiments.
- Get an experimentRead
get_experimentOne experiment: hypothesis, variants, compareKey, window and status.
- Create an experimentWrite
create_experimentCreates an A/B experiment.
- Update an experimentWrite
update_experimentChanges an experiment's fields (e.g.
- Delete an experimentDelete
delete_experimentDESTRUCTIVE: deletes the experiment record (content keeps its labels).
- Experiment resultsRead
get_experiment_resultsThe experiment's posts split by its compareKey, with the leading variant by its primary metric and n per arm.
- List formats (text templates)Read
list_text_templatesReusable text shapes per brand: sections, length targets, hook patterns, CTA slots and guardrails.
- Get a formatRead
get_text_templateOne format (text template) with its full structure and example.
- Create a formatWrite
create_text_templateCreates a reusable format (text template) in a brand.
- Update a formatWrite
update_text_templateChanges a format; only the fields you pass change.
- Delete a formatDelete
delete_text_templateDESTRUCTIVE: deletes a format (drafts started from it keep their text).
- List creator-credit rulesRead
list_attribution_rulesThe brand's "posts like this must carry a credit" rules and its mode (flag / push_down).
- List share rulesRead
list_share_rulesThe brand's share rules: "when <account> publishes, reshare to <accounts> (or comment on it) after N minutes with text T", each with its approval mode.
- Create a share rulePublish
create_share_ruleCreates a rule that reshares (or comments on) every new post of the source accounts.
- List comments after publish and resharesRead
list_publish_actionsPending, sent and failed comments-after-publish and reshares of the brand (filter by `status`, e.g.
- Approve, reject, retry or cancel a reshare / commentPublish
act_on_publish_actionapprove lets a rule's reshare / comment go out at its time; retry re-sends a failed one (same idempotency key); reject / cancel stop it.
- Add comments after publish to a postPublish
add_post_commentsSchedules comments on a post, sent once after it is live on that platform and its tokens resolve ({{postUrl}}, {{parentPostUrl:<post id>}}, {{youtubeUrl:<post id>}}), optionally at sendAt.
- List a post's comments after publishRead
list_post_commentsA post's comments-after-publish and reshares, with status (waiting, needs_approval, sent, failed) and the resolved text.
- List framesRead
list_framesThe brand's frames (borders, overlays, lower thirds, corner tags, quote-card frames, ribbons) plus the built-in flayr frames in the brand colors.
- Get a frameRead
get_frameOne library frame with its sizes and content areas.
- Add a frame to the libraryWrite
create_frameCopy a flayr frame into the brand library (`defaultKey`, optional colors/texts), or add uploaded PNG/SVG art (upload_media first; `variants` of storageIds, the content area is detected from transparency).
- Frame an imageWrite
apply_frameDraws a frame over an image and returns a new image URL (the original is untouched).
- Get auto-frame settingsRead
get_frame_settingsWhich frame each platform's images get automatically when a post is published or scheduled.
- Set auto-frame for a platformWrite
update_frame_settingsFrame every image posted to a platform automatically (frameRef), or stop (frameRef null).
Troubleshooting
A social account needs reconnecting
If the assistant says an account needs reauthorization or is disconnected, reconnect it in flayr under Connect, then ask again. You don't need to reconnect the assistant.
Posting to Reddit
Paused: Reddit is temporarily unavailable, so flayr cannot post there.
“This plan doesn’t include using flayr from AI agents”
The connection works, but your flayr plan is below the one these tools need (see Plan). Once the plan includes it, the same connection works; there's no need to reconnect.
The assistant can't see a brand or can't publish
The connection only reaches the brand and permissions you picked. Disconnect it and connect again to pick differently.
Disconnect
In flayr, open Settings, then Integrations. Under Connected agents, find the assistant and choose Revoke. It stops working right away. You can also remove flayr from the assistant's own connector or app settings.
Privacy and support
The assistant receives only what its tools return for the brands and permissions you allowed. Its provider (for example Anthropic or OpenAI) processes that under its own privacy policy. See the flayr Privacy Policy and Terms.
Questions or problems: email hello@flayr.social.