Bots St

bots.st/flayr

flayr

Schedule and publish social posts

2546 ms

answered our call

State
Answered
Protocol
MCP 2025-06-18
Tools listed
122
Answered
3 of the last 3 calls

How to reach it

  • MCP, HTTPhttps://flayr.social/api/mcp

What it can do

ToolWhat it says it does
account_refresh[writes flayr data · `write` scope] Re-reads a connected account's handle, display name and avatar from the network (use after the user renames the account) and returns the stored values. Changes nothing else: no connect, disconnect or post. If the status is not `updated`, tell the user to…
act_on_publish_action[PUBLISHES to social accounts · `publish` scope] approve lets a rule's reshare / comment go out at its time; retry re-sends a failed one (same idempotency key); reject / cancel stop it. Confirm with the user before approving. Needs the `publish` scope (or admin) on the Agency plan or…
ad_cut_lint[writes flayr data · `write` scope] Checks an ad's cut against the ad-cut rules: too many joins (warning), joins only at a rest point, no cut inside a caption or its fade, one caption layer, no audio dip at a join, exactly one ending, and the network's length / aspect / ad-text window (TikTok…
add_post_comments[PUBLISHES to social accounts · `publish` scope] Schedules 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. Confirm with the user first. Needs the `publish` scope (or…
add_queue_items[PUBLISHES to social accounts · `publish` scope] Appends drafts (content ids) to the end of a queue — they will be BOOKED AND POSTED on the queue's schedule. Use `contentIds`, or `items` for a per-item YouTube title or platforms. Drafts of another brand, duplicates, archived drafts and drafts…
ads_account_spend_limit_set[writes · `ads:spend` scope] Sets the Meta ad account spending limit, in the account currency (e.g. 800 = $800). Removing the limit (null) always needs the owner. Inside the owner's agent ceiling it is applied at once; above it the result is `approval_requested`: tell the user the owner has an…
ads_accounts_list[read-only] The brand's ad account with its currency, spend limit, balance (minor units) and readiness. (Wraps GET /api/v2/ads/accounts.)
ads_ad_set_dataset[writes · `ads:manage` scope] Attaches a Meta dataset (pixel) to an existing ad set, optionally with the conversion event (e.g. PURCHASE). Pass agentName and reason. Audited in Ads > Agent activity. It cannot be undone from there: to change it back, call this tool again with the earlier…
ads_ad_set_placements[writes · `ads:manage` scope] Changes where an existing ad set runs. `excludeAudienceNetwork: true` keeps Facebook, Instagram and Messenger and drops Audience Network; or pass an explicit publisherPlatforms list. `id` is the ad set id from ads_campaign_get. Pass agentName and reason. Audited in…
ads_agent_activity[read-only] Recent agent actions on ads (agent name, reason, outcome), owner approval requests still pending, and the owner's agent ceilings. Use it to see whether an approval request was decided. (Wraps GET /api/v2/ads/agent/activity.)
ads_boost_candidates[read-only] The brand's published posts ranked for a boost (reach, engagement rate, link clicks, recency), with score parts, the call-to-action link found, and whether an ad account is connected for the network. Removed posts, posts with no call to action and networks a boost can't run on are left…
ads_campaign_approve[writes · `ads:manage` scope] Approves a proposed ad campaign. With activate: true it also switches it on (needs ads:spend too), through the normal activation checks, when its daily budget is within the owner's agent activation ceiling. Inside the owner's agent ceiling it is applied at once; above…
ads_campaign_get[read-only] One ad campaign by its Flayr id, with its ad sets and ads, including each ad's network review status, reason when available, and last sync time. Do not invent a rejection reason when the network supplies none. (Wraps GET /api/v2/ads/campaigns/{id}.)
ads_campaign_pause[writes flayr data · `write` scope] Pauses a live ad campaign on its ad network so it stops spending (`action: "pause"` or `"stop"`; both leave it paused). To approve and switch on a proposed campaign use ads_campaign_approve. Confirm with the user first. (Wraps POST…
ads_campaigns_list[read-only] The brand's ad campaigns with status, budget, start/end dates, max spend, spend to date, ad sets and ads. Filter by status or platform. (Wraps GET /api/v2/ads/campaigns.)
ads_caps_set[writes · `ads:spend` scope] Sets the brand's monthly and/or per-campaign activation caps, in cents (e.g. 50000 = $500). Inside the owner's agent ceiling it is applied at once; above it the result is `approval_requested`: tell the user the owner has an approval request in Ads > Agent activity, and…
ads_insights[read-only] Impressions, clicks, spend, link clicks and leads per campaign for a date range (default the last 30 days, at most 93), with totals per currency. Pass `level: "ad"` for daily per-ad results summed per ad (spend, impressions, clicks, CTR, video views), each with the Library `contentId`…
ads_offer_update[writes flayr data · `write` scope] Records the claim of one offer row (`claimId` = a row id from ads_offers_list): status, the date it was claimed, and notes. Owners and admins of the brand only. A record only: it never creates, turns on or funds an ad. (Wraps PATCH /api/v2/ads/offers/{claimId}.)
ads_offers_list[read-only] The brand's new-advertiser offers per ad network, one row per ad account (or a network not connected yet): status, spend so far, what is left to spend, the daily pace and the deadline, and how to claim. Read-only. (Wraps GET /api/v2/ads/offers.)
ads_readiness[read-only] Whether each connected network and ad account can run ads, and what to fix first. (Wraps GET /api/v2/ads/readiness.)
ads_snapshot_collect[writes flayr data · `write` scope] Save an immutable, org and brand scoped snapshot for selected ad accounts and an inclusive 1–30 day window. Reads vendors only; no charge, analysis, ad writes or spend. Each source reports availability. (Wraps POST /api/v2/ads/snapshots.)
ads_snapshots_get[read-only] Read one saved ads data snapshot by id, or recent snapshot headers for the active brand. No cross-org access. (Wraps GET /api/v2/ads/snapshots.)
apply_frame[writes flayr data · `write` scope] Draws a frame over an image and returns a new image URL (the original is untouched). Use the URL in create_content, or pass contentId + platform so that post publishes the framed image on that platform. Free by default; the same inputs again are free. (Wraps…
bodies_map[writes flayr data · `write` scope] Maps library clips, Shopify products, features or texts to draft bodies (what each shows and proves) so hooks can lead into them. Charges Embers once per call (refunded when nothing usable comes back). Needs the Pro plan or higher. (Wraps POST…
brand_business_details_get[read-only] A brand's legal name, registered address, website, currency and timezone: what ad networks ask for when you open an ads account. `hasTaxId` says whether a tax id is on file; the tax id itself is never returned. Use an `id` from list_brands. (Wraps GET…
brand_business_details_update[writes flayr data · `write` scope] Sets a brand's legal name, registered address, currency (ISO, like USD) and/or timezone (IANA, like America/New_York). Only the fields sent change; a brand with no details yet needs all four. Do not send a tax id: it is refused. A brand owner or admin adds it in…
brand_profile_get[read-only] A brand's profile (website, companyName, tagline, industry, audience, values, pillars, hashtag sets), its default voice, colors and fonts. `brandId` comes from list_brands; a brand-bound connection may omit it. (Wraps GET /api/v2/brand/intelligence.)
brand_profile_update[writes flayr data · `write` scope] Fills in a brand's profile — e.g. `{ brandId, profile: { website: "https://…" } }`. Changes only the fields you send; the voice, colors and fonts stay as they are unless you pass them. Use it to clear list_brands setup items such as hasWebsite. Owners, admins…
cancel_scheduled_post[PUBLISHES to social accounts · `publish` scope] Takes a SCHEDULED post off the platform schedule and marks it cancelled (the draft stays, so it can be published again). Safe to repeat. Refused within 5 minutes of the slot, and when the platform will not remove it (some YouTube uploads). Needs the…
claims_check[read-only] Checks a hook, CTA, caption or ad against the brand's claims sources (verified prices, banned phrases, competitors, destinations). No model call, nothing stored, free. Needs the Pro plan or higher. (Wraps POST /api/v2/hook-studio/claims/check.)
close_experiment_round[writes flayr data · `write` scope] Freezes the open round's numbers and keeps the best arms for the next round. A winner is recorded only when the readout says likely_winner, or when `pick` names an arm the user chose. Ask the user before passing `pick`. (Wraps POST…
combine_clips[writes flayr data · `write` scope] Extends a video draft (`id`) with more clips and image cards into ONE finished video, rendered by flayr and saved as a NEW linked draft (same brand, caption copied, credits merged, labelled variant:combined). Nothing is posted and the original is unchanged. Use…
compare_labels[read-only] Splits every labelled post by the values of one label key (e.g. key "cut" → cut:opus vs cut:raw) and reports medians with n per group at the 48h / 7d snapshot. Descriptive, not a significance test. Pro plan or higher. (Wraps GET /api/v2/analytics/experiments.)
compare_post_instances[read-only] Per-account metrics and tag, campaign, experiment and series roll-ups. Omit postId for scope-wide roll-ups (up to 100 posts). Include reruns to compare bookings of the same content over time. Historical data stays platform-attributed. Pro plan or higher. (Wraps GET…
create_content[writes flayr data · `write` scope] Creates a DRAFT content item. Nothing is posted. Give `text` plus optional media (`videoUrl` / `imageUrl`, or `videoStorageId` / `imageStorageId` from upload_media), target `platforms`, `brandId` (from list_brands; omitted → the brand last active in the…
create_experiment[writes flayr data · `write` scope] Creates an A/B experiment. Then tag drafts with its `label` (experiment:<id>) and `<compareKey>:<variant>` via update_content `labels`, publish them, and read get_experiment_results. (Wraps POST /api/v2/experiments.)
create_frame[writes flayr data · `write` scope] Copy 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). (Wraps POST /api/v2/frames.)
create_growth_trigger[writes flayr data · `write` scope] Creates a keyword trigger, always INACTIVE: nothing is sent until a person turns it on. DMs work on Instagram and Facebook only; the reply text must not contain a keyword. (Wraps POST /api/v2/growth-triggers.)
create_queue[PUBLISHES to social accounts · `publish` scope] Creates a posting queue. Once items are added it BOOKS REAL POSTS on the given platforms on its cadence (default daily 19:00 America/Chicago, 2 booked ahead). Use `startsAt` to hold everything until a date. Needs the `publish` scope (or admin) on…
create_share_rule[PUBLISHES to social accounts · `publish` scope] Creates a rule that reshares (or comments on) every new post of the source accounts. Defaults to needs_approval: each fire waits for approve in act_on_publish_action. Only LinkedIn (native reshare) and X (quote own / retweet) really repost; other…
create_text_template[writes flayr data · `write` scope] Creates a reusable format (text template) in a brand. (Wraps POST /api/v2/text-templates.)
cta_check[read-only] Checks whether a draft, post or link points at the brand's goal page (the same check the ad and boost routes run in paid mode; a block there refuses the ad). Run it before every boost or ad and paste the result. Nothing stored, free. Needs the Pro plan or higher. (Wraps POST…
cta_settings_get[read-only] The brand's goals (source tagged, implicit from the website, or none; the primary goal) and its CTA check settings (ctaLevel, ctaPaidLevel, organicSupportingHosts, autoApplyPrimaryCta). Free. Needs the Pro plan or higher. (Wraps GET /api/v2/hook-studio/cta-settings.)
cta_settings_update[writes flayr data · `write` scope] Changes only the CTA check settings sent: ctaLevel (off, warn, block), ctaPaidLevel (warn or block), organicSupportingHosts and autoApplyPrimaryCta. Only the brand's owners and admins can change them. Confirm changes with the person first. Free. Needs the Pro…
ctas_create[writes flayr data · `write` scope] Adds a call to action written by the person, claims-checked, optionally tagged as a goal (goalKey; isPrimary makes it the brand's primary goal and demotes the previous one). Nothing here creates or runs an ad. Free. Needs the Pro plan or higher. (Wraps POST…
ctas_generate[writes flayr data · `write` scope] Writes a batch of draft calls to action for the confirmed offers, claims-checked against where they point. Charges Embers once per call (refunded when nothing usable comes back). Needs the Pro plan or higher. (Wraps POST /api/v2/hook-studio/ctas/generate.)
ctas_list[read-only] The brand's CTA bank (filter by status: draft, approved, retired), with each CTA's goal (goalKey, isPrimary, paidEligible, adButton) and claims result. Free. Needs the Pro plan or higher. (Wraps GET /api/v2/hook-studio/ctas.)
ctas_update[writes flayr data · `write` scope] Edits a CTA, its status or its goal fields (goalKey, isPrimary, paidEligible, adButton). New copy or a new destination is claims-checked again; a CTA whose claims block cannot be approved. Free. Needs the Pro plan or higher. (Wraps PATCH…
decide_approval[PUBLISHES to social accounts · `publish` scope] Same rules as the dashboard: only the assigned approver may decide. On a "workflow" approval, decision "approve" resumes the parked run, whose next steps may publish (GOES LIVE); "reject" cancels it. On a "manual" approval, "approve" only marks the…
decide_approval_group[PUBLISHES to social accounts · `publish` scope] Decides several variants of a group from list_approval_groups at once, each as decide_approval would: `members` "all" (open variants), an array of approvalIds, or {axis: value} (e.g. {"audio":"voice"}). "approve" marks them approved (a manual…
decide_campaign_review_section[PUBLISHES to social accounts · `publish` scope] action "approve" approves the section's pending pieces (or pieceIds) and their held posts GO LIVE at their slots — needs the explicit `review` scope (admin does not include it); QA-failed pieces are skipped unless overrideQa. "fix" sends the pieces…
decide_review[PUBLISHES to social accounts · `publish` scope] decision "approve" sends a held post to the platform for its slot (GOES LIVE) — needs the explicit `review` scope (admin does not include it) and never works on a post the same connection created. decision "hold" takes a scheduled post off the…
delete_content[DESTRUCTIVE] DESTRUCTIVE: permanently deletes a content item from the library. Posts already live on a platform are not removed. Needs the `write` scope. Ask the user before calling. (Wraps DELETE /api/v2/content/{id}.)
delete_experiment[DESTRUCTIVE] DESTRUCTIVE: deletes the experiment record (content keeps its labels). Ask the user before calling. (Wraps DELETE /api/v2/experiments/{id}.)
delete_growth_trigger[DESTRUCTIVE] DESTRUCTIVE: deletes a trigger (its logs stay). Ask the user before calling. (Wraps DELETE /api/v2/growth-triggers/{id}.)
delete_queue[DESTRUCTIVE] DESTRUCTIVE: deletes the queue (its drafts stay in the library). With posts booked at the platform it is refused (409) unless `unschedule: true`, which first deletes those platform posts. Needs the `publish` scope (or admin) on the Agency plan or higher. Ask the user before…
delete_text_template[DESTRUCTIVE] DESTRUCTIVE: deletes a format (drafts started from it keep their text). Ask the user before calling. (Wraps DELETE /api/v2/text-templates/{id}.)
edit_post_labels[writes flayr data · `write` scope] Sets internal post labels and per-platform/account instanceLabels. Omitted sets stay unchanged; [] clears a set; labelMode set replaces both sets, add appends atomically. Use get_post to list both. Works after booking and publishing, and never contacts social…
get_analytics[read-only] Engagement overview for the last 7, 30 or 90 days. Pro plan or higher. (Wraps GET /api/v2/analytics.)
get_campaign_review[read-only] A campaign's pieces grouped into review sections (episode, week, channel set, variant group or the creator's own). Each piece has preview URLs (video / images / audio), caption, labels, its bookings (channels, time, review state) and QA checks; each section has its status, round and…

And 62 more tools.

In its maker's words

Create, schedule and publish social posts to 13 platforms for your brands.

Website
flayr.social
Publisher
flayr.social
Listed from
the official MCP Registry as social.flayr/flayr
Version
1.2.0, updated 29 Oct 2026
Kinds of work
Sales and marketing, Images, video and audio

The domain it lives on

flayr.social
registered 31 Mar 2026 (7 months ago), at NAMECHEAP INC, its name does not resolve now

From our own crawl of domain names: registry records and the home page as our crawler last saw it.

Every call we made

WhenWhat happenedTime
Answered2546 ms
Answered2427 ms
Answered1317 ms

Next door

Is this your bot? Claim its address to add a verified badge and keep the listing current.