Skip to main content
Glama

RipClip

Server Details

Clip long videos, open clips in the editor, draft posts and track views in your RipClip account.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP ยท MCP 2025-11-25
URL
ChatGPT
โ€“
Claude
โ€“

TDQS

Score is being calculated.

Available Tools

44 tools
add_to_clipAdd to a clip
Destructive
Inspect

Use this when the user wants to put text, a sticker, a sound or B-roll on a clip: "add a title that says NO WAY", "a fire emoji on the punchline", "a whoosh at 4 seconds", "find me B-roll for this line". clip_id comes from list_clips; times are seconds into the clip. Text: text (each line of a multi-line style on its own line), text_style (a title, lower third or subscribe style), text_effect (neon, gradient, 3D), text_animation (how it comes in), text_loop, text_color, text_size, text_position top / middle / bottom, text_start_seconds and text_end_seconds (0 = 3 s from the start). Sticker: sticker (a name, an id or the emoji itself), sticker_at_seconds, sticker_seconds (default 2), sticker_position, sticker_size. Sound effect: sound_effect at sound_at_seconds. Names come from edit_catalog. B-roll (stock footage, Premium, in a call of its own): broll_line (words the speaker says) or broll_at_seconds, broll_search (what it shows; empty = from that line), broll_seconds 1.5-8, broll_layout top / bottom (the half it fills, the speaker on the other). Not for: the clip's own captions (style_clip, edit_clip), background music (edit_clip) or subtitles in another language (translate_captions). Saved as an undoable version; the clip's video is replaced by the new render. Costs no Horizon Units. Returns job_id: poll job_status, then preview_frame.

NameRequiredDescriptionDefault
textNo
clip_idYes
stickerNo
text_loopNo
text_sizeNo
broll_lineNo
text_colorNo
text_styleNo
text_effectNo
broll_layoutNotop
broll_searchNo
sound_effectNo
sticker_sizeNo
broll_secondsNo
text_positionNo
text_animationNo
sticker_secondsNo
broll_at_secondsNo
sound_at_secondsNo
sticker_positionNo
text_end_secondsNo
sticker_at_secondsNo
text_start_secondsNo

Output Schema

NameRequiredDescription
nextYes
notesYes
job_idYes
statusYes
changedYes
clip_idYes
editor_urlYes
estimated_huNo
voiceover_job_idNo
adjust_lookAdjust light and color
Idempotent
Inspect

Use this when the user wants the light or color of a clip or photo changed: "brighten this photo", "it's too dark", "make it warmer", "more punch", "black and white", "make the sky bluer". clip_id: from list_clips (kind photo for photos). Set values, not steps: exposure -2 to 2 (stops); brightness, contrast 0.5-1.5 and saturation 0-2 (1 = as is, saturation 0 = black and white); highlights, shadows, whites, blacks, tint, vibrance, clarity, dehaze -1 to 1; warmth -1 (cool) to 1 (warm); hue -180 to 180; sharpen, vignette, grain, fade 0-1 (0 = as is). One color band: color (red, orange, yellow, green, cyan, blue, purple, magenta) with color_hue, color_saturation, color_lightness -1 to 1. Guide: brighter = exposure 0.3; a dark photo = exposure 0.5 + shadows 0.4; warmer = warmth 0.3; punchier = contrast 1.15 + vibrance 0.2; moody = contrast 1.2 + saturation 0.8 + vignette 0.3; vintage = fade 0.3 + grain 0.2 + warmth 0.2; bluer sky = color blue + color_saturation 0.3. start_seconds / end_seconds: only that part of a clip. reset=true sets light and color back to neutral first. The answer's notes give the look now, so "a bit more" adds to it. Not for: filter looks and effects (style_clip) or crop and zoom (frame_clip). Saved as an undoable version (undo_edit). Costs no Horizon Units. Returns job_id: poll job_status, then preview_frame.

NameRequiredDescriptionDefault
hueNo
fadeNo
tintNo
colorNo
grainNo
resetNo
blacksNo
dehazeNo
warmthNo
whitesNo
clarityNo
clip_idYes
shadowsNo
sharpenNo
contrastNo
exposureNo
vibranceNo
vignetteNo
color_hueNo
brightnessNo
highlightsNo
saturationNo
end_secondsNo
start_secondsNo
color_lightnessNo
color_saturationNo

Output Schema

NameRequiredDescription
nextYes
notesYes
job_idYes
statusYes
changedYes
clip_idYes
editor_urlYes
estimated_huNo
voiceover_job_idNo
best_time_to_postBest time to post
Read-onlyIdempotent
Inspect

Use this when the user wants to know when to post: "best time to post on TikTok", "when should I upload my Shorts", "which day gets me the most views". Answers from the user's own posts, not general advice: average views 24 hours after posting by weekday and 4-hour block. timezone: an IANA name such as America/Chicago (default UTC). platform: one platform or all. Needs 5 posted posts that have a day of views; below that it says how many there are and how to test. An estimate from past posts. Not for: drafting posts at those times (plan_posts), scheduling one post (draft_post) or a full recap (weekly_report). Free and read only; it schedules nothing.

NameRequiredDescriptionDefault
platformNoall
timezoneNoUTC

Output Schema

NameRequiredDescription
bestYes
readyYes
slotsYes
methodYes
platformYes
timezoneYes
next_stepYes
sample_postsYes
minimum_postsYes
clip_rangeClip a time range
Idempotent
Inspect

Use this when the user wants ONE clip of an exact stretch of a video: "clip 1:02:10 to 1:03:00" (3730 to 3780 seconds), "make a short from that moment", or a match from get_moments. Makes one captioned vertical clip of exactly start_seconds to end_seconds (3 seconds to 5 minutes) of project_id (from list_projects), uncut. clipping_preset (id or name from list_clipping_presets) applies a saved look; left empty, the user's default preset applies, "none" for RipClip's standard look. Not for: letting RipClip pick several highlights (find_clips), searching a topic (find_moments) or changing a finished clip (edit_clip). Spends Horizon Units for just those minutes: call estimate_hu with the same range as range_start / range_end first, show the number and pass the approved amount as max_hu (a higher cost is refused; a failed job gives it back). request_key: any stable string, reused only to retry. Returns job_id; poll job_status, then list_clips.

NameRequiredDescriptionDefault
max_huYes
project_idYes
end_secondsYes
request_keyYes
start_secondsYes
clipping_presetNo

Output Schema

NameRequiredDescription
job_idYes
statusYes
status_urlYes
reserved_huYes
results_urlYes
compare_platformsCompare platformsA
Read-onlyIdempotent
Inspect

