# Clypmint (remote · clypmint.com)

Edit videos with AI: cuts, captions, B-roll and motion in a style you pick or copy from any video.

- Trust score: 69/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-23

## Components

- remote · `clypmint.com`: 69/100 (this document), [markdown](https://verifymcp.io/servers/com-clypmint-clypmint/clypmint.md), [page](https://verifymcp.io/servers/com-clypmint-clypmint/clypmint)

## Channel facts

- Endpoint: `https://clypmint.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.5.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-23.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (create_video).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 38/100
  - 0% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 11100 tokens (~181/item across 61 items; 45 tools + 16 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 67/100
  - Stability observed for 20 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 92/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 72% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 47 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
  - Supports UI / widget rendering.

## Install

### How do I install the Clypmint MCP server?

Clypmint is a hosted endpoint at https://clypmint.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-clypmint-clypmint 'https://clypmint.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-clypmint-clypmint": {
      "url": "https://clypmint.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-clypmint-clypmint": {
      "type": "http",
      "url": "https://clypmint.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-clypmint-clypmint]
url = "https://clypmint.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-clypmint-clypmint": {
      "type": "remote",
      "url": "https://clypmint.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-clypmint-clypmint --url 'https://clypmint.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-clypmint-clypmint:
    url: "https://clypmint.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-clypmint-clypmint": {
      "Transport": "http",
      "Url": "https://clypmint.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-clypmint-clypmint -t streamable-http -u 'https://clypmint.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-clypmint-clypmint": {
      "type": "http",
      "url": "https://clypmint.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-23 (score 69, +1)

- [security regression] Tool “apply_edits” was removed
- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/ad-with-three-hooks/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/edit-video/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/clip-podcast-into-shorts/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/edit-video/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/clip-podcast-into-shorts/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/ad-with-three-hooks/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] The server rewrote its instructions, which are the text every model session reads
- [security] New tool “add_scene”, which the server declares destructive
- [security] New tool “cut_video_words”, which the server declares destructive
- [security] New tool “move_scene”, which the server declares destructive
- [security] New tool “put_video_overlay”, which the server declares destructive
- [security] New tool “remove_scene”, which the server declares destructive
- [security] New tool “remove_scene_layer”, which the server declares destructive
- [security] New tool “remove_video_overlay”, which the server declares destructive
- [security] New tool “replace_scene_screen”, which the server declares destructive
- [security] New tool “set_caption_style”, which the server declares destructive
- [security] New tool “set_element_content”, which the server declares destructive
- [security] New tool “set_element_layout”, which the server declares destructive
- [security] New tool “set_output_frame”, which the server declares destructive
- [security] New tool “set_scene_sounds”, which the server declares destructive
- [security] New tool “set_scene_text”, which the server declares destructive
- [security] New tool “set_video_music”, which the server declares destructive
- [security] New tool “set_video_sound_effects”, which the server declares destructive
- [security] New tool “set_word_emphasis”, which the server declares destructive
- [security] New tool “swap_scene_picture”, which the server declares destructive
- [security] Tool “edit_video” rewrote its description, which is the text the model reads
- [security] Tool “revise_video” rewrote its description, which is the text the model reads
- [security] Tool “import_asset” no longer declares itself destructive
- [security] Tool “plan_content” no longer declares itself destructive
- [security] Tool “save_clip” no longer declares itself destructive
- [security] Tool “adjust_style” is now declared destructive
- [functional regression] Schema quality: 7878 → 11100
- [functional improvement] Tool coverage: 65% → 72%
- [functional] Destructive annotations: pass → 100
- [functional] Server version: 1.5.0 → 1.5.1

### 2026-10-22 (score 68, +1)

- [security regression] A breaking change shipped without a version bump: still 1.4.0
- [security regression] Tool “approve_plan” was removed
- [security regression] Tool “cancel_post” was removed
- [security regression] Tool “connect_social_accounts” was removed
- [security regression] Tool “get_social_accounts” was removed
- [security regression] Tool “list_posts” was removed
- [security regression] Tool “post_content_plan” was removed
- [security regression] Tool “schedule_plan” was removed
- [security regression] Tool “schedule_post” was removed
- [security regression] Tool “update_post” was removed
- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/ad-with-three-hooks/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/edit-video/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/clip-podcast-into-shorts/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/edit-video/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/clip-podcast-into-shorts/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/ad-with-three-hooks/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “apply_edits” rewrote its description, which is the text the model reads
- [security] Tool “create_video” rewrote its description, which is the text the model reads
- [security] Tool “create_videos” rewrote its description, which is the text the model reads
- [security] Tool “edit_content_plan” rewrote its description, which is the text the model reads
- [security] Tool “edit_video” rewrote its description, which is the text the model reads
- [security] Tool “fix_captions” rewrote its description, which is the text the model reads
- [security] Tool “forget” rewrote its description, which is the text the model reads
- [security] Tool “get_content_plan” rewrote its description, which is the text the model reads
- [security] Tool “get_profile” rewrote its description, which is the text the model reads
- [security] Tool “get_thread” rewrote its description, which is the text the model reads
- [security] Tool “get_video_activity” rewrote its description, which is the text the model reads
- [security] Tool “list_memory” rewrote its description, which is the text the model reads
- [security] Tool “list_versions” rewrote its description, which is the text the model reads
- [security] Tool “remember” rewrote its description, which is the text the model reads
- [security] Tool “restore_version” rewrote its description, which is the text the model reads
- [security] Tool “revise_video” rewrote its description, which is the text the model reads
- [security] Tool “save_clip” rewrote its description, which is the text the model reads
- [functional improvement] Tool coverage: 57% → 65%
- [functional] Server version: 1.4.0 → 1.5.0

### 2026-10-21 (score 67, 0)

- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/ad-with-three-hooks/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/edit-video/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/clip-podcast-into-shorts/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/edit-video/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/clip-podcast-into-shorts/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/ad-with-three-hooks/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] Tool “copy_style” rewrote its description, which is the text the model reads
- [security] Tool “edit_video” rewrote its description, which is the text the model reads
- [security] Tool “revise_video” rewrote its description, which is the text the model reads
- [cosmetic] “check_video” added an optional parameter “job_id”
- [cosmetic] “copy_style” added an optional parameter “mode”
- [cosmetic] “edit_video” added an optional parameter “reference_mode”
- [cosmetic] “edit_video” added an optional parameter “reference_url”

### 2026-10-20 (score 67, 0)

- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/ad-with-three-hooks/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/edit-video/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/clip-podcast-into-shorts/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/edit-video/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/clip-podcast-into-shorts/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/ad-with-three-hooks/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] Tool “apply_edits” rewrote its description, which is the text the model reads
- [security] Tool “revise_video” rewrote its description, which is the text the model reads
- [cosmetic] “revise_video” added an optional parameter “attachments”

### 2026-10-19 (score 67, +1)

- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/ad-with-three-hooks/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/edit-video/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/clip-podcast-into-shorts/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/edit-video/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/clip-podcast-into-shorts/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/ad-with-three-hooks/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [cosmetic] “create_video” reworded the description of “asset_staging_keys”
- [cosmetic] “create_video” reworded the description of “instructions”

### 2026-10-18 (score 66, 0)

- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/ad-with-three-hooks/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/edit-video/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/clip-podcast-into-shorts/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/edit-video/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/clip-podcast-into-shorts/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/ad-with-three-hooks/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] New tool “save_clip”, which the server declares destructive
- [security] Tool “apply_edits” rewrote its description, which is the text the model reads
- [security] Tool “copy_style” rewrote its description, which is the text the model reads

### 2026-10-17 (score 66, 0)

- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/ad-with-three-hooks/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/edit-video/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/clip-podcast-into-shorts/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/edit-video/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/clip-podcast-into-shorts/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/ad-with-three-hooks/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “apply_edits” rewrote its description, which is the text the model reads
- [security] Tool “check_video” rewrote its description, which is the text the model reads
- [security] Tool “create_video” rewrote its description, which is the text the model reads
- [security] Tool “create_videos” rewrote its description, which is the text the model reads
- [security] Tool “edit_video” rewrote its description, which is the text the model reads
- [security] Tool “get_workflow” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 122 → 148
- [functional regression] Resource “assets-and-hosts.md” was removed
- [functional regression] Resource “creative-brief.md” was removed
- [functional regression] Resource “metalog-example.md” was removed
- [functional] Server version: 1.3.8 → 1.4.0
- [cosmetic] “check_video” added an optional parameter “wait”
- [cosmetic] “edit_video” added an optional parameter “camera_sound”
- [cosmetic] “edit_video” added an optional parameter “footage_from”
- [cosmetic] “edit_video” added an optional parameter “kind”
- [cosmetic] “edit_video” added an optional parameter “length”
- [cosmetic] “edit_video” added an optional parameter “song_upload”
- [cosmetic] “create_video” reworded the description of “instructions”
- [cosmetic] “create_video” reworded the description of “seconds”
- [cosmetic] “edit_video” reworded the description of “formats”
- [cosmetic] “edit_video” reworded the description of “instructions”
- [cosmetic] “edit_video” reworded the description of “music_staging_key”

### 2026-10-16 (score 66, +1)

- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/ad-with-three-hooks/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/edit-video/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “SKILL.md” now points somewhere else: skill://clypmint/clip-podcast-into-shorts/SKILL.md → skill://clypmint/month-of-faceless-posts/SKILL.md
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/edit-video/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/clip-podcast-into-shorts/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml
- [security] Resource “openai.yaml” now points somewhere else: skill://clypmint/ad-with-three-hooks/agents/openai.yaml → skill://clypmint/month-of-faceless-posts/agents/openai.yaml

## MCP tools (45)

### `get_workflow` (~85 tokens)

Read current Clypmint workflows

Fuller notes on using Clypmint, when a request is unusual: overview (which tool and fields for a request, and one-call changes), music, styles, editing (changes and the canvas), publishing (posting and monthly plans), capabilities. A normal request needs none of it: the tool descriptions are enough. Read-only, free.

Input parameters:

- `topic` (string)

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `create_video` (~977 tokens)

Make a faceless video

Make a faceless video without filming or uploading footage. Supply exactly one of idea (Clypmint writes the narration) or script (spoken exactly as supplied). Defaults to a 30-second vertical video; seconds may be 15, 30 or 60. An exact script sets its own length at about 2.5 words a second (at most 172 words for 60 s); leave seconds out with a script and the shortest length that fits is used, and a script too long is refused at once with the word count. Uses the selected style’s pictures, designed screens, captions and sound, with the linked account’s existing credits and limits. Style: inspect browse_styles and its actual inputs. Serif Editorial Launch is format: motion with inputs.voice:none by default; Bold Navy Statement is narrated faceless with Chris as its style default. An explicit voiceover request adds narration to motion while keeping its visuals and aligning them to the recorded speech. Other faceless styles or ready saved copies remain available. A style marked format: talking is made for someone on camera. Optional: style_id (with style_version for a saved style of your own), formats (9:16, 16:9, 1:1, 4:5; first is the main one), voice (one of 21 narrators by name; omitted, preserve the style’s voice default, including none for motion; "Voice: <name>" in instructions works too), sound_effects (on unless false), music_bed (the style’s music under the voice, only when true), purpose, instructions up to 8,000 characters, asset_ids from list_assets, asset_staging_keys from import_asset (logo: true for the brand’s logo), and music_staging_key from import_asset. Cost: 3 credits to make, plus 1 for each started minute of voice-over and 1 for each started minute of finished video after the first, plus 2 for each extra format; dry_run: true answers the cost and starts nothing. For several videos at once use create_videos; for a month of posts use plan_content. Return the studio_url and call check_video with video_id for progress and the finished download. Pre…

Input parameters:

- `asset_ids` (array)
- `asset_staging_keys` (array): Pictures the user wants shown (a portrait, a product shot, an app screen): import each with import_asset (its url) and list the keys here.
- `dry_run` (boolean): true: answer the credit cost and start nothing.
- `format` (string)
- `formats` (array): Every shape to make, the main one first: 9:16, 16:9, 1:1, 4:5.
- `idea` (string)
- `instructions` (string): Anything else the user asked for, in their own words: where each picture goes, the tone. Length, narrator, pictures and shapes go in their own fields. No rule lists. A link written here is not opened…
- `music_bed` (boolean): true: lay the style's own music bed under the narration (none unless asked); false: never. music_staging_key brings a song of your own instead.
- `music_staging_key` (string): A song from import_asset (mp3, wav or m4a) to lay under the voice.
- `operation_id` (string, required)
- `purpose` (string): organic (a post), ad (three openings by default), youtube (horizontal), sales_page.
- `script` (string)
- `seconds`: How long: 15, 30 or 60. With a script, leave it out: the script sets the length (about 2.5 words a second; at most 43 words for 15, 86 for 30, 172 for 60).
- `sound_effects` (boolean)
- `style_id` (string)
- `style_version` (integer)
- `title` (string)
- `voice` (string): The narrator for a video made from words: matilda, sarah, jessica, alice, liam, chris, brian, george, roger, laura, charlie, river, will, eric, bella, daniel, lily, bill, adam, callum, harry (sarah:…

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `import_asset` (~299 tokens)

Import a shared asset

Import one image or song up to 32 MiB for a video: a file attached in ChatGPT (file), or a public https link to the file (url) from Claude or any host that cannot attach files. logo: true marks the image as the brand’s logo. Returns an asset_staging_key for create_video’s asset_staging_keys (or music_staging_key for a song), usable for seven days. Repeating the same operation_id and file returns the original receipt. Does not import video footage (edit_video does) or read the host’s wider library. No link and no attachment? The account owner can add the logo once on the Brand page (no website needed): https://clypmint.com/studio/brand.

Input parameters:

- `file` (object): A file attached in ChatGPT. Hosts that cannot attach files send url instead.
- `file_name` (string): A name for the file.
- `logo` (boolean): true when the image is the brand's logo: the video uses it as the brand's mark.
- `operation_id` (string, required)
- `url` (string): A public https link to the image (PNG, JPEG, WebP, GIF) or song (MP3, WAV, M4A), up to 32 MiB. Use it from Claude or any host that cannot attach a file: the direct link to the file itself, not a page…

Output parameters:

- `asset_staging_key` (string)
- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `mime_type` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `get_project_context` (~112 tokens)

Inspect a video project

Read an owned video’s version, scenes, captions and editable canvas element IDs/capabilities. Optional output_id selects a clip/format; element_offset pages through the canvas inventory. Use the returned version/output and actual IDs with apply_edits for direct edits without a second Clypmint model round. Canvas image IDs name assets already in this version. Returns project data without a visual card.

Input parameters:

- `element_offset` (integer)
- `output_id` (string)
- `video_id` (string, required)

Output parameters:

- `available` (boolean)
- `captions` (array|object|null)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `scenes` (array)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `list_assets` (~26 tokens)

List reusable media

List reusable media owned by the linked account, including the asset IDs accepted by video creation.

Output parameters:

- `assets` (array)
- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `fix_captions` (~241 tokens)

Fix captions

Fix caption words or the key-word colour of a finished video, without a new edit; timing never moves. Either rewrite lines (from, to, text from get_project_context captions) or swap words everywhere with replace: [{ heard, spelled }] (brand names, people). A swapped name is also remembered for later videos. Each spoken word keeps a caption word, so a 2-word name cannot become 1 word here: use remember plus revise_video. Free; 5 a day per video. Cost: Free: no credits.

Input parameters:

- `base_version` (string)
- `color` (string): The key words' colour.
- `lines` (array): The caption lines to rewrite, from get_project_context captions (from, to, text).
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `replace` (array): Swap words everywhere they appear, e.g. a brand name: [{ heard: "Clip Mint", spelled: "ClipMint" }].
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `get_video_activity` (~85 tokens)

Watch the editor work

While a video is being made, read what the editor is doing: its stage, minutes left, the paper edit, each step (looked at footage, searched, previewed) and the names it heard. Use it to narrate progress instead of waiting silently. Cost: Free: no credits.

Input parameters:

- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `get_thread` (~60 tokens)

Read a video’s history

Read every round of changes, direct edit and caption fix on a video, oldest first, with who asked, the status and the version it made. Cost: Free: no credits.

Input parameters:

- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `items` (array)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `list_versions` (~53 tokens)

List versions

List the versions of a video, newest last, and which one is live. Use with restore_version to undo. Cost: Free: no credits.

Input parameters:

- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `versions` (array)
- `video_id` (string|null)

### `restore_version` (~62 tokens)

Restore a version

Make an earlier version of a video live again (undo). Nothing is deleted. Free. Cost: Free: no credits.

Input parameters:

- `version_id` (string, required): A version_id from list_versions.
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `save_clip` (~125 tokens)

Keep a clip to use again

Keep a finished clip (or hook, or film) of a video as a reusable asset. Its asset_id goes in asset_ids of edit_video or create_video, so a clip can open another video, sit inside one, or become the whole video. Read output_id from check_video. Free. Cost: Free: no credits.

Input parameters:

- `output_id` (string, required): The clip (or hook, or main film) to keep, from check_video, e.g. short-2-9x16.
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `remember` (~100 tokens)

Remember a preference

Teach Clypmint one lasting preference for every later video of this brand, in plain words: caption size, pace, sound effects, colours, "own footage first", or how a name is spelled. Up to 200 characters. Free. Cost: Free: no credits.

Input parameters:

- `brand_id` (string)
- `text` (string, required): One preference in plain words, e.g. "Bigger captions" or "Always spell it ClipMint".

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `list_memory` (~46 tokens)

List what Clypmint remembers

List the preferences, looks and spellings Clypmint remembers for the brand, with the ids forget takes. Cost: Free: no credits.

Input parameters:

- `brand_id` (string)

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `forget` (~44 tokens)

Forget a preference

Forget one remembered preference by its id from list_memory. Later videos leave it out. Cost: Free: no credits.

Input parameters:

- `memory_id` (string, required): An id from list_memory.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `create_videos` (~340 tokens)

Make several faceless videos

Make up to 10 faceless videos in one call (more: batches of 10; a month of posts is plan_content), each from an idea or an exact script, with shared defaults (seconds, style_id, formats, voice: matilda/sarah/jessica/alice/liam/chris/brian/george/roger/laura/charlie/river/will/eric/bella/daniel/lily/bill/adam/callum/harry, sound_effects). Every item is checked before any starts; each is idempotent on its own operation id (operation_id.N), so a retry never makes doubles. Each video costs 3 credits to make, plus 1 for each started minute of voice-over and 1 for each started minute of finished video after the first, plus 2 for each extra format; dry_run: true answers the total and starts nothing. Returns the video ids; check each with check_video, then schedule_plan. Cost: About 4 credits per 30-second video (3 credits to make, plus 1 for each started minute of voice-over and 1 for each started minute of finished video after the first, plus 2 for each extra format).

Input parameters:

- `defaults` (object): Settings every item gets unless it says otherwise.
- `dry_run` (boolean): true: answer the credit cost and start nothing.
- `items` (array, required): Up to 10 videos, each with exactly one of idea or script.
- `operation_id` (string, required): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `items` (array)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)
- `videos` (array)

### `plan_content` (~491 tokens)

Write a month of video ideas

Start a content calendar for a topic: count faceless videos (1-31) over days (7-31), each with a title, hook, the exact script, caption, hashtags and a posting time. Best: write the ideas yourself in the conversation and send them as items (taken as written, at once); otherwise Clypmint writes them (this call keeps going until they are written, or tells you to call again with the same operation_id). Makes nothing and spends nothing; answers plan_id, the ideas and the quote (credits a video, room left this month). Show the user the ideas, change them with edit_content_plan, and approve_plan only after their yes. Use for "start a faceless account" or "a month of posts about X". Cost: Free to write; making each video costs about 4 credits (30 s).

Input parameters:

- `audience` (string)
- `count` (integer): How many videos (1-31); leave out when sending items.
- `days` (integer, required): Over how many days (7-31).
- `instructions` (string)
- `items` (array): Ideas you wrote yourself (title, hook, script, caption, hashtags): taken as written, at once. Without them Clypmint writes the ideas.
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `platforms` (array): Where each post goes; Instagram when left out.
- `seconds`
- `start_at` (string): The first day; tomorrow when left out.
- `style_id` (string)
- `timezone` (string)
- `topic` (string, required): What the account posts about.
- `voice` (string): The narrator for a video made from words: matilda, sarah, jessica, alice, liam, chris, brian, george, roger, laura, charlie, river, will, eric, bella, daniel, lily, bill, adam, callum, harry (sarah:…

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `items` (array)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `quote` (object)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `edit_content_plan` (~93 tokens)

Change ideas in a content calendar

Change ideas by number (n) before they are made or posted: title, hook, script, caption, hashtags, posting time, platforms, or removed: true to drop one (false puts it back). Words cannot change once an idea is being made; a scheduled post changes with update_post. Free. Cost: Free: no credits.

Input parameters:

- `items` (array, required)
- `plan_id` (string, required)

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `items` (array)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `get_content_plan` (~63 tokens)

Check a content calendar

Read a calendar from plan_content: each idea’s state (draft, making, ready, needs_connect, needs_time, scheduled, posted, failed), its video and post, and the quote. Cost: Free: no credits.

Input parameters:

- `plan_id` (string, required)

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `items` (array)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `states` (object)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `remove_scene` (~207 tokens)

Remove a scene

Remove this scene and its footage time. To remove only graphics or camera motion while keeping speech, use remove_scene_layer. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.

Input parameters:

- `base_version` (string): The version the edits are for; the current one when left out.
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): One output (a hook, a Short, a format) from check_video; the main film when left out.
- `scene_id` (string, required): A scene id (sceneId) from get_project_context.
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `remove_scene_layer` (~207 tokens)

Remove a scene layer

Remove the graphic or camera movement from this scene, preserving its footage and captions. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.

Input parameters:

- `base_version` (string): The version the edits are for; the current one when left out.
- `layer` (string, required)
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): One output (a hook, a Short, a format) from check_video; the main film when left out.
- `scene_id` (string, required): A scene id (sceneId) from get_project_context.
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `replace_scene_screen` (~218 tokens)

Replace scene graphics

Replace this scene screen with the supported screen shape returned by get_project_context. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.

Input parameters:

- `base_version` (string): The version the edits are for; the current one when left out.
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): One output (a hook, a Short, a format) from check_video; the main film when left out.
- `scene_id` (string, required): A scene id (sceneId) from get_project_context.
- `screen` (object, required): A screen in the shape get_project_context shows for that scene.
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `set_scene_text` (~229 tokens)

Change scene text

Set one text field, such as screen.title, on the selected scene. Preserve the user’s exact words. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.

Input parameters:

- `base_version` (string): The version the edits are for; the current one when left out.
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): One output (a hook, a Short, a format) from check_video; the main film when left out.
- `path` (string, required): Which text, e.g. 'screen.title'.
- `scene_id` (string, required): A scene id (sceneId) from get_project_context.
- `text` (string, required)
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `swap_scene_picture` (~235 tokens)

Swap a scene picture

Replace the selected scene picture with a picture key already used in this version, not a library asset ID. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.

Input parameters:

- `asset_id` (string, required): A picture key this version already uses (a scene's picture from get_project_context), not a library asset id.
- `base_version` (string): The version the edits are for; the current one when left out.
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): One output (a hook, a Short, a format) from check_video; the main film when left out.
- `scene_id` (string, required): A scene id (sceneId) from get_project_context.
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `move_scene` (~227 tokens)

Change scene timing

Set the scene’s first and last transcript word numbers. Use this to shorten a graphic without removing the footage underneath. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.

Input parameters:

- `base_version` (string): The version the edits are for; the current one when left out.
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): One output (a hook, a Short, a format) from check_video; the main film when left out.
- `scene_id` (string, required): A scene id (sceneId) from get_project_context.
- `video_id` (string, required): The video id from list_videos.
- `words` (array, required): [first, last] word numbers from the transcript in get_project_context.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `add_scene` (~215 tokens)

Add a scene

Insert one scene using the supported scene shape returned by get_project_context; after null inserts it at the start. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.

Input parameters:

- `after` (required): The scene it follows; null for the start.
- `base_version` (string): The version the edits are for; the current one when left out.
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): One output (a hook, a Short, a format) from check_video; the main film when left out.
- `scene` (object, required): The new scene, shaped like the others.
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `cut_video_words` (~206 tokens)

Cut footage by words

Remove footage time for the inclusive transcript word range. This removes speech, unlike removing a graphic layer. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.

Input parameters:

- `base_version` (string): The version the edits are for; the current one when left out.
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): One output (a hook, a Short, a format) from check_video; the main film when left out.
- `video_id` (string, required): The video id from list_videos.
- `words` (array, required): [first, last] word numbers from the transcript in get_project_context.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `set_word_emphasis` (~197 tokens)

Change word emphasis

Add or remove emphasis on specific transcript word indices, keeping the words and their timing. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.

Input parameters:

- `add` (array)
- `base_version` (string): The version the edits are for; the current one when left out.
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): One output (a hook, a Short, a format) from check_video; the main film when left out.
- `remove` (array)
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `set_caption_style` (~197 tokens)

Style captions

Change caption size, position or style using supported values from the project. For spelling or caption text use fix_captions. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.

Input parameters:

- `base_version` (string): The version the edits are for; the current one when left out.
- `captions` (object, required)
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): One output (a hook, a Short, a format) from check_video; the main film when left out.
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `set_video_music` (~321 tokens)

Change video music

Enable or remove added music while preserving source speech. Use a music_staging_key from import_asset or one of these tracks: bright-house (upbeat), lofi-desk (calm), tech-forward (tech), documentary-pulse (story), gym-phonk (energetic), acoustic-morning (warm), soft-piano (emotional), funk-pop (fun), night-suspense (mystery), rise-up (inspiring). level_db is relative to source audio. beat_sync is supported only for source-shot action montages; other clocks refuse it. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.

Input parameters:

- `base_version` (string): The version the edits are for; the current one when left out.
- `beat_sync` (boolean)
- `enabled` (boolean, required)
- `level_db` (number)
- `music_staging_key` (string)
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): One output (a hook, a Short, a format) from check_video; the main film when left out.
- `track` (string)
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `set_video_sound_effects` (~202 tokens)

Change sound effects

Enable or disable added sound effects and select subtle or punchy intensity. Preserve speech and music. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.

Input parameters:

- `base_version` (string): The version the edits are for; the current one when left out.
- `intensity` (string)
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): One output (a hook, a Short, a format) from check_video; the main film when left out.
- `sound_effects` (boolean, required)
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `set_scene_sounds` (~230 tokens)

Change scene sound cues

Replace this scene’s added sound cues; an empty cues list removes them. Use names from scenes.soundOptions and word indices from soundWords. Preserve speech; the global sound mute still applies. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.

Input parameters:

- `base_version` (string): The version the edits are for; the current one when left out.
- `cues` (array, required)
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): One output (a hook, a Short, a format) from check_video; the main film when left out.
- `scene_id` (string, required): A scene id (sceneId) from get_project_context.
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `set_output_frame` (~245 tokens)

Change video shape

Reshape the selected output to 9:16, 16:9, 1:1 or 4:5. subject follows the subject; contain keeps the whole picture with bars; cover fills with optional x/y. add true creates another output and preserves this one. frame null restores the original shape. Crop only when requested. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.

Input parameters:

- `add` (boolean)
- `base_version` (string): The version the edits are for; the current one when left out.
- `frame` (required)
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): One output (a hook, a Short, a format) from check_video; the main film when left out.
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `put_video_overlay` (~205 tokens)

Add or update an overlay

Add or update one timed text, image or video overlay with none, fade, slide or pop animation. Use only existing canvas asset IDs and editable capabilities returned by the project. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.

Input parameters:

- `base_version` (string): The version the edits are for; the current one when left out.
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): One output (a hook, a Short, a format) from check_video; the main film when left out.
- `overlay` (required)
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `remove_video_overlay` (~187 tokens)

Remove an overlay

Remove one added overlay by its returned ov_ ID, preserving underlying footage. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.

Input parameters:

- `base_version` (string): The version the edits are for; the current one when left out.
- `id` (string, required)
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): One output (a hook, a Short, a format) from check_video; the main film when left out.
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `set_element_layout` (~203 tokens)

Move or resize an element

Move, scale or rotate one returned editable canvas element using its units. A null layout restores its authored layout. Preserve authored animation. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.

Input parameters:

- `base_version` (string): The version the edits are for; the current one when left out.
- `element` (string, required)
- `layout` (required)
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): One output (a hook, a Short, a format) from check_video; the main film when left out.
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `set_element_content` (~204 tokens)

Change an element

Change supported text, color or hidden state on one returned editable canvas element. A null edit restores its authored content. Preserve authored animation. Read get_project_context first and pass its base_version and selected output_id. Saves a playable project; request a file separately with check_video with_download. Unsupported changes refuse without rebuilding. Preserve operation_id and exact inputs on retries. Uses the account's direct-edit allowance. Cost: Free: no credits.

Input parameters:

- `base_version` (string): The version the edits are for; the current one when left out.
- `edit` (required)
- `element` (string, required)
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): One output (a hook, a Short, a format) from check_video; the main film when left out.
- `video_id` (string, required): The video id from list_videos.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `browse_styles` (~131 tokens)

Browse editing styles

Show ready styles/copies with content format (faceless/motion/talking), frame formats, jobs, best_for, actual inputs and saved style_version when available. Motion is faceless type/music with inputs.voice:none by default; an explicit voiceover request overrides that default while keeping the visual style and aligns visuals to the recorded speech. Narrated faceless styles use inputs.voice:narrator. Also returns all 21 narrator descriptions, accent/tags and public audition URLs; use catalog names in create_video voice. Recommend suitable returned styles, never invent private IDs. Listen/show auditions before selecting an undecided voice.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `narrators` (array)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `styles` (array)
- `version_id` (string|null)
- `video_id` (string|null)

### `edit_video` (~1648 tokens)

Edit a video

Edit the user's own footage into a finished video. Put what they asked for into the fields, never into prose rules: kind (montage: pictures and music lead, e.g. sport, travel, events; talking: someone speaks), length ({min_seconds, max_seconds} for "45-60 s"), style_id (read browse_styles once first: a saved style of theirs (own: true) that fits the request is the one to use), music_staging_key (a song from import_asset) or song_upload: true (they have a song file but no link: the upload link takes it too), camera_sound, formats (only when they asked for a shape; otherwise the video keeps its own and nothing is cropped). instructions holds only anything else they asked for, in their own words. Clypmint watches the footage itself: do not describe the footage, write rules or ask the user how to edit. In ChatGPT attach the video as video. Otherwise leave it out: the answer has a private upload link (15 minutes) to give the user, and editing starts when the video lands. One upload per video: to change the length, song, cut or shape of a video already made, use revise_video or a direct edit tool on that video (a shape is one set_output_frame call), never a new upload; a separate new edit of the same footage is footage_from: that video_id. Like another video? reference_url (+ reference_mode clone or match) copies that video's style beside the upload, saves it to the user's styles, and the edit waits for it; leave style_id out. No footage (an idea or a script)? Use create_video. Also: purpose (organic, ad, youtube, sales_page), hooks 1-3 (an ad's openings), shorts 0-10 or 'all', clips (a long recording cut into clips alone), speaker_name, names, spellings, sound_effects, asset_ids, source_url (a public link where links are open). Cost: 3 credits to make, plus 1 for each started minute of footage and 1 for each started minute of finished video after the first, plus 2 for each extra hook, length or format and 2 for each clip; dry_run: true answers the cost and starts nothin…

Input parameters:

- `asset_ids` (array)
- `asset_staging_keys` (array)
- `camera_sound` (string): The footage's own sound. mute: only the song plays (the default for a montage with a song). keep: the camera sound stays (the default otherwise).
- `clips` (object): Clips alone from one recording (no main film): podcasts, streams, long talks.
- `dry_run` (boolean): true: answer the credit cost and start nothing.
- `footage_from` (string): The video_id of a video already made from this footage: a new edit of the same footage with no new upload (another kind, length or style). To change that video itself, use revise_video or apply_edits…
- `format` (string): The older one-shape switch; formats says more.
- `formats` (array): Only when the user asked for a shape: vertical, TikTok, Reels or Shorts is 9:16; square is 1:1; 4:5; YouTube or widescreen is 16:9. Every shape to make, the main one first. Leave it out otherwise: th…
- `hooks` (integer): Openings to make (1-3): an ad gets 3 by default, the main cut counting as one.
- `instructions` (string): Anything else the user asked for, in their own words, usually one or two sentences. Length, kind, song, style and formats go in their own fields, not here. Clypmint watches the footage itself: do not…
- `kind` (string): talking: someone speaks and their words lead the cut (talking head, interview, podcast, tutorial). montage: the pictures and the music lead (sport, action, travel, events, scenery, b-roll); what peop…
- `length` (object): How long the finished video should be. "45-60 s" is {min_seconds: 45, max_seconds: 60}; "under a minute" is {max_seconds: 60}; "about 30 s" is {min_seconds: 25, max_seconds: 35}. Leave out when the u…
- `music_staging_key` (string): The song for this video, from import_asset (mp3, wav or m4a): a montage's soundtrack, or music under the speech.
- `names` (array): Exact person, company and product names to spell correctly in this video; not a lasting account rule.
- `operation_id` (string): A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `purpose` (string): organic (a post), ad (three openings by default), youtube (horizontal), sales_page.
- `reference_mode` (string): How to copy reference_url. clone (the default): deep, copies the reference's own motion and captions; slower, uses one of the monthly style copies, then credits. match: fast and approximate, included.
- `reference_url` (string): A video to make this edit LIKE (a public https link from Instagram, TikTok, X, Facebook, Loom or LinkedIn): Clypmint copies its style beside the upload, saves it to the user's styles, and the edit wa…
- `shorts`: Shorts to cut from the recording too (0-10), or 'all' the good ones.
- `song_upload` (boolean): true when the user has a song file but no public link to it (a song attached in Claude, a file on their computer): the private upload link asks for the video and the song together. Leave out when mus…
- `sound_effects` (boolean): true: sound effects on the edit.
- `source_duration_seconds` (number)
- `source_url` (string): A public https link to the footage (where links are open), instead of a file.
- `speaker_company` (string): The speaker's company or business, spelled exactly for this video.
- `speaker_name` (string): Who is talking, spelled right, e.g. "Dr. Ana Ruiz".
- `spellings` (object): Explicit heard-to-correct spelling pairs for this video, for example {"KMAC":"KMAK"}.
- `style_id` (string): A style id from browse_styles, e.g. serif-editorial-launch, bold-navy-statement, crimson-serif-explainer, warm, luxe, brand, or a saved style of your own (my-...).
- `style_version` (integer)
- `title` (string)
- `video` (object): The attached video file (ChatGPT). Leave out to get a private upload link instead.
- `voice` (string): The narrator for a video made from words: matilda, sarah, jessica, alice, liam, chris, brian, george, roger, laura, charlie, river, will, eric, bella, daniel, lily, bill, adam, callum, harry (sarah:…

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `check_video` (~268 tokens)

Check a video

Check a video and show it. While the upload or the edit is still running, this waits for news before answering (up to 20 seconds; 50 in Claude), so call it again right away only if the user is waiting; the video card updates itself. state is waiting (give the user the upload link), uploading, editing, ready, draft (a rough cut, not the finished edit: say so and offer next_step) or failed (say problem and next_step). It also says when the length differs from the length asked. Download links are made only when asked: with_download: true (when the user wants the file).

Input parameters:

- `import_id` (string)
- `job_id` (string): The job_id revise_video returned for a change by typing: also reports that change (its steps so far, then its reply, whether it changed anything, and anything it could not do).
- `output_id` (string)
- `video_id` (string)
- `wait` (boolean): The video card's own refresh sends false to answer at once. Leave it out: waiting for news is what keeps a check from being wasted.
- `with_download` (boolean): true: also make a 15-minute download link (only when the user wants the file).

Output parameters:

- `available` (boolean)
- `change` (object)
- `code` (string|null)
- `cost` (object)
- `downloadable` (boolean)
- `dry_run` (boolean)
- `duration` (number|null)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `narration` (object)
- `output_id` (string|null)
- `outputs` (array)
- `plan_id` (string|null)
- `playable` (boolean)
- `previous_version_id` (string|null)
- `progress` (number|null)
- `ready` (boolean)
- `revision_in_progress` (boolean)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `list_videos` (~25 tokens)

List your videos

List up to 20 recent videos in the linked Clypmint account.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)
- `videos` (array)

### `revise_video` (~732 tokens)

Request a video change

Change a finished video against its saved base_version. A change asked for in words costs 1 credit (dry_run: true answers the price and sends nothing); exact edits with the direct edit tools and fix_captions are free. Name output_id for one hook/Short/format; attachment changes require one output when the video has several. Attach up to four still images with explicit intent: reference_only studies the image without placing it, use_in_video must place it. Supply each as a genuine ChatGPT file descriptor, an import_asset asset_staging_key, or an owned imported asset_id. PNG/JPEG/WebP may be placed; GIF references inspect the first frame only. Prepared owned video sources may be placed by ID; motion/audio analysis of video references needs a separate preparation path. Unsupported requests return a reason and preserve the saved project. Exact supported changes use the direct edit tools or fix_captions. On the legacy rendered revision path only (a video without a saved native project), replace retained main scratch narration when check_video.narration.can_change is true: pass explicit voice plus a voice-only change such as 'Change narrator to Brian. Keep the script and edit.' using the selected catalog name. This preserves script/edit/assets; send other edits separately. Uploaded speech, silent motion and mixed voice/visual instructions are refused on that replacement path. To ADD narration to an eligible silent main motion video on the legacy path, keep voice omitted and begin change with 'Narrator: liam
Narration: <exact one-line voiceover script>
\<visual and sound-effect revision notes>'. Use a catalog narrator name; this supports one main hook, aligns rebuilt visuals to the recorded narration word clock, and refuses mismatched, clipped or missing voiceover. The saved native project path currently returns typed project_update_unsupported for voice replacement or narration addition because its separate narration preparation path is unavailable. Do not promise native…

Input parameters:

- `attachments` (array)
- `base_version` (string)
- `change` (string, required)
- `dry_run` (boolean): true: say what the change uses and send nothing.
- `operation_id` (string): A stable ID for this authorized request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `output_id` (string): Change only this output (a hook, a Short or a format) from check_video.
- `video_id` (string, required)
- `voice` (string): The narrator for a video made from words: matilda, sarah, jessica, alice, liam, chris, brian, george, roger, laura, charlie, river, will, eric, bella, daniel, lily, bill, adam, callum, harry (sarah:…

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `copy_style` (~277 tokens)

Make an editing style

Build a reusable editing style from one reference video shared by link or file. mode clone (the default) is the deep copy: it measures the reference and writes its own captions and motion; the linked account includes style copies every month at no credit cost, and once they are used each costs 100 credits. mode match is the fast copy: it maps the reference onto Clypmint's own devices in a few minutes, is included for every account and is approximate. A copy that is still working or has stopped shows in browse_styles (with its time left, or why it stopped and how to try again). dry_run: true answers whether this one is included (and how many are left) or what it costs, and starts nothing.

Input parameters:

- `dry_run` (boolean): true: answer the cost and start nothing.
- `format` (string)
- `mode` (string): clone (default): deep, copies the reference's own motion and captions; slower; uses a monthly style copy, then credits. match: fast and approximate; included for every account.
- `name` (string)
- `operation_id` (string): A stable ID for this authorized request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `reference` (object)
- `reference_url` (string)

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `adjust_style` (~117 tokens)

Change a style

Change one of the linked account's saved styles in plain words, for example 'bigger yellow captions, no zooms' or 'open on the strongest line'. Saves it as the style's next version; every later video in that style follows it, and earlier versions are kept. Preserve operation_id on retries.

Input parameters:

- `change` (string, required)
- `operation_id` (string, required): A stable ID for this authorized request. Preserve it on retries. Use a new ID only for a deliberate new request.
- `style_id` (string, required)

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

### `get_account_identity` (~41 tokens)

Identify the connected account

Return only the stable identity and display labels of the account represented by this request. Used for account linking. For account rights, credits and usage use get_profile.

Output parameters:

- `email` (string)
- `id` (string)
- `name` (string)
- `nickname` (string)

### `get_profile` (~52 tokens)

Get linked profile

Return the Clypmint profile linked to this request, with its credits (used and included this billing month, and when they renew) and videos used, so you can say what a request will use before spending.

Output parameters:

- `available` (boolean)
- `code` (string|null)
- `cost` (object)
- `dry_run` (boolean)
- `error` (string)
- `import_id` (string|null)
- `message` (string)
- `output_id` (string|null)
- `plan_id` (string|null)
- `state` (string|null)
- `status` (string|integer|null)
- `studio_url` (string)
- `style_id` (string|null)
- `version_id` (string|null)
- `video_id` (string|null)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-clypmint-clypmint/clypmint#diagnostics

## Score history

- 2026-10-23: 69
- 2026-10-22: 68
- 2026-10-21: 67
- 2026-10-20: 67
- 2026-10-19: 67
- 2026-10-18: 66
- 2026-10-17: 66
- 2026-10-16: 66
- 2026-10-15: 65
- 2026-10-14: 65
- 2026-10-13: 64
- 2026-10-12: 62
- 2026-10-10: 61
- 2026-10-07: 60
- 2026-10-04: 59
- 2026-10-03: 58

## Common questions

### What is the Clypmint MCP server?

Clypmint is an MCP server listed in the public MCP registry as com.clypmint/clypmint. Edit videos with AI: cuts, captions, B-roll and motion in a style you pick or copy from any video. This page covers its hosted endpoint (https://clypmint.com/mcp).

### Is the Clypmint MCP server safe to use?

Clypmint scores 69 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Clypmint MCP server expose?

Clypmint exposes 45 tools: get_workflow, create_video, import_asset, get_project_context, list_assets, and 40 more. Their descriptions and schemas cost roughly 10,528 tokens of context every time the server is loaded.

### Does the Clypmint MCP server require authentication?

No. We connected to Clypmint without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Clypmint MCP server still maintained?

Clypmint is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://clypmint.com/mcp
- Website: https://clypmint.com/developers
- Changelog RSS feed: https://verifymcp.io/servers/com-clypmint-clypmint/clypmint.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-clypmint-clypmint/clypmint.json
- HTML version of this page: https://verifymcp.io/servers/com-clypmint-clypmint/clypmint
