Skip to content
Clueso logo

Clueso MCP server

Which servers in the official MCP registry are Clueso's own, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.

read 2026-10-15

← Back to Clueso

Whose server it is
  • Registry nameio.clueso/videoverified in the MCP registry

The registry name sits under clueso.io. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.

When we asked itchecked 2026-10-15
  • Stateanswerschecked 2026-10-15
  • Tools51
  • Server calls itselfclueso-connect
  • Server version1.0.0
  • Protocol version2025-06-18

On 2026-10-15 the server answered initialize and tools/list without a sign-in. First answer in 35 ms.

Tools it offers51 tools · read 2026-10-15
  • 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 and stdlib together and return the…

  • 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…

  • 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="" (empty string). Aspect ratio…

  • 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 →…

  • 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 user it has started (with the…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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 (tags = the workspace's project tags, each…

  • 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 it is used, dependency_updates (imports…

  • 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 closer; preview_warnings). The server…

  • 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…

  • 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 WHAT YOU NEED. A full read is large — on…

  • 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_index, duration?, title?…

  • 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 highest index to lowest (or capture…

  • 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…

  • 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…

  • 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`…

  • 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_project already creates clip 0; calling…

  • 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…

  • 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_setting, alignment or gradientSetting on…

  • 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, element_type, and type_data entries like…

  • 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…

  • 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…

  • 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 building the target layout twice and…

  • 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…

  • 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. (For inserting an audio…

  • 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…

  • 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…

  • 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) - "generate_speech" — async TTS for a clip…

  • 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. Async: returns immediately with a status…

  • 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…

  • 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 + file_id) itself; pass the attachments…

  • 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…

  • generate_media

    Generate an AI image or 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…

  • 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…

  • 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 markdown defines final order. Get the…

  • 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 the project's base video, OR pass…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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…

  • 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 next to the tools instead of across the…

  • 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?…

How to connect

Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:

{
  "mcpServers": {
    "video": {
      "type": "http",
      "url": "https://connect.clueso.io/mcp"
    }
  }
}

Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.