Use this when the user wants platforms side by side: "which platform got the most views for this clip", "TikTok vs Shorts vs Reels this month", "where do my clips perform". clip_id: that clip everywhere it was posted; empty = all posts of the last days (default 30, up to 90). Per platform: number of posts, average views after 1 hour, 24 hours and 7 days, the newest likes, comments, shares and saves the platform sent (null when it sends none), and what that platform counts as a view. Platforms count views differently: compare each against its own history and do not add them up. Not for: individual posts (get_post_stats), the weekly recap (weekly_report) or posting hours (best_time_to_post). Free and read only; covers posts RipClip published.

NameRequiredDescriptionDefault
daysNo
clip_idNo

Output Schema

NameRequiredDescription
noteYes
scopeYes
clip_idYes
platformsYes
period_daysYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, closed-world), and the description adds materially above that: cost ('Free'), data scope ('covers posts RipClip published'), the exact metrics returned per platform, and a genuine analytical caveat that platforms count views differently so results must not be summed. That caveat is behavioral guidance an agent could not derive from annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with use cases, then params, then return shape, then the comparability caveat, then exclusions โ€” a sensible order with no filler. It is dense and quote-heavy, and the parameter sentence runs long mid-paragraph, but each sentence carries real information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, read-only analytics tool with an output schema, the definition covers scope, defaults, limits, per-platform return concepts, a cross-platform interpretation warning, and sibling exclusions. There is no ambiguity left that would cause a wrong call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the load and it does: clip_id is explained as 'that clip everywhere it was posted, empty = all posts', and days is given a default of 30 with an explicit ceiling of 90. Both parameters gain meaning that is absent from the bare integer/string schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a concrete verb+resource (platforms side by side) and immediately grounds it in the exact user phrasings it answers ("which platform got the most views", "TikTok vs Shorts vs Reels this month"). This makes it trivially distinguishable from get_post_stats, weekly_report and best_time_to_post, which are named later.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides both when-to-use (side-by-side platform comparison, per-platform view questions) and an explicit 'Not for:' clause routing the agent to get_post_stats for individual posts, weekly_report for the recap, and best_time_to_post for posting hours. Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_draftDelete a draft
DestructiveIdempotent
Inspect

Use this when the user wants to remove a draft post: "scrap that draft", "delete the TikTok draft". post_id comes from get_post_stats with status "draft". Moves the draft to Deleted posts in the RipClip planner, where the user can restore it for 30 days. Not for: scheduled or posted posts (refused), anything on a social network (nothing there is touched), clips or source videos (it never deletes those), or editing a draft (update_draft). Free.

NameRequiredDescriptionDefault
post_idYes

Output Schema

NameRequiredDescription
noteYes
deletedYes
post_idYes
platformYes
restorable_daysYes
draft_postDraft a postInspect

Use this when the user wants to put one clip on their posting calendar: "schedule this clip for Friday", "post this to TikTok tonight", "put it on Shorts and Reels". RipClip saves a DRAFT; it never publishes or schedules on its own. platform: tiktok, youtube, instagram, facebook, threads or bluesky ("Shorts", "Reels", "IG" also work; X is coming soon). clip_id: from list_clips. caption: the post text, up to 2,200 characters. scheduled_at (optional): ISO 8601 with its offset, e.g. 2026-10-24T18:00:00-05:00. account_id (optional): from list_social_accounts. One call per platform. Returns review_url: tell the user to open it, check the draft and schedule it in RipClip. Not for: writing caption options first (write_captions), drafting a whole week in one call (plan_posts), changing an existing draft (update_draft), or publishing right now (no tool here publishes). Free.

NameRequiredDescriptionDefault
captionNo
clip_idYes
platformYes
account_idNo
scheduled_atNo

Output Schema

NameRequiredDescription
noteYes
statusYes
post_idYes
platformYes
review_urlYes
scheduled_atYes
edit_catalogEdit catalog
Read-onlyIdempotent
Inspect

