Skip to content
Back to search
100
MCP live MCP 2025-11-25 streamable-http

Clueso

io.clueso/video

Make videos and docs with your AI agent — describe what you need, every output stays editable.

Watch this dependency

Get before/after evidence when observed tools, schemas, authentication access, availability or the endpoint changes.

Inspect evidence and set up a watch Share public evidence report
Uptime
100.0%
4 direct probes · 30d
Response
296ms
last probe
Tools
51
callable
Resources
15
readable
Prompts
0
available
Score: 100/100
Handshake verified by our own probe.
why this score
pass Answers the MCP handshake 50/50
The handshake and the list calls succeeded on the primary URL.
pass Lists tools, resources or prompts 30/30
51 tools, 15 resources, 0 prompts returned.
pass 3 or more catalogue items 10/10
66 items in total; 3 or more earns these points.
pass Describes itself 10/10
94 characters; more than 30 earns these points.

Tools · 51

get_design_guide

Clueso's design guide, animation guide and animation stdlib. Ask for everything you need in ONE call. Each select entry is a section path or plain words; words search the design guide, animation guide…

create_project

Create a new blank Clueso project. Returns the projectId and initialClipId — the project starts with one blank clip already at index 0 (default short duration). Use update_clips to resize/retitle clip…

update_project

Update a project's metadata: rename, change description, move to a different folder, or change aspect ratio. Only fields you provide are changed. To move a project to the workspace root, pass folder_…

duplicate_project

Clone an entire project — every clip, voiceover, asset, and metadata field — into a fresh project. The copy has its own S3 namespace, so changes or deletions to the source never affect the duplicate. …

export_project

Start a video export of the project. Returns immediately with an export_id; the export renders in the background (~5 min) and the user gets the result in the editor's Exports tab. Start it, tell the u…

get_export

Read a project's video export: its status and, once done, its link. Call it when the user asks for the link or the status, not to wait on an export you just started (the user gets that in the editor's…

get_recording_activity

Status of this workspace's auto-recordings, and how many recording generations this billing cycle has used. The same view as the Recordings page in the Clueso app. Returns { usage, rows, total, trunca…

get_embed

Get a project's embeddable video player: `embed_url` (permanent) and `embed_code` (a ready-to-paste <iframe>, the same snippet the editor's Share → Embed copies). Use it to put a Clueso video in a web…

create_folder

Create a folder in the workspace, optionally inside another folder, to organize projects. Returns { folder_id, name, parent_folder_id, already_existed }. If a folder with the same name (case-insensit…

find

Find any resource in Clueso by type, optionally filtered by name or exact id. One tool for listing and searching across the workspace. type: • projects | folders | tags | clueprints | workspaces (t…

read_animation

Read an animation's files like a repository. Read-only. • no path → the summary: entries with their settings, actions and cues, the file list, the latest revision, labelled versions, every place …

edit_animation

Change an animation's code: ONE revision, checked and probed in a sandbox. Each direct save returns a contact sheet (preview: false skips; preview: true or {entry, timestamps, filmstrip, ...} looks cl…

switch_workspace

Switch the active workspace. The choice sticks for this client until you change it again — including across reconnects — so every later call operates in the new workspace. Use find(type='workspaces') …

get_project

Get a summary of a project: canvas dimensions, per-clip summary (ids, indices, durations, element counts, voiceover_volume), and `audio_tracks` — every music/SFX entry on the project flattened to the …

get_clip

Read one clip: its elements (positions/sizes in canvas pixels), voiceover (text, voice, duration, voiceover_volume), background and transition. Pass `render` to also get a PNG of the frame. ASK FOR W…

update_clips

Update one or more clips in a single call — background, transition, duration, title, visibility, position, and (video clips) the footage transform via video_styling. Always batch. Each entry: { clip_…

remove_clip

Remove a clip from the project by index. Cannot remove the last remaining clip. After removal, all clips with index > clip_index shift down by 1. When removing multiple clips by index, remove from hi…

split_clip

Split a video clip into two clips at the given timestamp. The left clip keeps the original clip ID; the right clip gets a new ID and is inserted immediately after. Elements spanning the split point ar…

captions

Read and edit a clip's CAPTIONS (subtitles) — what they say, where one caption ends and the next begins, when each shows, captions not tied to the voiceover, and translation. Captions are built from t…

duplicate_clip

Clone one clip — within the same project, or **from another project** — into a target project. - Same project: pass `target_project_id` and `source_clip_id` (omit `source_project_id`). - Cross-projec…

add_clips

Create new clips on a project. One tool, three sources: - kind="blank": empty slide clips you'll populate with add_elements / generate_media. Pass `clips: [{title?, duration?}, ...]`. Note: create_pr…

get_element_schema

Return the schema for an element type's type_data, as TypeScript declarations. Call this before add_elements / update_elements when you don't already know the field shape for the element_type you're p…

add_elements

Add many elements across one or more clips in a single tool call. Replaces the per-element tool — always batch. SEND LESS. Most batches repeat themselves — the same clip_index, element_type, font_set…

update_elements

Update many elements across one or more clips in a single tool call. Replaces the per-element tool — always batch. SEND LESS, GET BACK LESS. `defaults` carries what every item shares (clip_index, ele…

remove_elements

Remove many elements across one or more clips in a single tool call. One entry per element ({clip_index, element_id}). Concurrency: parallel-safe (conflict domain: the individual element) — same as u…

reorder_elements

Reorder the elements inside a clip. List position IS the z-index — later entries in `ordered_element_ids` render on top of earlier ones. You MUST pass the full set of element IDs currently in the cli…

update_groups

Transform, keyframe, rename, nest or lock GROUPS. A group moves, scales, rotates and fades as ONE unit, without touching any child's stored position — which is how you get a camera push instead of bui…

remove_from_project

Remove an element, a group or an audio track from a project. - target="element": removes an element (requires element_id, or element_ids for several). clip_index is optional — the element is located b…

add_audio

Add a music track or sound effect that plays as a project-level audio layer over all clips. Does NOT consume a clip slot. Use this for background music or a soundtrack that should play under the exist…

update_audio

Mutate fields on an existing music/SFX track by id. Read existing tracks via `get_project.audio_tracks` — the per-entry shape there matches this tool's args, so you can flip a knob (volume, fades, tim…

extract_audio

The editor's "Extract Audio": a clip's own audio — the recording's sound on a video clip, or its generated voiceover — becomes a separate audio track (returns music_id), and the clip goes silent. - T…

voiceover_batch

Set voiceover text and/or trigger speech generation for any number of clips in a single call. Each entry chooses its own action: - "set_text" — set transcript for a clip (clip_index + text) …

auto_sync

Run the agentic auto-sync pipeline against a clip with a source recording. Detects natural sync points (UI state changes, narrated steps) and inserts sync-marker nodes into the clip's transcript. Asy…

add_sync_point

Insert one sync marker on a clip's transcript. Use this when: - The user is explicit about WHERE the camera should pause / cut (e.g. "sync the word 'submit' to 4.2s of the demo"). - `auto_sync` ran b…

upload_file

Upload one or more files to Clueso. Pick a mode by client + where the file lives: 0. **files** — ChatGPT only: files the user attached in the conversation. ChatGPT fills each entry (download_url + fi…

check_uploads

Fetch all files the user uploaded via the hosted upload page. Returns one mcp_upload_id per file — pass each to the appropriate tool (add_clips, add_article_media, etc.). Call this once after the user…

generate_media

Generate an AI image or a canvas-code-based animation directly into a clip. - kind="image": text-to-image. Pass `prompt`. Optional: `animation_setting` (entry/exit — set it HERE, see below), `style_i…

analyze_audio

Analyze an audio file. Modes: - transcript: Speech-to-text with word-level timestamps — returns `{language, full_text, words}` where each word is `{word, start_ms, end_ms, punctuated_word}`. ⚠ MILLISE…

get_article

Get the article content as markdown. Screenshots appear as <SCREENSHOT {id}> placeholders. Returns the markdown text and a list of screenshot IDs.

update_article

Update article text content from markdown. Use <SCREENSHOT {id}> placeholders to position screenshots. Screenshots in the markdown are kept. Screenshots removed from markdown are deleted. Order in mar…

add_article_media

Add a screenshot or GIF to the article. Returns a screenshot_id to place in the article via update_article using `<SCREENSHOT screenshot_id>`. - kind="image": pass `timestamp` to capture a frame from…

update_article_media

Update an article image/GIF (screenshot), or inspect its current state. - Provide one or more of `zoom_factor`, `crop`, `shapes` to change metadata. - Pass `render=true` (with no other updates) to fet…

create_clueprint

Create a new clueprint (reusable video template). A clueprint is a structured file directory with design notes, composition rules, and screenshots that can be used to generate videos. Use human-reada…

get_clueprint

Fetch clueprint data. Use `include` to control how much you pull back: - include="metadata": just the clueprint's name/description/tags/visibility/thumbnail. - include="tree": metadata + the full file…

update_clueprint

Update a clueprint's metadata and/or file contents in one call. Metadata fields (`name`, `description`, `tags`, `visibility`, `thumbnail_path`) are applied as a patch — only the fields you pass chang…

set_voice

Set the voiceover voice for every clip in a project, or only for the clips in `clip_ids`. Use this to apply a clueprint's voice (read `voiceover.voice.name` and `voiceover.voice.engine` from the clue…

add_comment

Post a review comment on a project, attributed to "Clueso AI". Use this to leave feedback, suggestions, or notes — either at the project level (no clip_id) or pinned to a specific clip with an option…

get_comments

Read the review comments on a project — the other half of `add_comment`, which could post but never read. Comments are how a human reviewer tells you what is wrong with a video: a note pinned to a cl…

record_screen

Records the product on a mock (Code record) as a screen-recording clip in a project. Creates blank placeholder clips, registers job entities, and sends the job to AVS. The blank clips this tool creat…

run_script

Write a JavaScript program that calls this server's other tools. You have the whole language: loops, arithmetic, functions, conditionals, and values carried from one call into the next — all running n…

get_script_job

Fetch the outcome of a run_script that did not finish inline. Waits for it rather than returning immediately, so one call is usually enough — set `wait_seconds` to how long you are willing to hold. R…

Resources · 15

clueprint-authoring

How to author a clueprint — folder structure, naming, screenshots, anti-patterns. Read before creating or editing clueprint files.

clueso://docs/clueprint-authoring
animation-prompts

How to write animation prompts for generate_media(kind='animation') / add_elements(element_type='animation'). Includes the component patterns: component_id to reuse one exactly, base_component_id to g…

clueso://docs/animation-prompts
sync-points

What sync points are, when to run auto_sync, and why TTS for video clips depends on them. Read before queuing voiceover_batch on a video clip.

clueso://docs/sync-points
generation-styles

How style_id steers generate_media (kind='image') and how to discover the available presets via find(type='image_gen_style_packs').

clueso://docs/generation-styles
element-schema-text

Schema for 'text' element type: Plain text element. Use for labels, captions, headings, or any text overlay without a background bubble. POSITION: for TEXT `y` is the vertical CENTRE when centre-align…

clueso://schemas/element/text
element-schema-callout

Schema for 'callout' element type: Text inside a styled background bubble. Use to annotate parts of a screen, highlight a key point, or add a speech-bubble style note. Ships with sensible bubble defau…

clueso://schemas/element/callout
element-schema-rectangle

Schema for 'rectangle' element type: Rectangle shape. Use for colored boxes, dividers, backgrounds, framing, or any filled/outlined rectangular region. Set `shapeSubType` to `ellipse`, `polygon`, or `…

clueso://schemas/element/rectangle
element-schema-arrow

Schema for 'arrow' element type: Arrow element. Position/size define its bounding box. Use to point at UI elements, connect concepts, or indicate direction. Set `shapeSubType` to `line` for a plain li…

clueso://schemas/element/arrow
element-schema-blur

Schema for 'blur' element type: Blur overlay that obscures a rectangular region. Use to redact sensitive info, hide UI regions, or create depth-of-field effects.

clueso://schemas/element/blur
element-schema-spotlight

Schema for 'spotlight' element type: Spotlight highlighting a specific area while dimming surroundings. Use to guide viewer attention to a button, field, or key UI element. The element's bounds define…

clueso://schemas/element/spotlight
element-schema-zoom

Schema for 'zoom' element type: Zoom effect that magnifies a region around a center point. Multiple zooms can exist in a clip, but their time windows must not overlap — the backend rejects a new zoom …

clueso://schemas/element/zoom
element-schema-image

Schema for 'image' element type: Image element. Two modes — provide ONE of: • prompt → AI-generated image (style_id, reference_image_url, mcp_upload_id are gen hints). Async; element renders in back…

clueso://schemas/element/image
element-schema-video

Schema for 'video' element type: Video element — a video placed as a visual layer WITHIN an existing clip (picture-in-picture, b-roll, inset demo, looping background). Positioned at x/y/width/height i…

clueso://schemas/element/video
element-schema-animation

Schema for 'animation' element type: Canvas-code-based generative visual element — JS that renders to canvas (the server compiles it; you write a prompt, not the code). Use whenever an idea is creativ…

clueso://schemas/element/animation
element-schema-avatar

Schema for 'avatar' element type: AI avatar — a presenter that lip-syncs to the clip's voiceover. Pick a look with find(type='avatars') and pass its id as avatarId. One avatar per clip. The canvas sho…

clueso://schemas/element/avatar

How to use

Add to your Claude Desktop / Cursor / Cline MCP config:

{
  "mcpServers": {
    "clueso": {
      "url": "https://connect.clueso.io/mcp",
      "transport": "streamable-http"
    }
  }
}