Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_OAUTHNoSet to true to enable OAuth 2.1 authentication for MCP connectors (claude.ai, Claude Desktop) instead of API keys.
REELSAW_URLNoThe URL of the running Reelsaw instance (default: the app in the same container).the app in the same container
REELSAW_API_KEYYesYour Reelsaw API key, created in Settings → API keys and MCP.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_projectsA

Your projects, most recently updated first. Returns { projects: [{ id, title, status, stage, clips: "n/m rendered", url }], total, nextCursor }; pass nextCursor as cursor for the next page. Use get_project for one project's clips, search_clips to find by words.

get_projectA

One of your projects: status, settings, effective intro/outro, transcript summary, and every clip (id, title, hook, bounds, score, status, download links); replacedClips lists deleted or replaced clips for restore_clip. Returns the project object. For one clip's full detail use get_clip, for the words get_transcript, for the pipeline history get_project_events.

create_projectA

Start clipping a video from a URL (YouTube, Vimeo, a direct link; anything yt-dlp fetches). Returns { id, title, status: "queued", next } at once; the pipeline (download, transcribe, pick, render) runs in the background for minutes, so follow with wait_for_project(id). Intro/outro default to your library defaults unless introAssetId/outroAssetId say otherwise.

update_projectA

Rename a project and/or change its saved settings (focus, instructions, clip length, maxClips, caption style, framing, pauses); only the fields you pass change. Does not re-pick clips or re-render: reanalyze_project picks again with the new selection settings, rerender_clips applies style changes. Returns { changed, needsReanalyze, needsRerender, hint }.

wait_for_projectA

Block until the project is done or failed, or timeoutSeconds pass. Returns { id, status, stage, stageProgress, error, clips: [{ id, title, status }] }; on timeout the same with hint "Still running": call it again. Use get_project instead for a non-blocking look with full clip details.

get_transcriptA

The project's transcript as timed lines "[m:ss] text", optionally only a time range. Returns text; output longer than maxChars is cut with a note saying which fromSec to continue from. Use it to pick your own moments for create_clip.

search_clipsA

Find your clips and projects by words in their title, hook or caption (every word must match; case-insensitive, typo-tolerant; best first). Returns { projects (max 8), clips (max limit) with ids, bounds and links, truncated? }. Use list_projects to browse instead.

get_project_eventsA

The project's pipeline history, newest first: stage starts and completions, clip renders, retries, failures with reasons. Returns [{ at, type, ...details }]. Use it to find out why something failed or is slow; get_project shows the current state.

get_clipA

Everything about one clip: text, bounds, scores, framing, style, emphasis, own and effective intro/outro, render diagnostics, video/thumbnail/editor links. Returns the clip object. get_project lists all clips in brief; poll this after an edit to see the render finish (status done).

update_clipA

Edit one clip: only the fields you pass change; style and layoutSections replace the clip's whole value (null = back to the project's). Text-only edits (title, caption, hashtags) apply at once; bounds, hook, framing, style and emphasis are burned into the video and re-render in the background (~1 min) unless rerender is false. Returns the clip summary with its new status; poll get_clip until done.

create_clipA

Add a clip from a time range of the source (needs a transcript). mode exact keeps your bounds (3 s-10 min); mode ai lets the model pick the best moment inside them (≥8 s). Returns the new clip { id, status: "preparing" }; it gets a title and renders in the background (about a minute), so poll get_clip until done. To change an existing clip use update_clip instead.

delete_clipA

Delete one clip of your project; a render in progress stops. Reversible: restore_clip brings it back for DELETED_RETENTION_DAYS (7 days by default). Returns { changed, restorable }.

rerender_clipA

Queue one clip for rendering again (after rerender: false edits, a failure, or an intro/outro change). Async: the new video replaces the old when done (usually under a minute); poll get_clip. Returns { step: render | prepare } (prepare = it never got its AI title, which runs first). For several clips of a project use rerender_clips.

rerender_clipsA

Queue several clips of one project for rendering again in one step (after edits or failures). Finished and failed clips are queued, clips still rendering are skipped; each new video replaces the old when done. Returns { requested, rerendered, skipped }; poll get_project or wait_for_project. For a single clip rerender_clip is enough.

export_projectA

A download link for a zip of the project's rendered clips with YouTube/TikTok metadata. Returns { url, clips, notRendered }; the link needs the same Authorization header as this server.

retry_projectA

Resume a failed or stuck project from its furthest completed stage: re-render unfinished clips if there are clips, else pick clips, refine or transcribe again. Finished clips, the transcript and the source are kept. Returns { queue } (the stage restarted); then wait_for_project. To pick different clips use reanalyze_project instead.