Use this when the user wants to know what the editor offers before changing a clip: "which caption styles are there", "what effects can I add", "any glitch transitions", "a sound effect for a big moment", "what fonts". kind is one of caption_templates, fonts, caption_animations, effects, transitions, filters (color looks), text_styles (titles, lower thirds, subscribe buttons), text_effects (neon, gradient, 3D), text_animations, stickers, sounds (sound effects), music (moods), formats, shapes (output shapes), templates (the user's saved styles and the starters, for "edit it like last time"). query narrows by a word from a name or group; limit up to 300 (default 100). The names and ids it returns are what style_clip, add_to_clip and edit_clip take; each item has a premium flag. Not for: changing a clip (style_clip, add_to_clip, edit_clip), the user's own clips (list_clips) or saved clipping presets (list_clipping_presets). Free and read only.

NameRequiredDescriptionDefault
kindYes
limitNo
queryNo

Output Schema

NameRequiredDescription
kindYes
noteYes
countYes
itemsYes
kindsYes
totalYes
edit_clipEdit a clip
Destructive
Inspect

Use this when the user wants an everyday change to a clip they already have: "make the captions bigger and yellow", "cut the silences", "remove the ums", "add chill music", "put a title on it", "split my facecam", "trim the start". clip_id: from list_clips or a finished job. Set only what was asked: caption_size small / medium / large / x-large (or 10-100); caption_color, highlight_color (name or hex); caption_position auto / top / middle / bottom; caption_animation (bounce, pop, fade, none...); uppercase; remove_silences (pauses of min_pause_seconds or more, default 0.6); remove_filler_words; music (featured, phonk, hiphop, vlog, funny, chill, epic, upbeat, electronic, calm, acoustic, gaming, sad, or off) with music_volume quiet / normal / loud; hook_title (text at the top, or off); layout standard or facecam_split; auto_zoom; emojis; trim_start_seconds, trim_end_seconds. Not for: caption fonts or templates, filters, effects, transitions, speed or shape (style_clip), text, sticker or sound-effect overlays (add_to_clip), subtitles in another language (translate_captions), or cutting new clips from a long video (find_clips). The previous version stays in the editor's undo history; the clip's video is replaced by the new render. Costs no Horizon Units. Returns job_id; poll job_status, then preview_frame or get_download_link. Options the account can't use are refused by name before anything changes.

NameRequiredDescriptionDefault
musicNo
emojisNo
layoutNo
clip_idYes
auto_zoomNo
uppercaseNo
hook_titleNo
caption_sizeNo
music_volumeNo
caption_colorNo
highlight_colorNo
remove_silencesNo
caption_positionNo
trim_end_secondsNo
caption_animationNo
min_pause_secondsNo
trim_start_secondsNo
remove_filler_wordsNo

Output Schema

NameRequiredDescription
nextYes
notesYes
job_idYes
statusYes
changedYes
clip_idYes
editor_urlYes
estimate_huEstimate Horizon Units
Idempotent
Inspect

Use this when the user wants to know what clipping a video will cost before anything runs: "how much will it take to clip this stream", "what will that use". Returns the Horizon Units (HU) that find_clips, find_moments or clip_range would spend on project_id: the whole video, or only range_start to range_end in seconds (0 and 0 = the whole video), with the minutes it covers. Spends and reserves nothing; it saves a 24-hour retry record for request_key (any stable string). Show the number to the user and wait for their approval, then pass the approved number as max_hu to the tool that spends. Not for: starting the job (find_clips, find_moments, clip_range) or pricing an edit (edits cost no HU). Free.

NameRequiredDescriptionDefault
range_endNo
project_idYes
range_startNo
request_keyYes

Output Schema

NameRequiredDescription
huYes
processed_minutesYes
explain_clipsExplain clips
Read-onlyIdempotent
Inspect

Use this when the user wants to know which clip to post first or why a clip was picked: "which clip should I post first", "why did you pick this one", "rank my clips". Pass clip_ids (from list_clips, up to 20) or the job_id of a finished clip job. Per clip: title, RipClip's score (0-1) and rank within its batch, the reasons it was picked, what is said in it (transcript), where it sits in the original video (seconds), its length, the post caption and hashtags if RipClip wrote them, and a one-line why_it_should_work built only from those facts. The score ranks clips against each other; it is not a forecast of views, so do not present it as one. Not for: listing clips (list_clips), watching them (show_clips) or results after posting (get_post_stats, why_it_worked). Free and read only.

NameRequiredDescriptionDefault
job_idNo
clip_idsNo

Output Schema

NameRequiredDescription
noteYes
clipsYes
fetchFetch RipClip document
Read-onlyIdempotent
Inspect

Use this when the user wants the details of one project or clip that search found. id: the id from a search result, e.g. "projects:abc123" or "library:abc123". Returns the title, a url and the item's metadata (name or title, source project, start and end seconds, length). Not for: downloading the video (get_download_link), listing many items (list_projects, list_clips) or why a clip was picked (explain_clips). Free and read only.

NameRequiredDescriptionDefault
idYes

Output Schema

NameRequiredDescription
idYes
urlYes
textYes
titleYes
metadataYes
find_clipsFind clips
Idempotent
Inspect

Use this when the user wants clips cut from a long video: "find the highlights in my stream", "turn my VOD into TikToks", "clip the funny moments". It picks the moments that stand on their own and cuts each into a vertical 9:16 clip framed on the speaker with word-by-word captions. project_id: from list_projects. count: how many clips (1-10, default 5). range_start / range_end: seconds, to clip only part of the video (0 = all). topic: words that must be spoken ("only the new game"; for a search by meaning use find_moments). min_seconds / max_seconds: clip length (default 20 to 45). clipping_preset: a saved look, id or name (list_clipping_presets); left empty, the user's default preset applies, "none" for RipClip's standard look. Switches, off unless asked: remove_filler_words, remove_pauses, remove_bad_takes, highlight_keywords, auto_emojis, auto_zoom, stock_broll, auto_transitions, hook_first_version (one extra clip opening on its strongest seconds), ai_titles (title, post caption, hashtags per clip). An option the account can't use is refused by name. Not for: one exact stretch (clip_range), changing a finished clip (edit_clip, style_clip) or posting (draft_post). Spends Horizon Units: call estimate_hu first, tell the user the number, run this only after they approve and pass it as max_hu (a higher cost is refused; a failed job gives them back). request_key: any stable string, reused only to retry. Returns job_id; poll job_status, then list_clips or explain_clips.

NameRequiredDescriptionDefault
countNo
topicNo
max_huYes
ai_titlesNo
auto_zoomNo
range_endNo
project_idYes
auto_emojisNo
max_secondsNo
min_secondsNo
range_startNo
request_keyYes
stock_brollNo
remove_pausesNo
clipping_presetNo
auto_transitionsNo
remove_bad_takesNo
highlight_keywordsNo
hook_first_versionNo
remove_filler_wordsNo

Output Schema

NameRequiredDescription
job_idYes
statusYes
status_urlYes
reserved_huYes
results_urlYes
find_momentsFind moments
Idempotent
Inspect

Use this when the user wants to search a long video for a topic by meaning before clipping: "where do I talk about the new game", "find the funny bits", "when did chat go wild", "find the part about speedruns". project_id: from list_projects; topic: what to look for, in plain words. Returns job_id at once; when job_status says done, get_moments gives up to count matches (1-10, each min_seconds to max_seconds long, default 20 to 60) as time ranges with a quote. The user picks; clip_range cuts one, find_clips (with topic) cuts several. Not for: cutting clips straight away (find_clips, clip_range) or finding a video by its name (search). Spends Horizon Units, as much as reading the whole video: call estimate_hu for the same project first, show the number and pass the approved amount as max_hu (a higher cost is refused; a failed search gives it back). The same video analysed once is not charged again. request_key: any stable string, reused only to retry.

NameRequiredDescriptionDefault
countNo
topicYes
max_huYes
project_idYes
max_secondsNo
min_secondsNo
request_keyYes

Output Schema

NameRequiredDescription
job_idYes
statusYes
status_urlYes
reserved_huYes
results_urlYes
frame_clipFrame a clip or photo
Idempotent
Inspect

Use this when the user wants the picture framed differently in a clip or photo: "zoom in a bit", "show more of the left", "mirror it", "show the whole picture", "a black background, not the blur", "make it 1200 by 628". clip_id: from list_clips (kind photo for photos). zoom 1-4 (1 = no zoom); position_x and position_y 0-100, where the frame sits over the picture (0 = left / top, 50 = center); flip_horizontal, flip_vertical; fit: fill (fills the frame, edges cropped), whole (the whole picture with background around it) or a band shape 4:3, 1:1, 16:9, 9:16; background: blur or a color name or hex; blur_amount 1-120; custom_width with custom_height (240-4096 px) for a custom size. Not for: the standard shapes 9:16, 1:1, 4:5, 16:9 (style_clip output_shape), light and color (adjust_look) or a facecam split (edit_clip). Rotation is done in the RipClip editor. Saved as an undoable version (undo_edit). Costs no Horizon Units. Returns job_id: poll job_status, then preview_frame.

NameRequiredDescriptionDefault
fitNo
zoomNo
clip_idYes
backgroundNo
position_xNo
position_yNo
blur_amountNo
custom_widthNo
custom_heightNo
flip_verticalNo
flip_horizontalNo

Output Schema

NameRequiredDescription
nextYes
notesYes
job_idYes
statusYes
changedYes
clip_idYes
editor_urlYes
estimated_huNo
voiceover_job_idNo
get_account_statsGet account statsA
Read-onlyIdempotent
Inspect

Use this when the user wants follower numbers: "how many followers did I gain this week", "how is my TikTok account growing". Per connected account: the latest followers, following, likes and videos, the change over 7 days and a daily history, as of the last read (as_of). RipClip reads these for TikTok accounts only for now; other platforms say so. Takes no parameters. Not for: numbers of individual posts (get_post_stats) or platform against platform (compare_platforms). Free and read only.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
noteYes
accountsYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior, and the description goes further by disclosing the platform gap (TikTok-only for now, other platforms say so), the freshness semantic (as of the last read, as_of), and that the call is free. These are the kind of constraints an agent cannot derive from structured fields yet needs in order to set user expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the triggering intent in quotes, then payload, then exclusions, which is the right order. Slightly over-written in places, notably 'Free and read only', which restates the annotations rather than adding meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless read tool with an output schema and full annotations, the description covers the remaining gaps that matter: what entity the numbers belong to, the time window, staleness, and platform coverage. Nothing an agent needs in order to choose or call it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters the baseline is 4, and the description correctly and explicitly states 'Takes no parameters', removing any doubt about required arguments. There is nothing further to add beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (per connected account) and a specific set of metrics: latest followers, following, likes, videos, plus 7-day change and daily history. It also names its two nearest siblings by contrast, so an agent can distinguish it from get_post_stats and compare_platforms without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage guidance is explicit and both-sided: it opens with example user phrasings that should route here and closes with a 'Not for:' clause naming the exact alternatives for post-level and cross-platform questions. No inference is left about when to pick this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_momentsGet moments
Read-onlyIdempotent
Inspect

Use this when the user wants the results of a find_moments search: "what did it find", "show me the matches". Pass the job_id find_moments returned. Returns each match with start and end (seconds and h:mm:ss), a quote of what is said there and how well it matches the topic; while the search is still running it says so, so call again in a minute. Not for: starting a search (find_moments) or cutting a clip (clip_range). Free and read only.

NameRequiredDescriptionDefault
job_idYes

Output Schema

NameRequiredDescription
noteYes
topicYes
job_idYes
statusYes
momentsYes
project_idYes
get_post_statsGet post stats
Read-onlyIdempotent
Inspect

Use this when the user wants the numbers for their posts: "how are my clips doing", "which TikTok took off", "how many views did my Short get", "show my scheduled posts". Returns per post the platform, status, post URL, caption, clip title, the latest views, likes, comments, shares and saves the platform sent (null = the platform sends no such count) and views at 1 hour, 24 hours and 7 days. platform: tiktok, youtube, instagram, ... or all (default). status filters draft, scheduled, posted or failed (empty = all; status "draft" lists the post_id that update_draft and delete_draft take). limit 1-50, newest first. Covers posts RipClip published or planned. Not for: a recap of the week (weekly_report), platform against platform (compare_platforms), what is growing fast (whats_taking_off) or follower counts (get_account_stats). Free and read only.

NameRequiredDescriptionDefault
limitNo
statusNo
platformNoall

Output Schema

NameRequiredDescription
noteYes
postsYes
totalYes
import_photoImport a photoInspect

Use this when the user wants a photo or picture brought into RipClip to edit it: "brighten this photo", "edit my picture", "fix the colors on this image". url: a direct https link to a .jpg, .png or .webp picture, or a Google Drive, Dropbox or OneDrive share link open to anyone with the link. file: a picture the user attached, where the assistant passes attached files to tools. Up to 24 MB; kept at its own size. Returns job_id; poll job_status, whose clip_ids then holds the photo's id for adjust_look, frame_clip, style_clip, add_to_clip, preview_frame and get_download_link (the edited picture). Not for: videos (import_video), photos already in RipClip (list_clips kind photo), or changing what is in the picture, such as removing a person (not done by RipClip). Free.

NameRequiredDescriptionDefault
urlNo
fileNo

Output Schema

NameRequiredDescription
nextYes
noteYes
job_idYes
statusYes
editor_urlYes
project_idYes
import_videoImport video
Idempotent
Inspect

Use this when the user wants to bring a long video into RipClip so it can be clipped: "clip this Twitch VOD", "turn my Kick stream into shorts", "use this podcast episode", "clip my last stream". Give url: a Kick or Twitch past broadcast (VOD), highlight or clip link, an Apple Podcasts episode, a Google Drive, Dropbox or OneDrive share link, or a direct link to a video file. Or give channel (the streamer's name) with platform "kick" or "twitch", or a channel page link such as kick.com/name: that imports the channel's newest past broadcast. rights must be true only after the user confirms they own the video or have permission to use it. request_key is any stable string; reuse it only to retry this exact import. Returns job_id at once; poll job_status, which gives the project_id when it is done. Not for: YouTube links (not supported: the user uploads the file in RipClip), a stream that is still live (import it after it ends), or cutting clips (find_clips) and posting (draft_post). Free: importing spends no Horizon Units. Next: estimate_hu, then find_clips.

NameRequiredDescriptionDefault
urlNo
rightsNo
channelNo
platformNo
request_keyYes

Output Schema

NameRequiredDescription
job_idYes
statusYes
status_urlYes
reserved_huYes
results_urlYes
job_statusJob status
Read-onlyIdempotent
Inspect

Use this when the user wants to know whether something RipClip is working on has finished: "is my import done", "are my clips ready", "did the edit render". Pass the job_id that import_video, find_clips, find_moments, clip_range, edit_clip, style_clip, add_to_clip or translate_captions returned. Returns status, progress and any error; when done it also says what was made: the project_id of an import, the clip_ids of a clip job or edit. Long videos take minutes: call again after a short wait. Not for: cancelling or changing a job (not possible from here) or reading a find_moments result (get_moments). Free and read only. Next: estimate_hu after an import; list_clips, explain_clips or preview_frame after clips or an edit.

NameRequiredDescriptionDefault
job_idYes

Output Schema

NameRequiredDescription
kindYes
errorYes
job_idYes
statusYes
clip_idsNo
progressYes
project_idNo
reserved_huYes
list_clipping_presetsList clipping presets
Read-onlyIdempotent
Inspect

Use this when the user wants to clip in their saved style: "use my usual style", "what presets do I have". Returns each saved clipping preset with its id, name, caption look, logo, music and which switches are on (such as remove pauses or auto emojis). Pass an id or name to find_clips or clip_range as clipping_preset. Not for: browsing the editor's caption templates and fonts (edit_catalog) or restyling a finished clip (style_clip). Free and read only.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
noteYes
presetsYes
list_clipsList clips
Read-onlyIdempotent
Inspect

Use this when the user wants to see their finished clips or saved photos, or needs a clip_id: "show me my clips", "what shorts did you make", "find my latest highlight", "my photos". Returns up to 50 per page (limit 1-50; pass next_cursor as cursor for the next page) with each item's id, title, kind, source project and start/end seconds in the original video. kind: clips (default), photos, or all. Items past their retention date are not listed. A clip id works with get_download_link, edit_clip, style_clip, explain_clips, preview_frame and draft_post; a photo id with adjust_look, frame_clip, preview_frame and get_download_link. Not for: the long source videos (list_projects), a gallery with video players (show_clips), or why a clip was picked (explain_clips). Free and read only.

NameRequiredDescriptionDefault
kindNoclips
limitNo
cursorNo

Output Schema

NameRequiredDescription
itemsYes
next_cursorYes
list_libraryList Library
Read-onlyIdempotent
Inspect

Use this when the user wants to browse the Library, the rendered video files saved in their RipClip account: "what's in my Library", "list my exports". Returns up to 50 per page (limit 1-50; pass next_cursor as cursor for the next page) with each item's id, title, source project and start/end seconds. Not for: just the clips a clip job made (list_clips is the usual call), the long source videos (list_projects), or finding an item by words in its title (search). Free and read only; it renders and deletes nothing.

NameRequiredDescriptionDefault
limitNo
cursorNo

Output Schema

NameRequiredDescription
itemsYes
next_cursorYes
list_projectsList projects
Read-onlyIdempotent
Inspect

Use this when the user wants to see the long videos already in RipClip (Twitch or Kick stream VODs, podcast episodes, uploads) or needs a project_id: "what videos do I have", "which stream did I import". Returns up to 50 per page (limit 1-50; pass next_cursor as cursor for the next page) with each project's id and name. The id is what estimate_hu, find_clips, find_moments and clip_range take as project_id. Not for: finished clips (list_clips), rendered files in the Library (list_library), or searching inside a video for a topic (find_moments). Free and read only; private file paths are never returned.

NameRequiredDescriptionDefault
limitNo
cursorNo

Output Schema

NameRequiredDescription
itemsYes
next_cursorYes
list_social_accountsList social accounts
Read-onlyIdempotent
Inspect

Use this when the user wants to know which social accounts are connected to RipClip (TikTok, YouTube, Instagram, Facebook, Threads, Bluesky; X is coming soon) or needs an account_id: "where can I post", "which accounts are linked". Returns each account's account_id, platform, name, username and status. draft_post, plan_posts and update_draft take account_id when the user has several accounts on one platform. The note says which platforms RipClip can post to yet (posting switches on platform by platform as each platform approves RipClip); connect_more is the page where the user connects another account, which this tool cannot do. Not for: post numbers (get_post_stats) or follower counts (get_account_stats). Free and read only.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
noteYes
accountsYes
connect_moreYes
mix_audioMix the sound
Idempotent
Inspect

Use this when the user wants the sound of a clip changed: "mute the original audio", "turn my voice up", "remove the background noise", "even out the volume", "make me sound like a robot", "the music is too loud". clip_id: from list_clips. original_volume 0-1000 (percent, 100 = as recorded); mute_original; denoise 0-100 (background noise removal); voice_boost 0-100 (clearer speech); normalize (even loudness); voice_effect: a voice filter by name (robot, deep, chipmunk, echo, telephone, megaphone, radio, cave...) or off; music_volume: quiet, normal, loud or a percent 0-400 (100 = the usual level under speech); music_ducking (the music dips while someone talks); ducking_db 0-30 (how far it dips). Not for: adding or changing the song (edit_clip music) or sound effects at a moment (add_to_clip). Saved as an undoable version (undo_edit). Costs no Horizon Units. Returns job_id: poll job_status, then get_download_link. Options the account can't use are refused by name before anything changes.

NameRequiredDescriptionDefault
clip_idYes
denoiseNo
normalizeNo
ducking_dbNo
voice_boostNo
music_volumeNo
voice_effectNo
music_duckingNo
mute_originalNo
original_volumeNo

Output Schema

NameRequiredDescription
nextYes
notesYes
job_idYes
statusYes
changedYes
clip_idYes
editor_urlYes
estimated_huNo
voiceover_job_idNo
plan_postsPlan postsInspect

Use this when the user wants a batch of posts planned in one go: "plan my week", "fill my content calendar", "draft my top 3 clips for TikTok and YouTube Shorts at my best times". Takes the highest-scoring clips not yet posted (RipClip's own clip score) or the clip_ids given, and saves one DRAFT per clip and platform at the user's best times to post (evening slots until there is posting data; the answer says which), each with the clip's post caption and hashtags. platforms: tiktok, youtube, instagram, facebook, threads, bluesky (Shorts, Reels, IG work too; X is coming soon). count 1-10 clips. timezone: IANA name, e.g. America/Chicago. Not for: one post with a caption the user chose (draft_post), caption options (write_captions), changing a draft (update_draft) or publishing (no tool here publishes). Drafts only: the user reviews and schedules each in RipClip. Free. Next: show_drafts displays the calendar.

NameRequiredDescriptionDefault
countNo
clip_idsNo
timezoneNoUTC
platformsYes

Output Schema

NameRequiredDescription
noteYes
draftsYes
times_fromYes
preview_framePreview a frame
Read-onlyIdempotent
Inspect

Use this when the user wants to see how a clip looks at one moment: "show me the captions", "how does the title look", "what did that effect do". Returns a still image of clip_id (from list_clips) at at_seconds (seconds into the finished clip, default 1; a photo shows whole), as last rendered with its captions and edits. Right after style_clip, add_to_clip, translate_captions or edit_clip, wait for job_status to say done, or the picture is the previous version (the answer says so). Not for: playing the clip (show_clips), the video file (get_download_link) or changing anything. Free and read only.

NameRequiredDescriptionDefault
clip_idYes
at_secondsNo

Output Schema

NameRequiredDescription
noteYes
widthYes
heightYes
clip_idYes
versionYes
at_secondsYes
retime_clipChange timingInspect

Use this when the user wants the timing of part of a clip changed: "slow down the part at 0:12", "speed up the boring middle", "freeze on the reaction for 2 seconds", "cut out 0:20 to 0:25". clip_id: from list_clips. Times are seconds of the clip as it plays (0:12 = 12). One change per call: speed 0.25-4 (0.5 = half speed) for start_seconds to end_seconds (end 0 = the clip's end); freeze_seconds 0.1-10 holds the frame at start_seconds; remove=true cuts start_seconds to end_seconds out. Captions follow the footage. Not for: the whole clip a little faster or slower (style_clip speed 0.75-1.5), silences and filler words (edit_clip) or trimming the start and end (edit_clip). Saved as an undoable version (undo_edit). Costs no Horizon Units. Returns job_id: poll job_status, then preview_frame.

NameRequiredDescriptionDefault
speedNo
removeNo
clip_idYes
end_secondsNo
start_secondsNo
freeze_secondsNo

Output Schema

NameRequiredDescription
nextYes
notesYes
job_idYes
statusYes
changedYes
clip_idYes
editor_urlYes
estimated_huNo
voiceover_job_idNo
save_templateSave a clip as a templateInspect

Use this when the user wants a clip's look kept to use again: "save this style", "remember this edit", "make this my template", "clip my next streams like this". Saves the clip's whole edit (format and layout, captions, colour, effects, transitions, music, text and sounds) as one of the user's templates, also shown in RipClip under Templates; a clip of any length works. clip_id: from list_clips. name: what the user calls it (up to 60 characters). category: hype, story, montage, podcast or another group that edit_catalog(kind="templates") shows. description: an optional line about it. for_new_clips: true when the user wants future clips to get this look ("always", "from now on", "my next VODs"): it also becomes their default clipping preset (format, captions, headline look, logo, music), applied to every new clip find_clips and clip_range make. Ask if unclear. look_from (no clip_id needed): a TikTok or YouTube link to someone else's clip whose look the user wants ("make my clips look like this"): its captions and layout are read and saved as a clipping preset (Premium). Not for: putting a saved style on a clip (style_clip with template) or a single caption style (style_clip). Free: no Horizon Units. Next: style_clip(template=...) on other clips.

NameRequiredDescriptionDefault
nameYes
clip_idNo
categoryNohype
look_fromNo
descriptionNo
for_new_clipsNo

Output Schema

NameRequiredDescription
nameYes
noteYes
look_partsYes
template_idYes
clipping_preset_idNo
show_clipsShow clipsA
Read-onlyIdempotent
Inspect

Use this when the user wants to watch their clips right in the chat: "show me my clips", "let me watch them", or after find_clips finishes (pass its job_id). Shows a gallery with, for each clip, a video player, its title, length, score and why it was picked, plus buttons to edit it or draft it for TikTok. clip_ids shows those clips; with neither clip_ids nor job_id it shows the newest limit clips (1-10, default 6). Video links last 5 minutes: call again for fresh ones. Not for: a plain text list (list_clips), a download link (get_download_link) or one still picture (preview_frame). Free and read only.

NameRequiredDescriptionDefault
limitNo
job_idNo
clip_idsNo

Output Schema

NameRequiredDescription
noteYes
clipsYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/destructive, so the description goes further: it discloses that video links expire after 5 minutes and must be re-fetched, describes the exact rendered content, and adds a cost signal ("Free") that the annotations do not express. It also restates default scoping behavior (newest `limit` clips when neither selector is given).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the trigger and the outcome, then params, caveat, exclusions, and cost โ€” a sensible ordering with no filler sentences. The middle sentence runs long by chaining all three parameters together, which slightly hurts scanability, but nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be explained, yet the description still tells the agent what the user will see and the one perishable property (5-minute links). For a 3-optional-param display tool with rich annotations, nothing an agent needs in order to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry all meaning, and it does: job_id is sourced from find_clips output, clip_ids selects specific clips, and limit is bounded (1-10) with a stated default of 6. The interaction between the parameters and the fallback case is spelled out explicitly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("watch their clips right in the chat") and immediately describes the concrete artifact produced: a gallery with a video player, title, length, score, why-it-was-picked, plus edit/draft buttons. It also names the siblings it is not (list_clips, get_download_link, preview_frame), so an agent can differentiate without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit trigger phrases ("show me my clips", "let me watch them") plus a sequencing rule: use after find_clips finishes and pass its job_id. The "Not for:" clause enumerates three alternatives with the condition that selects each, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

show_draftsShow posting calendarA
Read-onlyIdempotent
Inspect

Use this when the user wants to see their posting calendar: "what's on my calendar", "show my drafts", "what's scheduled this week", or after plan_posts. Shows drafts and scheduled posts for the next days days (1-31, default 7) in their IANA timezone (e.g. America/Chicago): each post's time, platform, clip and status, and drafts with no time yet. Each post opens in RipClip to review and schedule. Not for: creating drafts (plan_posts, draft_post) or numbers of posted videos (get_post_stats, show_report). Free and read only.

NameRequiredDescriptionDefault
daysNo
timezoneNoUTC

Output Schema

NameRequiredDescription
daysYes
noteYes
laterYes
timezoneYes
unscheduledYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds real value on top: it is free to call, it shows drafts lacking a time, and each post opens in RipClip for review, which tells the agent what happens next. The 'Free and read only' phrase partly repeats the annotations, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the trigger phrasings, then the behavior, then exclusions, with no filler sentences. Slightly dense in the middle where output fields, timezone format and RipClip hand-off are packed into one long sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read tool with an output schema and full annotation coverage, this covers everything an agent needs: triggers, exclusions, parameter ranges and formats, cost, and where the user lands afterward. Nothing required for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the burden and does it well: `days` is bounded to 1-31 with a default of 7, and `timezone` is specified as an IANA identifier with a concrete example. Minor gap: the schema's UTC default for `timezone` is not mentioned.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('see their posting calendar', 'shows drafts and scheduled posts') and enumerates the exact fields returned per post. It also names what it is not for, with sibling tools, so an agent can distinguish it from show_report, get_post_stats, and plan_posts immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives literal user phrasings that should trigger the tool ('what's on my calendar', 'show my drafts', 'what's scheduled this week') and a sequencing rule ('after plan_posts'). The 'Not for:' clause explicitly routes three competing intents to the correct alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

show_reportShow weekly reportA
Read-onlyIdempotent
Inspect

Use this when the user wants to see how their week went as a chart in the chat: "show me my analytics", "chart my views". Shows views by day and by platform for the last days days (default 7) against the period before, the top posts, the best time to post and the clips to post next, with a button to plan them. timezone: IANA name, e.g. America/Chicago. The same numbers as weekly_report. Not for: a written answer (weekly_report) or a table of individual posts (get_post_stats). Free and read only.

NameRequiredDescriptionDefault
daysNo
timezoneNoUTC

Output Schema

NameRequiredDescription
noteYes
dailyYes
postsYes
viewsYes
timezoneYes
best_timeYes
post_nextYes
top_postsYes
by_platformYes
period_daysYes
views_previous_periodYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent and non-destructive, so the bar is lower; the description still adds useful behavior beyond them, namely that output renders as an in-chat chart with a 'plan them' button, and that it uses the same numbers as weekly_report. 'Free and read only' mildly restates the annotations, and it does not mention data freshness or limits on the comparison window.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Usage trigger and examples come first, then output contents, then parameter hints, then exclusions โ€” a logical front-loaded order with no filler sentences. The trailing 'Free and read only' duplicates the annotations and is the one line that does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, yet the description still tells the agent what the chart contains. Combined with the sibling routing and parameter semantics, an agent has everything needed to choose and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry both parameters, and it does: `days` is defined as the lookback window defaulting to 7, and `timezone` as an IANA name with a concrete example. It omits the timezone default (UTC) and any bounds on `days`, so it is strong but not exhaustive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('show how their week went as a chart'), enumerates the contents (views by day/platform, comparison period, top posts, best time, clips to post next), and explicitly separates it from weekly_report and get_post_stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the trigger condition ('when the user wants to see their week as a chart in the chat') with example utterances, and adds an explicit 'Not for:' clause routing written answers to weekly_report and per-post tables to get_post_stats.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

style_clipStyle a clip
Destructive
Inspect

Use this when the user wants to change how a clip looks, at editor depth: "make the captions look like a gaming channel's", "give it a cinematic color grade", "add a glitch at the drop", "make it square for Instagram", "speed it up a bit", "fade it out". clip_id: from list_clips. Set only what was asked; names from edit_catalog. Captions: caption_template, font, caption_stroke_width 0-20, caption_stroke_color, caption_shadow, caption_box off/word/line. Color: filter_look (or off), filter_strength 0-100, brightness and contrast 0.5-1.5, saturation 0-2, warmth -1 to 1. Motion: effect (or off), whole clip or effect_start_seconds to effect_end_seconds (0 = end), effect_strength 0-1; transition at inner cuts, transition_ms 60-2000; speed 0.75-1.5. Frame: output_shape 9:16/4:5/1:1/16:9, progress_bar, fade_in_seconds, fade_out_seconds 0-3. "Like last time": template (edit_catalog kind templates), alone; template_parts (default all). "My usual style on these clips": clipping_preset (list_clipping_presets), alone, on clip_id and also_clip_ids (49 more); template_parts: captions, layout, headline, logo, music, overlays. Words, trim and crop stay. Not for: caption size or colors, music, silences, hook title (edit_clip), text, stickers, sounds (add_to_clip), translation (translate_captions). An undoable version; the render replaces the clip. Costs no Horizon Units. Returns job_id: poll job_status, then preview_frame. Options the account lacks are refused by name first.

NameRequiredDescriptionDefault
fontNo
speedNo
effectNo
warmthNo
clip_idYes
contrastNo
templateNo
brightnessNo
saturationNo
transitionNo
caption_boxNo
filter_lookNo
output_shapeNo
progress_barNo
also_clip_idsNo
transition_msNo
caption_shadowNo
template_partsNo
clipping_presetNo
effect_strengthNo
fade_in_secondsNo
filter_strengthNo
caption_templateNo
fade_out_secondsNo
effect_end_secondsNo
caption_stroke_colorNo
caption_stroke_widthNo
effect_start_secondsNo

Output Schema

NameRequiredDescription
nextYes
notesYes
job_idYes
statusYes
changedYes
clip_idYes
editor_urlYes
estimated_huNo
voiceover_job_idNo
translate_captionsTranslate captions
DestructiveIdempotent
Inspect

Use this when the user wants subtitles in another language on a clip: "add Spanish subtitles", "translate it to Japanese", "put the captions in Portuguese only". clip_id: from list_clips. language: a name or code (Spanish, es, Japanese, ja, Portuguese, Hindi, Arabic...) or off to remove the translation. mode: bilingual (default) keeps the spoken line with the translation under it; replace shows the translation only. Each caption line is translated once and keeps its timing, using RipClip's own model, so a long clip takes a minute. Not for: dubbing or voiceover (not done through assistants), how the captions look (style_clip, edit_clip) or the original-language captions (clips come captioned). Saved as an undoable version; the clip's video is replaced by the new render. Costs no Horizon Units. Returns job_id: poll job_status, then preview_frame.

NameRequiredDescriptionDefault
modeNobilingual
clip_idYes
languageYes

Output Schema

NameRequiredDescription
nextYes
notesYes
job_idYes
statusYes
changedYes
clip_idYes
editor_urlYes
estimated_huNo
voiceover_job_idNo
undo_editUndo the last editInspect

Use this when the user wants the last change to a clip or photo taken back: "undo that", "put it back", "I liked it better before", "go back one step". clip_id: from list_clips. Restores the version saved before the last edit and renders it again; calling again steps further back (RipClip keeps the last 20 saves for 7 days). Not for: deleting a clip (done in RipClip) or a single setting (call the edit tool again with the old value). Costs no Horizon Units. Returns job_id: poll job_status, then preview_frame.

NameRequiredDescriptionDefault
clip_idYes

Output Schema

NameRequiredDescription
nextYes
notesYes
job_idYes
statusYes
changedYes
clip_idYes
editor_urlYes
estimated_huNo
voiceover_job_idNo
update_draftUpdate a draft
DestructiveIdempotent
Inspect

Use this when the user wants to change a post that is still a draft: "make the caption shorter", "move it to Friday 6pm", "turn comments on", "switch it to YouTube". post_id comes from get_post_stats with status "draft". Set only what was asked: caption (replaces the old one; for YouTube its first line is the title), scheduled_at (ISO 8601 with its offset) or clear_time, platform, account_id (from list_social_accounts). privacy: TikTok public, followers, friends or private; YouTube public, unlisted or private. TikTok post-screen choices, all off until the user says: allow_comment, allow_duet, allow_stitch, disclose (then brand_organic = promotes their own business, brand_content = a paid partnership), aigc (the label for a video made with AI), mode direct or inbox (finish in the TikTok app). Not for: scheduled or posted posts (refused), new drafts (draft_post, plan_posts) or removing a draft (delete_draft). The draft stays a draft and is never posted automatically; the user schedules it in RipClip. Free.

NameRequiredDescriptionDefault
aigcNo
modeNo
captionNo
post_idYes
privacyNo
discloseNo
platformNo
account_idNo
allow_duetNo
clear_timeNo
allow_stitchNo
scheduled_atNo
allow_commentNo
brand_contentNo
brand_organicNo

Output Schema

NameRequiredDescription
noteYes
statusYes
tiktokYes
captionYes
changedYes
post_idYes
privacyYes
platformYes
review_urlYes
scheduled_atYes
weekly_reportWeekly report
Read-onlyIdempotent
Inspect

Use this when the user wants a recap of how their posts did and what to post next: "how did last week go", "give me my analytics", "what should I post next". For the last days days (default 7): posts and views by platform, the top posts by views at 24 hours, the views of the period before for comparison, the best time to post, and post_next: top clips never posted or drafted, each with the platform it earned most on. timezone: IANA name, e.g. America/Chicago. Covers posts RipClip published or planned. Not for: one post's numbers (get_post_stats), platform against platform (compare_platforms), a chart in the chat (show_report) or the reasons behind the results (why_it_worked). Free and read only. Next: plan_posts drafts the post_next clips.

NameRequiredDescriptionDefault
daysNo
timezoneNoUTC

Output Schema

NameRequiredDescription
noteYes
postsYes
viewsYes
best_timeYes
post_nextYes
top_postsYes
by_platformYes
period_daysYes
views_previous_periodYes
whats_taking_offWhat's taking offA
Read-onlyIdempotent
Inspect

Use this when the user wants to know if a post is blowing up: "is anything taking off", "did my last clip pop", "is my TikTok going viral". Lists posts less than 48 hours old with at least 100 views and at least twice the views the user's other posts had at the same age (the rule behind the Taking off badge in RipClip), with the numbers. An empty list is a normal answer. Takes no parameters. Not for: a recap (weekly_report), one post's numbers (get_post_stats) or the reasons posts worked (why_it_worked). Free and read only.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
noteYes
ruleYes
taking_offYes
posts_checkedYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description still adds meaningful behavior: the exact thresholds that determine inclusion, the expectation that an empty result is normal rather than a failure, and that the tool is free to call. This is context the agent could not derive from annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is front-loaded with the usage trigger, then the definition, then exclusions, and every sentence carries information. Minor redundancy: 'Free and read only' restates readOnlyHint from annotations, and the three quoted user phrases are somewhat repetitive, though they do aid intent matching.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return formatting need not be described; the description only notes 'with the numbers,' which is sufficient. For a zero-parameter, read-only query tool, nothing an agent needs to select or call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and the description explicitly says so, which fully aligns with the empty input schema. With no parameters there is no semantic gap to close, and the statement removes any temptation for the agent to invent filter arguments.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific operation with full scope: it lists posts under 48 hours old with at least 100 views and at least 2x the user's baseline views at the same age. It also anchors the concept to a concrete artifact ('the rule behind the Taking off badge in RipClip'), so the agent knows exactly what is being computed rather than a vague 'performance' query.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use triggers with quoted user phrasings ('is anything taking off', 'did my last clip pop', 'is my TikTok going viral') and an explicit exclusion list naming three siblings (weekly_report, get_post_stats, why_it_worked) with their distinct purposes. It even pre-empts a likely misinterpretation by stating 'An empty list is a normal answer.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

why_it_workedWhy it workedA
Read-onlyIdempotent
Inspect

Use this when the user wants to know what their better posts have in common: "why did that one do well", "what should I do more of", "what makes my clips work". Looks at the user's own posts of the last days (default 90) that have a day of views and compares views at 24 hours by clip length, caption length, platform, weekday, time of day (in the IANA timezone given, e.g. America/Chicago) and a title set on the post. Returns the biggest gaps with how many posts are in each group and how likely each gap is to be luck, plus a plain warning when there are too few posts (under 10 it compares nothing). These are differences in the data, never proof of a cause: say so. Not for: predicting views of a new clip, posting hours (best_time_to_post) or a recap (weekly_report). Free and read only.

NameRequiredDescriptionDefault
daysNo
timezoneNoUTC

Output Schema

NameRequiredDescription
noteYes
warningYes
findingsYes
confidenceYes
not_checkedYes
period_daysYes
typical_views_24hYes
posts_with_24h_viewsYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive and closed-world, and the description still adds real behavior: only posts with a day of views are counted, under 10 posts it compares nothing and warns, results include group sizes and a luck likelihood, and it instructs the agent to frame findings as correlation not causation. That is disclosure the annotations cannot provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the user phrasings, then the method, then exclusions and safety framing, so an agent can stop reading early. It is dense and the long enumerated comparison list makes one sentence heavy, but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even though an output schema exists, the description still characterizes the return shape (biggest gaps, group counts, luck likelihood, low-data warning), so an agent knows what it will get. The one remaining gap is that data-source prerequisites (e.g. which platforms need a connected account) are left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description has to carry both parameters, and it does: `days` is explained as the lookback window over the user's own posts with a 90-day default, and `timezone` as the IANA zone used for the time-of-day grouping, with an example. This adds meaning well beyond the bare integer/string schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete operation: it compares 24-hour view counts across the user's own posts by clip length, caption length, platform, weekday, time of day and title. That is specific enough to separate it from compare_platforms, whats_taking_off and explain_clips without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit trigger phrasings ("why did that one do well", "what should I do more of") and an explicit "Not for:" clause naming predicting views, best_time_to_post and weekly_report as the alternatives. When-to-use and when-not-to-use are both covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

write_captionsWrite captions
Read-only
Inspect

Use this when the user wants the text for a post written: "write my captions", "caption this for TikTok and Shorts", "give me a YouTube title and hashtags". clip_id: from list_clips. platforms: up to 5 of tiktok, youtube, instagram, facebook, threads, x, bluesky (Shorts, Reels, IG work too). tone: optional ("funny", "hype", "calm"). RipClip's caption writer works from the clip (its title, post text and hashtags), then each caption is cut to the platform's rules: TikTok 2,200 characters, Instagram 2,200 and at most 5 hashtags, YouTube a title of 100 characters (the first line) plus a description under 5,000 bytes, Threads 500, X 280. Not for: the subtitles shown inside the video (edit_clip, style_clip, translate_captions) or saving a post (draft_post). Saves nothing: show the captions, then draft_post saves the chosen one as a draft or update_draft changes an existing draft. If the writer is unavailable it says so. Free.

NameRequiredDescriptionDefault
toneNo
clip_idYes
platformsYes

Output Schema

NameRequiredDescription
nextYes
toneYes
savedYes
clip_idYes
captionsYes
clip_titleYes

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 44 tool updates
    • First observedadd_to_clip
    • First observedadjust_look
    • First observedbest_time_to_post
    • First observedclip_range
    • First observedcompare_platforms
    • First observeddelete_draft
    • First observeddraft_post
    • First observededit_catalog
    • First observededit_clip
    • First observedestimate_hu
    • First observedexplain_clips
    • First observedfetch
    • First observedfind_clips
    • First observedfind_moments
    • First observedframe_clip
    • First observedget_account_stats
    • First observedget_download_link
    • First observedget_moments
    • First observedget_post_stats
    • First observedimport_photo
    • First observedimport_video
    • First observedjob_status
    • First observedlist_clipping_presets
    • First observedlist_clips
    • First observedlist_library
    • First observedlist_projects
    • First observedlist_social_accounts
    • First observedmix_audio
    • First observedplan_posts
    • First observedpreview_frame
    • First observedretime_clip
    • First observedsave_template
    • First observedsearch
    • First observedshow_clips
    • First observedshow_drafts
    • First observedshow_report
    • First observedstyle_clip
    • First observedtranslate_captions
    • First observedundo_edit
    • First observedupdate_draft
    • First observedweekly_report
    • First observedwhats_taking_off
    • First observedwhy_it_worked
    • First observedwrite_captions

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables turning any video into scored, captioned, ready-to-post vertical clips directly from your MCP client, with capabilities to download finished MP4s, schedule posts, and discover trending content.
    45 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP clients to turn direct video URLs and chosen start/end times into ready-to-post vertical 9:16 MP4 clips with animated burned-in captions, thumbnails, and SRT files, including batch processing for multiple highlights.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to turn a meeting recording and transcript into captioned clips, trailers, longform best-ofs, and 1:1/9:16/16:9 social videos. Agents can create projects, inspect transcripts, render jobs, check status, and retrieve output files.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources