73trust / 100

flayr

by flayr.social in News & content

MCP serverPassing, checked 2 h ago

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

https://flayr.social/api/mcp
Tools
129
open to any client
Uptime
100%
last 30 days
Response time
1.4 s
3.5 s slowest 5%
Last check
Passed
2 h ago, next in 4 h

Scan it nowHow to connect

Reliability

All checks passedSome failedAll failedNot checked

Status and outage history · Atom feed · Watch with other listings

How to connect

Add it to any MCP client that supports remote servers.

{
  "mcpServers": {
    "flayr": {
      "type": "http",
      "url": "https://flayr.social/api/mcp"
    }
  }
}

129 tools

  • media_qa_get

    [read-only] Reads the cached video/audio QA report, timestamped findings and approval/booking gate. Missing or failed QA blocks. API keys cannot override. (Wraps GET /api/v2/content/{id}/qa.)

  • media_qa_rerun

    [writes flayr data · `write` scope] Queues a free media QA run using the existing per-minute cap. Poll media_qa_get. Does not approve, book or override. (Wraps POST /api/v2/content/{id}/qa/rerun.)

  • whoami

    [read-only] Returns 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). Call this first to learn what the connection can reach. (Wraps GET…

  • list_brands

    [read-only] Lists the brands this connection can file content into and publish through. Use an `id` as `brandId` on create_content, publish, queues and analytics tools; "personal" means the account owner's personal accounts. A connection bound to one brand sees only that brand…

  • 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…

  • list_connected_accounts

    [read-only] The 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…

  • 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…

  • list_youtube_playlists

    [read-only] Playlists of the YouTube channel(s) a brand publishes to. Use a playlist id as `youtube.playlistId` on create_content or publish. (Wraps GET /api/v2/youtube/playlists.)

  • list_pinterest_boards

    [read-only] Boards of the Pinterest account(s) a brand publishes to. Use a board id as `pinterest.boardId` on publish. A board is required; the one you pick is remembered as the brand's default for next time, and a publish that uses the default says so (defaultBoardApplied)…

  • suggest_tags

    [read-only] Hashtag and @mention suggestions for each platform, from the brand's own config: hashtags from its brand profile's hashtag sets (within each platform's limit, skipping ones already in `text`), mentions from its mention contacts written the way each network receives…

  • upload_media

    [writes flayr data · `write` scope] Step 1 of attaching a LOCAL file (video or image) to a draft. Returns a single-use, short-lived `uploadUrl`. Step 2: POST the raw file bytes to it with the file's Content-Type, e.g. `curl -X POST -H "Content-Type: video/mp4" --data-binary…

  • list_content

    [read-only] Lists content items (drafts), newest first. Each carries `postState` ("posted" / "scheduled" / null) and `posts[]` (up to 5): where it went out, per platform, with status, live URL and failure reason. (Wraps GET /api/v2/content.)

  • get_content

    [read-only] One 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. The…

  • 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…

  • 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…

  • update_content

    [writes flayr data · `write` scope] Edits a draft in place; only the fields you pass change. Any media field replaces the draft's media as a set (keeps the id, so queue items still point at it). Refused (409) for archived or already-published items, and a media swap is refused…

  • labels_bulk_edit

    [writes flayr data · `write` scope] Adds and/or removes labels on up to 100 content items in one call: each item becomes (labels − remove) + add. Published items are fine (labels are metadata). Each item succeeds or fails on its own; read `results`. Removing…

  • 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}.)

  • 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…

  • get_job_status

    [read-only] Status of an async job (combine_clips, render_motion_ad, or an API video generation): pending, processing, completed or failed. For a combine or a motion ad, `resultContentId` is the new draft once completed; a failed combine is refunded automatically. Poll every…

  • render_motion_ad

    [writes flayr data · `write` scope] Turns one Library image (the card) into a 6-15 s motion ad: hook (push-in on the card), up to 3 body beats (pans with the text), then a CTA end card in the brand color with the CTA and the link host. 9:16 unless `aspect` is 1:1 or 16:9. The…

  • plan_teardown

    [read-only] Teardown Studio: send a 3D model (`model`, base64 STL, 3MF or GLB, up to 3 MB inline) and get its parts list, a default teardown/1 plan (hold, explode, label the biggest parts, slow-motion, reassemble, reveal, brand end card; 16:9 and 9:16) built from part count and…

  • 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…

  • publish

    [PUBLISHES to social accounts · `publish` scope] PUBLISHES TO REAL SOCIAL ACCOUNTS. Posts now, or at `scheduledAt` (ISO-8601, future). Prefer `contentId` (a draft from create_content: its text and media become the post) over inline `content`. The post goes out through the target…

  • get_post

    [read-only] A post (`id` = convexPostId from publish, or posts[].id from get_content): status, slot, platforms, its internal labels and per-platform/account instanceLabels, and while it is scheduled the first comment each platform will publish and whether it can be changed now…

  • update_scheduled_post

    [PUBLISHES to social accounts · `publish` scope] CHANGES WHAT A SCHEDULED POST WILL PUBLISH on real accounts, keeping its slot, accounts, options, labels and draft. `firstComment` sets per-platform first comments (linkedin, facebook, instagram, threads, youtube; null removes…

  • reschedule_post

    [PUBLISHES to social accounts · `publish` scope] MOVES A SCHEDULED POST to `scheduledAt` (ISO 8601 with a timezone, e.g. "2026-11-19T15:00:00Z"; more than 5 minutes ahead). The booking keeps its id, caption, media, accounts and options; its posting-queue slot follows. Returns {…

  • 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…

  • list_reviews

    [read-only] Scheduled posts waiting for (or given) a human sign-off, oldest slot first. `canApprove` tells whether THIS connection may approve each one. (Wraps GET /api/v2/reviews.)

  • 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…

  • move_reviews

    [writes flayr data · `write` scope] Moves one or many posts held for review ("move to Tuesday 10:00", "+1 day"). Moving never approves and nothing goes live. A post already booked at the platform answers vendor_booked; use update_scheduled_post. Needs `review` or `publish`…

  • move_approvals

    [writes flayr data · `write` scope] Moves the planned time of one or many items waiting for approval. Moving never approves and books nothing. Needs the explicit `approve` scope (admin does not include it). Agency plan. (Wraps POST /api/v2/approvals/move.)

  • list_approvals

    [read-only] Content 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. `kind` is "manual" or "workflow". With status "rejected"…

  • decide_approval

    [PUBLISHES to social accounts · `publish` scope] Same rules as the dashboard: the assigned approver, or an owner/admin of the org, may decide. On a "workflow" approval, decision "approve" resumes the parked run, whose next steps may publish (GOES LIVE); "reject" cancels it. On a…

  • list_approval_groups

    [read-only] The same held content as list_approvals, grouped by piece: the variants of one draft (or sharing a `group:<id>` label), with the axes they vary on (theme, hook, audio …), a tally (approved / redo / dropped / open) and each variant's state and slot time. `status` open…

  • 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…

  • list_queues

    [read-only] Posting (drip) queues of one brand. A queue posts one item every cadenceHours at timeOfDay in its timezone, keeping `lookahead` items booked at the platform. (Wraps GET /api/v2/queues.)

  • get_queue

    [read-only] A queue and its items in order, with each item's state (queued · publishing · scheduled · posted · failed · skipped), booked or projected slot, and attribution status. (Wraps GET /api/v2/queues/{id}.)

  • 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`…

Security scan

No findings

We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTime
2 h agoPassed2001.5 s
14 h agoPassed2001.3 s
25 h agoPassed2003.9 s
37 h agoPassed200966 ms
2 days agoPassed2001.6 s
Show 10 older checks
3 days agoPassed200769 ms
3 days agoPassed2001.5 s
3 days agoPassed2001.4 s
4 days agoPassed2003.2 s
5 days agoPassed2001.4 s
5 days agoPassed2001.2 s
6 days agoPassed200639 ms
6 days agoPassed200457 ms
7 days agoPassed2001.4 s
8 days agoPassed2001.1 s