Skip to main content
Glama

Server Details

Generate, extend and edit AI images and videos, then assemble clips on a timeline and render.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
ChatGPT
–
Claude
–

TDQS

A3.9/5.0

Scored across 37 tools

Disambiguation4/5

Most tools target clearly distinct resource+action pairs (generate vs edit vs extend vs redo, render vs generation status, reference CRUD). The generation family (generate_image, edit_image, redo_generation, edit_video, extend_video, image_to_video) is close in purpose but descriptions draw explicit boundaries. Minor overlap between list_threads/list_recent_generations and rename handling both threads and cuts, but still resolvable.

Naming Consistency4/5

Overwhelmingly consistent snake_case verb_noun convention (create_thread, delete_node, reorder_clips, render_timeline). The lone outlier is 'rename', which omits a noun target and relies on a 'target' parameter. Everything else follows the pattern predictably.

Tool Count3/5

37 tools is heavy for a single server, even given the rich domain (generation, editing, timeline, references, library, account). Most tools are genuinely distinct so it isn't padding, but the image/video split could compress (generate_*, edit_*) and the count sits well above the comfortable 15-tool band.

Completeness4/5

Strong lifecycle coverage: references have full CRUD, nodes support soft delete/restore, timeline has create/duplicate/add/remove/reorder/render, library and account are covered. Gaps remain: no create_folder (folders can be listed and moved into but not created) and no delete_thread, which could dead-end some workflows.

Publisher details

Operator
Greyvine
Vendor relationship
First-party
Trust center
Not available
Restrictions
Free to try: new accounts get 150 free credits, no card required. Requires a Framevine account. Tools that generate or render media spend the account's credits, up to a daily cap the user chooses when connecting. Assistants cannot make purchases.

Available Tools

37 tools
add_clips_to_timelineAdd clips to timelineA
Idempotent
Inspect

Append generated videos from a thread to its timeline, in the order given. Goes into the active cut unless cutId is given; a first cut is created if the thread has none. Only video nodes that have not failed can be added, and a video already in the cut is skipped. Returns the updated timeline.

Inputs: nodeIds (required), threadId (required), cutId, cutName.

create_cutCreate cutAInspect

Create a new, empty cut (an alternative edit) on a thread's timeline. Returns the new cut; add clips with add_clips_to_timeline.

Inputs: name (required), threadId (required).

create_referenceCreate referenceAInspect

Save an image from the user's library (for example one returned by upload_image) as a named reference, so prompts can reuse it as @Name. Names start with a letter, use only letters (any language, e.g. さくら), digits, '_', '.', '-' or '・', max 32 characters, and 'source' and 'imageN' are reserved. Names are unique per user.

Inputs: name (required), fileId (required), kind.

create_threadCreate threadAInspect

Create a new, empty Framevine thread (a canvas that holds related generations). Optionally give it a title. Returns the thread id to use with the generation tools. Does not spend credits.

Inputs: title.

delete_nodeDelete nodeA
DestructiveIdempotent
Inspect

Remove a generation (node) from a thread, for example a bad take. This is a soft delete: it can be undone with restore_node, and credits already spent are not refunded.

Inputs: nodeId (required), threadId (required).

delete_referenceDelete referenceA
DestructiveIdempotent
Inspect

Delete a named reference (ids from list_references) so its @Name no longer works in prompts. The image itself stays in the library.

Inputs: referenceId (required).

duplicate_cutDuplicate cutAInspect

Copy a cut with all its clips, so you can try a different edit without changing the original. Returns the new cut.

Inputs: cutId (required), threadId (required).

edit_imageEdit imageAInspect

Edit an existing image node with a new instruction prompt (e.g. "make the sky pink"), producing a new image node. Use redo_generation to re-roll the same inputs instead. Spends credits. Returns immediately with a new nodeId and status; poll get_generation_status until it is COMPLETED or FAILED.

Inputs: nodeId (required), prompt (required), threadId (required), quality, +3 more.

edit_videoEdit videoAInspect

Edit an existing completed video node with a text instruction. prompt describes the change and what should stay unchanged. modelKey must be a video model from list_models that supports video editing. Spends credits; use estimate_cost first if unsure. Returns immediately with a new nodeId and status, plus the parent node it edited so you can confirm it was the right one; poll get_generation_status until it is COMPLETED or FAILED. If the user's intent is ambiguous across branches, call get_thread and ask which node before spending credits.

Inputs: nodeId (required), prompt (required), modelKey (required), threadId (required).

estimate_costEstimate generation costA
Read-onlyIdempotent
Inspect

Get the exact credit cost of a generation before running it, plus whether the user's balance and storage can cover it. Does not spend credits. Use list_models for valid model keys.

Inputs: modelKey (required), operation (required), quality, resolution, +2 more.

extend_videoExtend videoAInspect

