Tool reference
51 tools, and what each one does.
Every tool the MCP server registers, grouped by the scope a key needs to
call it. The same names are the HTTP path segments — POST /agent/v1/<tool> — so this list is the full API surface too.
How they compose
Import, create, schedule
Almost every useful sequence is the same three beats. Get the raw
material into the library, turn it into a finished piece of content,
then put that content on a calendar. The tools chain by handing you an
id: an imageId becomes a slide, a videoId becomes a post.
The middle beat is often asynchronous. Renders, imports, and AI
generation return immediately with a status, and you poll get_slideshow, get_creation, or get_video until it's done. Each summary below says when that applies.
# import → create → schedule
import_image_from_url → imageId
create_slideshow → slideshowId, "rendering"
get_slideshow → poll until "ready"
publish_slideshow → postIds (or review items)
# the video equivalent
get_video_upload_url → uploadUrl, fileId
register_uploaded_video→ videoId
schedule_post → postId + idempotencyKey read · 25 tools
Reading the workspace
Nothing here changes state. This is the scope an agent needs to answer questions — what's in the libraries, what's queued, what's performing, and what competitors are doing.
In-app, this scope reads: List content, posts, accounts, and analytics
| Tool | What it does |
|---|---|
whoami | Who the key acts as, which organizations it can work in, and its scopes — plus the selected workspace's overview. Call it first to orient. |
list_social_accounts | Connected TikTok / Instagram / YouTube accounts with connection health: status, token expiry, and last error. |
list_videos | The video library, newest first. Videos with status 'completed' are publishable; 'generating' clips are still rendering. |
get_video | One library video in detail — status, signed URLs, duration, and generation provenance. Poll it for generate_video jobs. |
list_video_groups | Video groups — shuffle rotations that pre-schedule a visible queue of posts — with video/account counts and status. |
get_video_group | One group in detail: its videos and the per-account posting rules, next scheduled post, and current queue depth. |
list_images | List or hybrid-semantic-search the workspace image library. Check here before generating or re-uploading — reuse is free and instant. |
list_characters | Saved characters — reusable named subjects used to generate on-model images that look like the same person across scenes. |
list_hooks | The shared hook video library — short vertical clips meant to open a short-form video. Shared platform-wide, not per-workspace. |
list_green_screens | The shared green screen clip library — people cut out on green, composited over a background by create_video. |
list_backgrounds | The shared background image library used behind green screen memes. |
list_music | The platform music library — background tracks you can lay over a hook + demo video. |
get_creation | Render status of a create_video job. Poll until 'completed', then publish the returned resultVideoId. |
list_slideshows | Photo-carousel slideshows with status ('draft' or 'ready') and a signed cover thumbnail. |
list_slideshow_templates | Slideshow layout templates: canvas size, each text slot's exact geometry, defaults, fonts, and treatments. |
get_slideshow | One slideshow in full detail — per-slide render state, every text field's style overrides, and signed image URLs. |
list_posts | Posts across every status: review drafts, rejected, scheduled, publishing, published, failed, and canceled. |
list_reviews | Posts waiting for team review, with approval status, reviewer notes, target account, and planned publish time. |
get_post_metrics | Engagement for one published post: the latest views/likes/comments/shares snapshot plus the scraped time series. |
get_account_metrics | Follower and profile growth history (daily snapshots) for one connected account, or every account at once. |
get_engagement_summary | Engagement overview for the last N days: totals, per-platform breakdown, top posts, and a per-account breakdown. |
list_inspirations | Saved inspirations — external posts Post Ripple auto-analyzes into a reusable recreation recipe. |
get_inspiration | One inspiration in full detail, including the complete AI deconstruction: hook, shots, subjects, audio, and a recreation brief. |
list_tracked_accounts | Tracked external accounts this workspace polls, with status, followers, median views, and last poll time. |
list_tracked_posts | The 'what's working for competitors' feed — recent posts from tracked accounts, ranked by outlier score or recency. |
content:write · 20 tools
Making the content
Uploads, imports, AI generation, renders, and rotation groups. This scope can't put a post on an account or wire a rotation to one — that needs publish. It isn't inert, though: adding videos to a rotation that's already wired up re-rolls which videos it will publish, and when.
In-app, this scope reads: Create and organize videos, groups, and content
| Tool | What it does |
|---|---|
import_video_from_url | Import a video into the library from a public URL. The download is asynchronous — poll list_videos until 'completed'. |
get_video_upload_url | Get a presigned upload URL for pushing a local video file into the library. |
register_uploaded_video | Register a video after PUTting its bytes to a presigned URL. The video becomes immediately publishable. |
create_video_group | Create a video group (a shuffle rotation). Uses one 'groups' credit from the plan. |
add_videos_to_group | Add up to 100 library videos to a group's rotation, reporting which were added and which were skipped. |
get_image_upload_url | Get a presigned upload URL for pushing an image into the library. JPEG at 1080×1350 strongly recommended. |
register_uploaded_image | Register an uploaded image into the workspace library with a title and tags, so it's findable and reusable later. |
import_image_from_url | Import an image from a public URL — synchronous, so the returned imageId is immediately usable in create_slideshow. |
generate_character_image | Generate a new AI image and save it to the library, optionally rendering a saved character on-model. Synchronous, ~10–30s. |
generate_video | Generate a new ~5s vertical AI clip from a prompt, character, or reference image. Asynchronous (~30–60s) — poll get_video. |
save_inspiration | Save an external post URL as an inspiration. Kicks off an async scrape → download → deconstruction pipeline. |
track_account | Start tracking an external public account so its recent posts land in the 'what's working' feed. Up to 10 per workspace. |
untrack_account | Stop tracking an account and delete its polled posts. Inspirations you already saved from it survive. |
save_tracked_post_as_inspiration | Save a tracked post into the inspirations library so it gets deconstructed and becomes recreatable. |
recreate_inspiration | Recreate a 'ready' inspiration as your own draft — 'person_swap', 'video', or 'slideshow'. Nothing is published. |
replace_person_in_video | Swap the person in any completed library video for a saved character, preserving motion, scene, and audio. Async, ~5–10 min. |
update_image | Update a library image's title, description, or tags — usually to make an older image easier to rediscover. |
delete_image | Delete a library image and its stored file. Images still in use are reported back instead, unless you force it. |
create_slideshow | Create a photo slideshow of 1–10 slides from library images, pre-rendered files, or template slides rendered server-side. |
create_video | Render a 9:16 video from library ingredients — 'text_over_video' (timed text beats over your own clip), 'hook_demo', or 'green_screen_meme'. Asynchronous — poll get_creation. |
publish · 6 tools
Reaching the feed
Six tools. Two of them put content on a real account — schedule_post and publish_slideshow. Three more reschedule, swap the video on, or cancel a post that's already queued. The last, update_group_schedule, wires a rotation group to an account: an auto-publishing queue that keeps posting on its own cadence. This scope is off by default when you create a key.
In-app, this scope reads: Schedule and cancel posts to connected social accounts, and manage rotation-group schedules
| Tool | What it does |
|---|---|
schedule_post | Schedule a completed library video to publish on a connected account at a future time. Always pass idempotencyKey. |
reschedule_post | Move a still-scheduled post to a new future time. Fails once publishing has started. |
swap_post_video | Replace the video on a still-scheduled video post with any completed library video. |
publish_slideshow | Publish or schedule a ready slideshow to one or more Instagram/TikTok accounts as a native carousel or photo post. |
cancel_post | Cancel a still-scheduled post and refund its credit. Fails once publishing has started. |
update_group_schedule | Attach a social account to a rotation group or update its posting rules: posts per day, active/paused, and posting windows. The pair then auto-publishes on that cadence. |
Worth knowing
Four things that bite once
Poll, don't assume
Imports, renders, and AI generation come back before the work is
finished. Poll get_video, get_creation, get_slideshow, or get_inspiration until the status says it's ready. Scheduling something that isn't
finished fails.
Always send an idempotency key
schedule_post and publish_slideshow take an idempotencyKey. Any unique string works, and it's the only thing that makes a
retry safe on a tool that reaches a real account.
Search the library first
list_images runs hybrid semantic search over captions, tags, and prompts, so a
plain description finds what's already there. Reusing an existing
image costs nothing; generating a new one spends a credit.
TikTok defaults to private
A TikTok post published without tiktokSettings goes out as SELF_ONLY. Pass the settings object to make it public, or use postMode: "inbox" to drop a draft into the account's TikTok app instead.
Hand the list to your agent.
Create a scoped key and every tool above is one call away. Every paid plan includes Agent API and MCP access.