reanalyze_projectA

Pick clips again from the existing transcript (needs one), optionally with new settings. Clips you created or edited are kept; untouched AI picks are replaced and restorable with restore_clip for a while. Returns { kept, replaced } at once; the picking runs in the background, so follow with wait_for_project. To only save settings use update_project; to resume a failure use retry_project.

list_bumpersA

Your intro/outro library. Returns { assets: [{ id, name, kind, durationSec, isDefaultIntro, isDefaultOutro, usedBy, thumbnailUrl }], removed: [...] } (removed items stay restorable for 30 days). Use the ids with set_project_bumpers, set_clip_bumpers or set_default_bumper.

add_bumperA

Add a video (MP4/MOV/WebM, ≤10 s, ≤50 MB) or image (PNG/JPG, ≤20 MB) to your library from a public url or an uploadId. Returns { id, name, kind, durationSec, duplicate, restored } (the same file twice returns the existing item). setDefault makes it your default for NEW projects only; existing ones change with set_project_bumpers.

rename_bumperA

Rename one of your library items (removed ones too). Only the label changes; nothing re-renders. Returns { id, name, previousName }.

set_default_bumperA

Make a library item your default intro or outro for projects you create from now on (assetId null clears it). Existing projects keep theirs; to change one use set_project_bumpers. Returns { ok }.

remove_bumperA

Remove an item from your library and from your defaults. Projects and clips already using it keep rendering with it. Undo with restore_bumper within 30 days; check bumper_usage first. Returns { ok }.

restore_bumperA

Bring one of your removed library items back (list_bumpers shows them under removed); restoring an item that is not removed changes nothing. It does not become a default again. Returns { ok }.

bumper_usageA

The projects and clips that use a library item. Returns { projects: [{ id, title, slots, clips: [{ id, index, title, slots, via }] }] }, via saying whether through the project or the clip's own choice. Check before removing one.

set_project_bumpersA

Set one project's intro and/or outro: "default" (your current default), "none", or a library asset id; a slot left out is untouched, and introSec/outroSec are saved with the project. Clips with their own choice (set_clip_bumpers) keep it. Applies on each clip's next render; rerender: true re-renders finished clips now. Returns { rerendered }. set_default_bumper changes future projects instead.

set_clip_bumpersA

Override the intro and/or outro of up to 200 clips of one project: "inherit" (follow the project), "none", or a library asset id; a slot left out is untouched. rerender: true re-renders only these clips. Returns { updated, rerendered }.

delete_projectA

Delete one of your projects and all its clips; work in progress stops. Reversible: restore_project brings it back for DELETED_RETENTION_DAYS (7 days by default), then it and its files are removed for good. Returns { changed, restorable, message }.

restore_projectA

Bring back a deleted project with its clips and files (find it with list_projects deleted: true); restoring a project that is not deleted changes nothing. A project that was processing comes back failed: retry_project resumes it. Returns { changed, status }.

restore_clipA

Bring back a deleted clip or one a re-analyze replaced (get_project lists them as replacedClips); it goes to the end of the project's clips. Returns { changed, status, needsRerender }; needsRerender means it never finished, so call rerender_clip.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.2/5.0

Scored across 29 tools

Disambiguation4/5

Most tools target distinct resources and actions, and descriptions actively disambiguate near-neighbors (rerender_clip vs rerender_clips, get_project vs wait_for_project, retry_project vs reanalyze_project). A few pairs are close — set_project_bumpers vs set_default_bumper, restore_bumper vs add_bumper restoration behavior — but the descriptions explicitly cross-reference the alternatives, preventing most misselection.

Naming Consistency5/5

Consistent verb_noun pattern throughout: create/list/get/update/delete/restore/rerender/_project/_clip/_bumpers. Plural forms (rerender_clips, set_project_bumpers) correctly denote batch operations. No camelCase mixing or vague standalone verbs.

Tool Count3/5

29 tools is at the heavy end for a clipping service, spanning projects, clips, library assets, and pipeline control. The bumpers library alone accounts for eight tools (usage, list, add, rename, remove, restore, set_default, set_project, set_clip), which inflates the surface for what is essentially intro/outro management. Borderline for the stated scope.

Completeness5/5

Full lifecycle coverage: projects and clips both have create/read/update/delete/restore, plus re-render, reanalyze, retry, wait, transcript access, search, export, and a complete bumpers sub-lifecycle. No obvious dead ends; restore paths and deleted-item discovery are explicitly provided.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive