NestDaddy

Clueso

io.clueso/video · v1.0.2

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

Connect Remote server

Terminal
claude mcp add --transport http video https://connect.clueso.io/mcp
~/.cursor/mcp.json
{
  "mcpServers": {
    "video": {
      "url": "https://connect.clueso.io/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "video": {
      "type": "http",
      "url": "https://connect.clueso.io/mcp"
    }
  }
}
Claude Desktop
Settings > Connectors > Add custom connector
URL: https://connect.clueso.io/mcp

Tools 55 found in our last check

  • get_design_guide

    Clueso's design guide, the HTML animation pages guide and the Director's skills. Ask for everything you need in ONE call. Each select entry is a section path or plain words; words search all three and return the best few, each labelled with the path that selects it exactly. get_…

  • read_animation

    Read an HTML animation's page site (index.html, CSS, JS) like a repository. Read-only. • project_id alone → this project's animations, with which element shows which revision. • element_id (+ project_id) or animation → the summary: pages with their parameters, actions and cues;…

  • edit_animation

    Change an HTML animation's site: ONE revision, linted, checked and probed. A passing save with project_id moves that project's uses; a failing one is kept but moves nothing; your next edit continues from it. Saves return a contact sheet (preview: false skips it); preview: true |…

  • 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 0, add_clips(kind='blank') to append more clips, add_elements to place content…

  • 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_id="" (or "root"). Aspect ratio: pass any "W:H" (positive integers). The canvas…

  • 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. Defaults: - new_title omitted → "{source title} (copy)" when no folder_id is gi…

  • export_project

    Export the project as a video. Exports spend the workspace's export minutes (the user's paid allowance), so only export when the user asked for one, never as a step of your own (to get audio or a merged file, say). Two calls. The first starts nothing: it returns what the export…

  • 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 Exports tab, so start it, say so, and stop). Pass exactly one of `export_id` (…

  • get_media_job

    Fetch the outcome of a media job (an article GIF, a frame grab) that did not finish inline: the tool that started it returned { job_id, status: "processing" }. Waits for it rather than returning immediately, so one call is usually enough — set `wait_seconds` to how long you are…

  • 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, truncated }. `usage` is { cycle_start, cycle_end, generations_used, generations_limit…

  • 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 website, help center or LMS lesson. Returns { project_id, published, embed_url?, e…

  • 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-insensitive) already exists in that parent, it is returned with already_existed=true ins…

  • find

    Find any resource by `type`; filter by `query` (name substring unless noted) or exact `id`. Returns {type, count, items: [{id, name, type, ...}]} (+ total, has_more for projects/folders); pass ids straight to the consuming tool. Any `duration` is in SECONDS (= add_audio source_d…

  • 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') to see available options.

  • 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 same wire shape `add_audio` accepts (id, src, name, source_duration, guide_star…

  • get_clip

    Read one clip: elements (canvas px), voiceover (text, voice, duration, voiceover_volume), background, transition (null if none). Three independent axes: - `select` shapes the JSON. Full reads are large (word timings and type_data dominate); ask only for what you need. - `element…

  • update_clips

    Update clips in ONE call (always batch): background, transition, duration, title, hidden, position, voiceover_volume, video_styling (video clips), after_clip, subtitle_settings. - duration: sets the clip's length WITHOUT rescaling anything (unlike generating speech, which rescal…

  • remove_clip

    Remove a clip from the project by index. Cannot remove the last remaining clip. Interactive links to the removed clip are cleared: any button, question/results logic or form that jumped to it now continues, and a clip whose end action jumped to it plays the next clip. After remo…

  • 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 are duplicated into both clips with adjusted timing. Exception: a question, resul…

  • 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 the clip's voiceover words: each caption is a run of words, addressed by its `st…

  • 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-project: pass `target_project_id`, `source_project_id`, `source_clip_id`. The source c…

  • add_clips

    Create new clips on a project. One tool, four sources: - kind="blank": empty slide clips you'll populate with add_elements / generate_media. Pass `clips: [{title?, duration?}, ...]`. Note: create_project already creates clip 0; calling with N blank entries gives N+1 clips total.…

  • 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 placing. By default it is compact: every field with its type and a one-line note…

  • add_elements

    Add elements to one or more clips in ONE call (always batch). Items apply in order; one result per item (partial success ok). type_data shape: get_element_schema. - `defaults`: hoist what repeats (clip_index, element_type, font_setting, alignment…); items carry only what differs…

  • update_elements

    Update elements across one or more clips in ONE call (always batch). Items apply in order; partial success ok. clip_index not needed (element_id is project-unique). - Per item: position/timing fields, and/or type_data with element_type (settable fields: get_element_schema mode '…

  • 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 update_elements. Each removal is a granular element_remove patch scoped to that e…

  • 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 clip. The handler rejects partial lists so a reorder can never silently drop an ele…

  • update_groups

    Transform, keyframe, rename, nest or lock GROUPS. A group moves, scales, rotates and fades as ONE unit without touching children's stored positions: a camera push instead of building the layout twice. - Address by `group_id` (from get_clip select:['groups'], or returned by add_e…

  • 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 by id; pass it only as a hint - target="group": removes a GROUP node (requires c…

  • 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 existing timeline. Sound for an HTML animation goes here, not in its page: guide_sta…

  • 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, timing, loop) and write it back without losing the track's id. Only fields you pas…

  • 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. - The track starts where the clip starts and plays at normal speed. Shape it with u…

  • voiceover_batch

    Set voiceover text and/or generate speech for many clips in ONE call. Per entry: "set_text" (clip_index + text), "generate_speech" (async TTS; wait: true blocks until it lands), "set_and_generate" (both). Entries apply in order, one result each; all text lands in one save, TTS r…

  • auto_sync

    Run the agentic auto-sync pipeline on a clip with a source recording: detects natural sync points (UI changes, narrated steps) and inserts sync-marker nodes into its transcript. Required before voiceover TTS on video clips (clueso://docs/sync-points). Skips (no run): "audio_extr…

  • 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 but missed a step you care about. How matching works: - `word`: case-insensitive,…

  • upload_file

    Upload files to Clueso. Pick a mode by client and where the file lives: - `files` (ChatGPT only): the user's attachments, filled by ChatGPT; pass them instead of asking for a re-upload. - `file_name` (default for agents/scripts: Claude Code, Cursor, Claude Desktop): returns an u…

  • 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 confirms they are done uploading; the token covers all files they dropped on t…

  • 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_id` (from find type='image_gen_style_packs'), `reference_image_url` or `mcp_uploa…

  • 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}`. ⚠ MILLISECONDS here; get_clip's `voiceover_words` gives the same words in SECONDS as `{w…

  • get_article

    Get the article content as markdown. Screenshots appear as <SCREENSHOT {id}> placeholders, and things markdown can't show (an embedded video, a pasted image) as <EMBED {id}> placeholders. Returns the markdown text, a list of screenshot IDs and the article_version to pass to upda…

  • 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 markdown defines final order. Keep each <EMBED {id}> placeholder unchanged, or wha…

  • add_article_media

    Add a screenshot or GIF to the article. It goes right after the block holding the screenshot named in `after` ("start" for the top), in place of the screenshot named in `replace`, or else at the end of the article. Returns its screenshot_id (it appears in the article as `<SCREEN…

  • 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 fetch the current details without mutating. To DELETE an article image/GIF: call `…

  • 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-readable folder categories: design/ (colors, typography, backgrounds, animation), rul…

  • 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 tree (path, mime_type, and size per entry). Call this first when exploring an…

  • 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 change. Pass at least one to update metadata. `files` is a list of file mutations: -…

  • manage_brand_kit

    Create and change the workspace's brand kits (editors and admins). The same operations as the brand kit page, so a kit made here looks the same there. Actions: - "create": a kit from `url` (reads the site's logos, colors, fonts and icons; company details are researched in the ba…

  • 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 clueprint source data), or to switch all clips to a specific voice in one call. When…

  • pronunciation

    Read and edit the workspace pronunciation dictionary (Settings → Team → Pronunciation Dictionary). Use it whenever the user asks how a word, name or acronym is said. Do NOT respell the word in the voiceover script instead: the respelling shows in the script and captions, and eve…

  • translation_glossary

    Read and edit the workspace's translation glossary and translation rules (Settings → Translation). Every translation in the workspace follows them: captions translate, translated videos and articles. Use it when the user says how a term must be translated, that a product or bran…

  • 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 optional timestamp inside that clip. Pass `parent_comment_id` to REPLY to an existing…

  • 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 clip and a moment inside it. Read them before an editing pass so you act on what w…

  • 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 creates are placeholders; they become video clips when processing completes, so remov…

  • run_script

    Run a JavaScript program that calls this server's tools: loops, math, values carried between calls, one round trip. Use it whenever code says it more directly than separate calls (often). COMPUTE rather than hand-type literals: eased keyframe tracks, staggers, grids, palettes, p…

  • 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. Returns { job_id, status, result?, error? }. `status` is processing, completed or…

Details

Endpointhttps://connect.clueso.io/mcp (Streamable HTTP)
First published19 Aug 2026
Last updated19 Aug 2026
Registry nameio.clueso/video

More ai and media servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.