Extend an existing completed video node with a continuation. prompt describes what happens next; pass endNodeId (a completed image node) to steer toward an end frame. modelKey comes from list_models (a video model) and durationSeconds must be one that model supports. Spends credits; use estimate_cost first if unsure. Returns immediately with a new nodeId and status, plus the parent node it extended so you can confirm it was the right one; poll get_generation_status until it is COMPLETED or FAILED. If the user's intent is ambiguous across branches, call get_thread and ask which node before spending credits.

Inputs: nodeId (required), prompt (required), modelKey (required), threadId (required), +5 more.

favorite_threadFavorite threadA
Idempotent
Inspect

Mark a thread as a favorite, or remove it from favorites. Does not spend credits.

Inputs: favorite (required), threadId (required).

generate_imageGenerate imageAInspect

Start generating a NEW image from a text prompt in a thread (create one with create_thread first). Spends credits; use estimate_cost first if unsure. Optionally pass sourceFileIds (file ids from upload_image or the library) as visual inputs. Use @Name to reference a named reference. Returns immediately with a nodeId and status; poll get_generation_status until it is COMPLETED or FAILED.

Inputs: prompt (required), threadId (required), quality, modelKey, +2 more.

generate_videoGenerate videoAInspect

Start generating a NEW video from a text prompt in a thread (create one with create_thread first). modelKey comes from list_models (a video model) and durationSeconds must be one that model supports. Spends credits; use estimate_cost first if unsure. Optionally pass sourceFileIds (file ids from upload_image or the library) as start/reference frames. Returns immediately with a nodeId and status; poll get_generation_status until it is COMPLETED or FAILED.

Inputs: prompt (required), modelKey (required), threadId (required), durationSeconds (required), +3 more.

get_account_usageGet account usageA
Read-onlyIdempotent
Inspect

Get the user's Framevine account usage in one call. credits: the current balance (total, plus subscription and purchased credits), how many credits they have used today and this month, and how many credits this connection can spend right now (availableToSpendCredits): the lower of the balance and what is left of the daily limit the user set for this app. connectionDailyLimitCredits and connectionRemainingTodayCredits are null when the user chose no daily limit. storage: their plan, used, total and available bytes, percent used, how many days files are kept, and a breakdown into uploads, generations and hidden files. Pass threadId to also get threadSpend: what that thread's generations cost (the total credits used, and for each generation, newest first, its operation, model, status and the credits charged, refunded and net). All of these are positive numbers of credits spent: totalCreditsUsed and netCredits are net of refunds (charged minus refunded). Call this first to check the user can afford generations and has room for large uploads or video, or after a purchase to confirm credits arrived. Use estimate_cost to see whether one specific generation will fit.

Inputs: limit, threadId.

get_generation_statusGet generation statusA
Read-onlyIdempotent
Inspect

Check the status of one generation (node). Returns its status, progress percent (progressEstimated is true when it is estimated from typical run times rather than reported by the provider) and, when it failed, the failure reason; once complete, the output file id, media URL, thumbnail URL and dimensions. Poll this after starting a generation until the status is complete or failed. Once complete it also returns a small preview image (for a video, its poster frame) so you can see the result.

Inputs: nodeId (required), threadId (required), includePreview.

get_media_urlGet media URLA
Read-onlyIdempotent
Inspect

Get a fresh, signed download URL for one of the user's files (an outputFileId from a generation, or a fileId from the library). The URL works without signing in and expires after ttlMinutes (default 60, max 1440). Use it when an outputUrl has expired or is not directly downloadable. Fails if the file is still being generated or uploaded. For a generation's output it also returns a small preview image (for a video, its poster frame), since some clients can't open the URL themselves.

Inputs: fileId (required), ttlMinutes, includePreview.

get_render_statusGet render statusA
Read-onlyIdempotent
Inspect

Check a timeline render started by render_timeline. Returns its status (QUEUED, PROCESSING, COMPLETED, FAILED or CANCELLED), progress, and the output video URL once COMPLETED.

Inputs: renderId (required), threadId (required).

get_threadGet threadA
Read-onlyIdempotent
Inspect

Get one Framevine thread with its nodes (generations) in order. Each node has its id, type (image or video), operation, status, progress, prompt, model, parent and child node ids (branches), and, once completed, the output file id, media URL and dimensions. Use node ids as inputs to edit, redo, or extend tools.

Inputs: threadId (required).

get_timelineGet timelineA
Read-onlyIdempotent
Inspect

Show a thread's timeline: its cuts (named sequences of video clips), the active cut, and each clip's id, position, trim range, source video node, status and video URL. Use clip ids with reorder_clips and remove_clips. A thread with no timeline yet returns an empty cuts list.

Inputs: threadId (required).

image_to_videoImage to videoAInspect

Animate an existing completed image node into a video. The node is used as the start frame; pass endNodeId (another completed image node) to interpolate between two frames. modelKey comes from list_models (a video model) and durationSeconds must be one that model supports. Spends credits; use estimate_cost first if unsure. Returns immediately with a new nodeId and status; poll get_generation_status until it is COMPLETED or FAILED.

Inputs: nodeId (required), prompt (required), modelKey (required), threadId (required), +5 more.

list_foldersList foldersA
Read-onlyIdempotent
Inspect

List the user's library folders, in their sidebar order, with each folder's id, name and thread count. Use a folder id with move_thread_to_folder.

Inputs: no named parameters.

list_library_filesList library filesA
Read-onlyIdempotent
Inspect

List files in the user's library (uploads and generated outputs), paged. Each item has its file id, media kind, MIME type, name, size, purpose, media URL and creation time. Use a file id as an input to generation tools.

Inputs: page, sort, purpose, pageSize, +1 more.

list_modelsList modelsA
Read-onlyIdempotent
Inspect

List the image and video generation models available on Framevine, with each model's modelKey, media type (image or video), supported durations and aspect ratios, and what image inputs it accepts. Call this before generating to pick a valid modelKey, and use estimate_cost for pricing.

Inputs: no named parameters.

list_recent_generationsList recent generationsA
Read-onlyIdempotent
Inspect

List the user's most recently completed generations (images and videos) across all threads, newest first. Each item has its node id, thread id, type, operation, prompt, model, output file id, media URL and dimensions. Use the node id and thread id with get_thread or edit tools. Small preview images of the first few results are attached (videos show their poster frame).

Inputs: limit, includePreviews.

list_referencesList referencesA
Read-onlyIdempotent
Inspect

List the user's named references (characters, objects and other images saved under a name). Mention one in a generation prompt as @Name to reuse it. Each item has its reference id, name, kind, file id, image URL and how many generations use it.

Inputs: includeHidden.

list_threadsList threadsA
Read-onlyIdempotent
Inspect

List the user's most recent Framevine threads (conversation-like canvases of generations), newest first, with each thread's id, title, favorite flag, node count, and the type and status of its latest generation. Use a thread id with get_thread to see its contents.

Inputs: limit.

move_thread_to_folderMove thread to folderA
Idempotent
Inspect

Move a thread into a library folder (folder ids come from list_folders), or out of any folder by omitting folderId.

Inputs: threadId (required), folderId.

redo_generationRedo generationAInspect

Generate another take of an existing image or video node, reusing its original inputs and settings (use generate_image/generate_video for a new prompt from scratch). Optionally override the prompt, modelKey or image quality. Spends credits. Returns immediately with a new nodeId and status; poll get_generation_status until it is COMPLETED or FAILED.

Inputs: nodeId (required), threadId (required), prompt, quality, +1 more.

remove_clipsRemove clips from timelineA
DestructiveIdempotent
Inspect

Remove clips from a cut by clip id (from get_timeline). This only takes the clips off the timeline: the videos and their files stay in the thread and library and can be added again. Only the active cut can be changed. Returns the updated cut.

Inputs: cutId (required), clipIds (required), threadId (required).

renameRename thread or cutA
Idempotent
Inspect

Rename a thread (change its title) or a cut on a thread's timeline. target is "thread" or "cut"; a cut also needs cutId. Does not spend credits.

Inputs: name (required), target (required), threadId (required), cutId.

render_timelineRender timelineA
Idempotent
Inspect

Stitch the clips of a cut into one video. Does not spend credits (an identical render reuses the previous output), but renders use server CPU so they are limited per user (about 10 per hour). Returns a renderId and status; poll get_render_status until it is COMPLETED or FAILED.

Inputs: cutId (required), threadId (required).

reorder_clipsReorder clipsA
Idempotent
Inspect

Set the playback order of the clips in a cut. clipIds must list every clip of the cut exactly once in the new order (clip ids come from get_timeline). Only the active cut can be changed. Returns the cut.

Inputs: cutId (required), clipIds (required), threadId (required).

restore_nodeRestore nodeA
Idempotent
Inspect

Bring back a generation (node) removed with delete_node.

Inputs: nodeId (required), threadId (required).

update_referenceUpdate referenceA
Idempotent
Inspect

Rename a named reference or change its kind (reference ids come from list_references). Prompts that use the old @Name will no longer match it. Same naming rules as create_reference.

Inputs: referenceId (required), kind, name.

upload_imageUpload imageAInspect

Add an image to the user's library and return its file id, for use as input to generation, reference and timeline tools. Provide exactly one of imageBase64 (raw base64 or a data: URL) or imageUrl (a public https URL). Content is safety-scanned like a normal upload.

Inputs: fileName, imageUrl, imageBase64.

Tool Schema Changelog

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

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Generates video drafts from a prompt with a proprietary engine, then hands off to a human-editable timeline with tools for reshoots, takes, and media operations like image editing and speech synthesis.
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI agents to build and edit a real video timeline — cuts, text, shapes, keyframes, captions and music — in a live studio the user can watch and edit alongside, rendering actual frames so the agent can verify its own work instead of guessing. Finishes by exporting an MP4 or carrying the timeline into DaVinci Resolve, Premiere Pro, CapCut or Remotion.
      2
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.

    Resources