Clipform
REMOTE · MCP.CLIPFORM.IO · 2 COMPONENTS · SCANNED AUG 3
Interactive video forms that capture authentic responses. Build engaging forms in minutes.
Available components
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. How we score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (clipform_delete_form). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability69
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 7673 tokens (~187/item across 41 items; 30 tools + 11 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 99% of tool parameters carry a description.Partial
- Structured output schemas are declared (67% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · mcp.clipform.io
claude mcp add --transport http clipform-mcp-server https://mcp.clipform.io/
[mcp_servers.clipform-mcp-server] url = "https://mcp.clipform.io/"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"clipform-mcp-server": {
"type": "remote",
"url": "https://mcp.clipform.io/",
"enabled": true
}
}
} openclaw mcp add clipform-mcp-server --url https://mcp.clipform.io/ --transport streamable-http
mcp_servers:
clipform-mcp-server:
url: "https://mcp.clipform.io/" {
"mcpServers": {
"clipform-mcp-server": {
"type": "http",
"url": "https://mcp.clipform.io/"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 62
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://mcp.clipform.io
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=mcp.clipform.io | CN=WE1,O=Google Trust Services,C=US | 14 Jun 2026 | 12 Sept 2026 | ECDSA 256 | ECDSA-SHA256 | de93efad84553b7f13e86d12505ce919 |
| SANs: mcp.clipform.io | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC insecure
Validation of mcp.clipform.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| io. | present | 57355 | 8 | Verified |
| clipform.io. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.clipform.io | Verified | 200 | |
| http (plaintext) | http://mcp.clipform.io | HTTPS enforced | 301 | https://mcp.clipform.io/ |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
clipform_add_node Add Node ~107
Add a new node to an existing form. Inserted before the end screen by default; after_node_id controls insertion position. Node types and config schemas match clipform_create_form.
| Name | Type | Req | Description |
|---|---|---|---|
| after_node_id | string | — | Insert after this node ID. Omit to append before the end screen. |
| form_id | string | yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) |
| node | object | yes | The node to add |
| Name | Type | Req | Description |
|---|---|---|---|
| node_id | string | yes | ID of the created node - pass to update_node / attach_node_media |
| type | string | yes | Node type that was added |
No examples provided.
clipform_attach_node_media Attach Node Media ~124
Attach an existing workspace media asset (from clipform_upload_media_asset) to one or more nodes (max 10). Pass one item or many; multiple items attach sequentially. Only works on node types that support media (choice, open, scale, draw, binary, button). A media asset is reusable - attach the same media_asset_id to several nodes.
| Name | Type | Req | Description |
|---|---|---|---|
| form_id | string | yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) |
| items | array | yes | One or more attachments to make |
| Name | Type | Req | Description |
|---|---|---|---|
| results | array | yes | One result per item, in order |
No examples provided.
clipform_check_render Check Render Status ~154
Check the status of render jobs started by clipform_generate_video, clipform_render_video_template, or clipform_render_composition. Pass job_ids to check a whole batch in ONE call - one line of status per job. Pass job_id for a single job. Returns the output URL for each completed render. Typical render time: 10-60 seconds. Attach is automatic when node_id was provided to the render tool - no need to poll to completion, and the attach outcome is reported here once known.
| Name | Type | Req | Description |
|---|---|---|---|
| job_id | string | — | A single job ID returned by the render tool |
| job_ids | array | — | Multiple job IDs - check the whole batch in one call instead of one call per job |
| Name | Type | Req | Description |
|---|---|---|---|
| jobs | array | yes | One entry per queried job; attach completed public_urls via upload_media_asset then attach_node_media unless already auto-attached |
No examples provided.
clipform_complete_media_upload Complete Media Upload ~110
Confirm a signed-PUT still image upload finished, after PUTting the bytes to the upload_url returned by clipform_upload_media_asset. The API verifies the object actually landed in storage before flipping the asset from processing to ready - call this right after the PUT succeeds, or the asset stays invisible in the library. Not needed for video uploads (TUS/Mux settle automatically).
| Name | Type | Req | Description |
|---|---|---|---|
| media_asset_id | string | yes | The media_asset_id returned by clipform_upload_media_asset for the still image |
| Name | Type | Req | Description |
|---|---|---|---|
| media_asset_id | string | yes | — |
| status | string | yes | The asset's status after this call - ready on success, or its already-settled status when called again (noop) |
No examples provided.
clipform_create_form Create Clipform ~988
Create a new Clipform (interactive video-style form). Returns a viewer URL and form ID. When connected via an authenticated MCP client (e.g. claude.ai), the form lands directly in the user's workspace. Anonymous sessions get a claim URL to transfer ownership later. Node types (omit config to use defaults where shown): - choice: Single or multiple choice node with predefined options (supports options array). Config: choice ({enable_branching, show_answer_feedback, record_scores}), selection_mode ("single"|"multiple", default: "single"), allow_text_response (boolean, default: false), randomise_options (boolean, default: false), show_option_count (boolean, default: false), option_display ("list"|"letters", default: "list"). Defaults: {"selection_mode":"single","choice":{"enable_branching":false},"randomise_options":false,"show_option_count":false,"option_display":"list"} - open: Free-form text responses from users. Config: formats (array of {format, order}). Defaults: {"formats":[{"order":0,"format":"text"},{"order":1,"format":"audio"},{"order":2,"format":"video"}]} - details: Collect several fields on one screen - name, email, phone, address, date, and more. Config: title (string), fields (array of {id, type, label, order, required, is_custom}), description (string), consent_items (array of {id, name, label, order, type}), Available field IDs: first_name, last_name, email, phone. Defaults: {"fields":[{"id":"first_name","type":"first_name","label":"First Name","enabled":true,"required":true},{"id":"email","type":"email","label":"Email","enabled":true,"required":true}],"consent_items":[]} - button: Simple button for acknowledgment or navigation (supports options array). Config: button_text (string, default: "Continue"), button_style ("primary"|"secondary"|"outline", default: "primary") - redirect: Redirect users to an external URL. Config: url (string), auto_redirect (boolean, default: true). Defaults: {"url":"","auto_redirect":true} - file_download: Provide a file fo…
| Name | Type | Req | Description |
|---|---|---|---|
| background_color | string | — | Background color as 6-digit hex (e.g. '#1A1A2E'). |
| disable_back_navigation | boolean | — | Prevent going back. Set true for quizzes. |
| font_family | string | — | AI-PROTECTED: Only set when the user explicitly requests a specific font. |
| nodes | array | yes | Ordered list of nodes/steps for the form |
| primary_color | string | — | Primary/brand color as 6-digit hex (e.g. '#FF5500'). Used for buttons and accents. |
| show_step_counter | boolean | — | Show step counter (e.g. '1/5'). Set true for quizzes. |
| tags | array | — | Tags for indexing (e.g. ['quiz', 'trivia', 'arsenal']). Include format, genre, and topics. |
| title | string | yes | Form title |
| Name | Type | Req | Description |
|---|---|---|---|
| dashboard_url | string | — | Builder URL (sign in to edit) |
| form_id | string | yes | Form UUID - pass to follow-up tools |
| nodes | array | yes | Created nodes in order - IDs for attach_node_media / update_node |
| plan | object | — | Plan and auth context for this session |
| viewer_url | string | yes | Live form URL for respondents |
No examples provided.
clipform_delete_form Delete Clipform ~96
Permanently delete a form and all its nodes. This cannot be undone. Requires user confirmation before it runs.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set to true ONLY after the user has explicitly confirmed this destructive action. Leave unset otherwise - hosts that support confirmation dialogs will prompt the user automatically. |
| form_id | string | yes | The form UUID to delete (returned by clipform_create_form, not the short share_id from the URL) |
No output schema declared.
No examples provided.
clipform_delete_node Delete Node ~128
Delete a node from a form. The logic chain is automatically re-linked (the previous node will point to the next one). Cannot delete the start node or the last end screen. Requires user confirmation before it runs.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set to true ONLY after the user has explicitly confirmed this destructive action. Leave unset otherwise - hosts that support confirmation dialogs will prompt the user automatically. |
| form_id | string | yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) |
| node_id | string | yes | The node ID to delete |
No output schema declared.
No examples provided.
clipform_delete_node_media Delete Node Media ~114
Remove media from a node. Deletes the media record and cleans up external resources (Mux video asset, storage file). Requires user confirmation before it runs.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set to true ONLY after the user has explicitly confirmed this destructive action. Leave unset otherwise - hosts that support confirmation dialogs will prompt the user automatically. |
| form_id | string | yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) |
| node_id | string | yes | The node ID |
No output schema declared.
No examples provided.
clipform_fetch_boundary Fetch Geographic Boundary ~148
Fetch a GeoJSON boundary polygon for a country, city, or region. Returns simplified GeoJSON ready to use as the 'boundary' prop in the Map composition. mainlandOnly excludes small islands and overseas territories (e.g. Corsica for France, Hawaii for USA).
| Name | Type | Req | Description |
|---|---|---|---|
| mainlandOnly | boolean | — | Keep only the largest landmass, excluding small islands and overseas territories |
| maxPoints | number | — | Maximum points per polygon ring for simplification (default 500, lower = smaller payload) |
| query | string | yes | Place name (e.g. 'France', 'Paris', 'Tokyo', 'Brazil') |
| type | string | — | Type of place to search for |
No output schema declared.
No examples provided.
clipform_generate_tts Generate Text-to-Speech ~275
Generate narration audio from text with word-level captions. Use this for quiz question narration, survey introductions, form instructions, or any node that benefits from a human voice. Proactively suggest narration for quizzes and content-rich forms - it significantly improves engagement. Available voices: ryan (British male, clear), sonia (British female, warm), andrew (American male, smooth), ava (American female, vibrant), guy (American male, deep). Pick ONE voice that fits the topic - e.g. a London quiz gets ryan or sonia, a US sports quiz gets andrew or guy - and reuse that SAME voice for every item and every call across the whole form. Never mix voices within one form unless the user explicitly asks for multiple voices. Use the tone parameter to direct HOW the voice speaks. Always set a tone that matches the form's mood - e.g. quizzes: "Energetic and playful, like a quiz show host teasing the audience", surveys: "Professional but warm, encouraging honest answers", personality quizzes: "Curious and reflective". This dramatically improves the narration quality. Pass one item or many (max 10) - multiple items run in parallel. Returns audio URL and word-level captions per item.
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | One or more TTS items to generate |
| Name | Type | Req | Description |
|---|---|---|---|
| results | array | yes | One result per item, in order |
No examples provided.
clipform_generate_video Generate Video ~787
Generate a video from images, video clips, or both, synced to an audio track. Use this for narrated question backgrounds, topic visualisations, or any form node that benefits from video. Combine with clipform_generate_tts for narrated audio and clipform_search_media for royalty-free images. Creates 9:16 (720x1280) with Ken Burns pan/zoom effects and transitions. Returns a public URL when complete. Items: type "image" (Ken Burns motion) or "video" (cover-cropped, muted by default). Duration matches audio_url or set duration_seconds explicitly. For multi-question builds, pass wait: false on every render: each call returns a job ID immediately, so all renders run in parallel - then collect URLs with clipform_check_render. Sequential waiting renders take 15-120 seconds EACH. Choosing a render tool: for a recognisable form/quiz beat (guess-the-city, this-or-that, mystery reveal, multiple choice, photo montage...) reach for a video template first (clipform_list_video_templates + clipform_render_video_template) - it is a one-call recipe. Use clipform_generate_video for a narrated or audio-synced media montage (images/clips timed to a voice track). Use clipform_render_composition only when neither fits and you need a custom layer stack. Montage disambiguation: choose clipform_generate_video when the montage is narrated or synced to an audio track; choose the slideshow video template when it is silent (motion + transitions only, no voice-over). A render for a form node is not done until it is attached to that node. Pass node_id (and form_id) so the completed render attaches itself automatically - do not poll clipform_check_render to completion or manually chain clipform_upload_media_asset + clipform_attach_node_media; fire the render and move on.
| Name | Type | Req | Description |
|---|---|---|---|
| audio_url | string | — | Audio track URL. Video duration matches audio duration. |
| background_audio_url | string | — | Ambience/music bed under the narration (crowd noise, room tone). Loops to fill the video. Find tracks with clipform_search_music. |
| background_audio_volume | number | — | Background bed volume 0-1 (default 0.15 - sits under speech) |
| background_color | string | — | Background color (default '#000') |
| captions | array | — | Word-level captions from clipform_generate_tts - carried onto the attached media asset. Only used when node_id is set. |
| duotone | object | — | Two-tone editorial recolour on image items - desaturates then maps to a shadow->highlight palette. Pair with a halftone texture for a screen-print poster look. |
| duration_seconds | number | — | Video duration in seconds (required if no audio_url) |
| form_id | string | — | The form UUID (required when node_id is set). |
| items | array | yes | Media items (images, video clips, or a mix) |
| node_id | string | — | Form node to attach this render to automatically once it completes - skips the manual clipform_upload_media_asset + clipform_attach_node_media steps and republishes the form if it's currently live. R… |
| random_effects | boolean | — | Shuffle Ken Burns effects across image items (default: true) |
| style_preset | string | — | Ken Burns style preset: cinematic, dramatic, calm, documentary, dreamy, moody, energetic |
| texture | object | — | Print-style pattern overlay on image items - makes stock imagery read as designed (screen-print dither look) |
| transition | object | — | — |
| wait | boolean | — | true (default) blocks until the video is ready and returns its URL. false returns a job ID immediately - fire all renders first, then poll clipform_check_render. Use false whenever rendering more tha… |
| Name | Type | Req | Description |
|---|---|---|---|
| attach_error | string | — | Present when node_id was provided but auto-attach failed - the render itself still succeeded. |
| attached | boolean | — | True when node_id was provided and the render was attached to the node automatically (present once the attach outcome is known). |
| duration_seconds | number | — | — |
| job_id | string | — | Present when status is 'rendering' - pass to check_render |
| media_asset_id | string | — | The workspace media asset created from this render, when attached. |
| public_url | string | — | Present when status is 'complete' - attach via upload_media_asset then attach_node_media (fit_media: true), unless node_id was set (auto-attached) |
| republished | boolean | — | True when the form was live and was republished to include this media. |
| status | string | yes | 'rendering' when wait:false (poll check_render); 'complete' with a public_url when wait:true |
No examples provided.
clipform_get_form Get Clipform ~67
Retrieve a form's details including all nodes in sequential order. Returns title, settings, and every node with its options, config, and media status.
| Name | Type | Req | Description |
|---|---|---|---|
| form_id | string | yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) |
| Name | Type | Req | Description |
|---|---|---|---|
| form_id | string | yes | Form UUID |
| has_unpublished_changes | boolean | yes | Live form has edits not yet republished |
| is_live | boolean | yes | Whether the form is published |
| nodes | array | yes | Nodes in sequential order - IDs for update_node / attach_node_media |
| title | string | yes | Form title |
No examples provided.
clipform_get_guide Get Craft Guide ~256
Retrieve craft knowledge for building a specific form type. Returns question psychology, difficulty curves, narration style, scoring setup, and writing principles as markdown. Does NOT return a step-by-step build workflow - use clipform_get_workflow for that. Available types: quiz, survey, interview, funnel, testimonial, application, booking. Aliases also accepted: trivia → quiz, test → quiz, exam → quiz, feedback → survey, poll → survey, nps → survey, questionnaire → survey, case-study → interview, callout → interview, lead-gen → funnel, qualification → funnel, lead-magnet → funnel, story → testimonial, review → testimonial, job-application → application, admission → application, enrollment → application, grant → application, registration → booking, signup → booking, event → booking, rsvp → booking, workshop → booking. Quiz variants (optional): personality, comprehension, composition - appends variant-specific addendum to the base quiz guide.
| Name | Type | Req | Description |
|---|---|---|---|
| type | string | yes | Form type to get the craft guide for (accepts aliases like 'feedback' → survey) |
| variant | string | — | Quiz sub-variant. Only used when type is 'quiz'. Omit for a standard scored quiz. |
No output schema declared.
No examples provided.
clipform_get_node_media Get Node Media ~72
Get the media attached to a node, including processing status. Useful for checking if a video upload has finished processing.
| Name | Type | Req | Description |
|---|---|---|---|
| form_id | string | yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) |
| node_id | string | yes | The node ID |
| Name | Type | Req | Description |
|---|---|---|---|
| media | — | yes | Attached media (null if the node has none) |
No examples provided.
clipform_get_workflow Get Build Workflow ~602
Retrieve a step-by-step build workflow for creating a specific form type. Returns the exact tool sequence, form settings, node configuration, scoring setup, and end screen config as a build recipe. Does NOT return craft knowledge (question psychology, difficulty curves, narration style) - use clipform_get_guide for that. Available types: quiz, survey, interview, testimonial, application, booking. Aliases also accepted: trivia → quiz, test → quiz, exam → quiz, feedback → survey, poll → survey, nps → survey, questionnaire → survey, case-study → interview, callout → interview, lead-gen → funnel, qualification → funnel, lead-magnet → funnel, story → testimonial, review → testimonial, job-application → application, admission → application, enrollment → application, grant → application, registration → booking, signup → booking, event → booking, rsvp → booking, workshop → booking. Quiz variants (optional): personality, comprehension, composition - returns the variant-specific workflow instead of the base quiz workflow. Optional args by type: - quiz: topic, question_count (8) - quiz (variant: personality): topic, categories, question_count (8) - quiz (variant: comprehension): youtube_url, question_count (8), audience - interview: purpose, response_format (all), needs_consent (true) - survey: topic, anonymous (true) - funnel: outcomes, criteria, needs_contact (true) - testimonial: use_case - application: role - booking: event_name, event_type
| Name | Type | Req | Description |
|---|---|---|---|
| anonymous | boolean | — | Anonymous survey (survey) |
| audience | string | — | Target audience (quiz variant: comprehension) |
| categories | string | — | Comma-separated outcome categories (quiz variant: personality) |
| criteria | string | — | Routing criteria (funnel) |
| event_name | string | — | Event or offering name (booking) |
| event_type | string | — | Type of event (booking) |
| needs_consent | boolean | — | Include consent statement (interview) |
| needs_contact | boolean | — | Include contact capture (funnel) |
| outcomes | string | — | Segments or recommendations (funnel) |
| purpose | string | — | What you're collecting (interview) |
| question_count | number | — | Number of questions, default 8 (quiz types) |
| response_format | string | — | How respondents reply (interview) |
| role | string | — | What the application is for (application) |
| topic | string | — | Topic or theme (quiz, survey) |
| type | string | yes | Form type to get the build workflow for (accepts aliases like 'feedback' → survey) |
| use_case | string | — | What stories to collect (testimonial) |
| variant | string | — | Quiz sub-variant. Only used when type is 'quiz'. Omit for a standard scored quiz. |
| youtube_url | string | — | YouTube video URL (quiz variant: comprehension) |
No output schema declared.
No examples provided.
clipform_list_assets List Assets ~41
List available creative assets (sound effects, animations, fonts) for video compositions.
| Name | Type | Req | Description |
|---|---|---|---|
| type | string | — | Asset type to list (default: all) |
| Name | Type | Req | Description |
|---|---|---|---|
| animations | array | yes | — |
| fonts | array | yes | — |
| sfx | array | yes | — |
No examples provided.
clipform_list_compositions List Compositions ~54
Browse available video compositions and their expected props schemas. Call this before using clipform_render_composition to discover visual styles and their input props. For narrated slideshows from images, use clipform_generate_video instead.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| compositions | array | yes | Available compositions - pass an id to render_composition |
No examples provided.
clipform_list_forms List Clipforms ~155
List forms in your workspace with optional filtering. Returns paginated results (cursor-based). next_cursor is included when more results exist.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Pagination cursor from previous response's next_cursor |
| limit | integer | — | Number of forms to return (default 25, max 100) |
| order | string | — | Sort order (default: desc, newest first) |
| published | string | — | Filter by publish status |
| search | string | — | Search forms by title (case-insensitive substring match) |
| sort | string | — | Sort field (default: created_at) |
| tag | string | — | Filter by tag name(s), comma-separated. AND logic: only forms with ALL tags are returned. |
| Name | Type | Req | Description |
|---|---|---|---|
| forms | array | yes | Matching forms (empty if none) |
| next_cursor | string|null | yes | Pass as cursor to fetch the next page, or null when no more |
No examples provided.
clipform_list_video_templates List Video Templates ~75
Browse available video templates - curated Scene arrangements (bed + overlay + sane defaults) that render through the Scene composition from a small controls object. Call this before clipform_render_video_template to see template names and their exposed controls. For a fully custom layer stack, assemble Scene layers directly via clipform_render_composition instead.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| templates | array | yes | Available video templates - pass a name + controls to clipform_render_video_template |
No examples provided.
clipform_log_generation Log Form Generation Audit ~76
Save an audit trail for a generated form. Records where content came from - the sources and image attributions.
| Name | Type | Req | Description |
|---|---|---|---|
| details | object | yes | Content sources and attributions |
| form_id | string | yes | The form ID (UUID format, not the share ID) |
| summary | string | yes | Short description of what was generated |
No output schema declared.
No examples provided.
clipform_render_composition Render Composition ~739
Render a specialised video composition to MP4 or PNG - custom animated visuals that clipform_generate_video can't provide, such as geography animations or designed motion graphics. Available composition names and their required input props schemas come from clipform_list_compositions. For narrated Ken Burns slideshows from images, use clipform_generate_video instead. Output formats: mp4 (H.264, best for social media) or png (single frame). Returns a public URL when complete. For multi-render builds (e.g. one clip per quiz question), pass everything in ONE call via items (max 10): all renders fire in parallel and you get one job ID each - then collect the URLs in a single clipform_check_render call with job_ids. Single render: pass compositionId/inputProps at the top level (wait: true blocks and returns the URL; wait: false returns a job ID). Choosing a render tool: for a recognisable form/quiz beat (guess-the-city, this-or-that, mystery reveal, multiple choice, photo montage...) reach for a video template first (clipform_list_video_templates + clipform_render_video_template) - it is a one-call recipe. Use clipform_generate_video for a narrated or audio-synced media montage (images/clips timed to a voice track). Use clipform_render_composition only when neither fits and you need a custom layer stack. A render for a form node is not done until it is attached to that node. Pass node_id (and form_id) so the completed render attaches itself automatically - do not poll clipform_check_render to completion or manually chain clipform_upload_media_asset + clipform_attach_node_media; fire the render and move on. In batch mode, set node_id per item (see items) and form_id once at the top level.
| Name | Type | Req | Description |
|---|---|---|---|
| captions | array | — | Single render only: word-level captions from clipform_generate_tts, carried onto the attached media asset. Only used when node_id is set. For batch mode, set captions per item instead. |
| compositionId | string | — | Single render: the composition ID. Call clipform_list_compositions to see available options (e.g. 'Slideshow', 'Map', 'Grid'). Use items instead for multiple renders. |
| form_id | string | — | The form UUID - required when node_id is set (single render) or any item sets node_id (batch). |
| inputProps | object | — | Single render: props object matching the composition's schema from clipform_list_compositions. Validated STRICTLY - unknown or missing props fail with the schema in the error, nothing renders silentl… |
| items | array | — | Batch mode: multiple renders in one call. All fire in parallel; returns one job ID per item - collect with clipform_check_render (job_ids). Use this whenever rendering more than one clip. |
| node_id | string | — | Single render only: form node to attach this render to automatically once it completes. Requires form_id. For batch mode, set node_id per item instead. |
| outputFormat | string | — | Single render: output format (default: mp4) |
| wait | boolean | — | Single render only: true (default) blocks until the render is ready and returns its URL; false returns a job ID for clipform_check_render. Batch items always run fire-and-poll. |
| Name | Type | Req | Description |
|---|---|---|---|
| jobs | array | yes | One entry per render (single or batch) |
No examples provided.
clipform_render_video_template Render Video Template ~423
Render a curated video template (a pre-arranged Scene: bed + overlay + sane defaults) to MP4 or PNG from a small controls object, instead of hand-assembling Scene layers. Call clipform_list_video_templates first for available template names and their controls. Renders through the Scene composition under the hood. Choosing a render tool: for a recognisable form/quiz beat (guess-the-city, this-or-that, mystery reveal, multiple choice, photo montage...) reach for a video template first (clipform_list_video_templates + clipform_render_video_template) - it is a one-call recipe. Use clipform_generate_video for a narrated or audio-synced media montage (images/clips timed to a voice track). Use clipform_render_composition only when neither fits and you need a custom layer stack. A render for a form node is not done until it is attached to that node. Pass node_id (and form_id) so the completed render attaches itself automatically - do not poll clipform_check_render to completion or manually chain clipform_upload_media_asset + clipform_attach_node_media; fire the render and move on.
| Name | Type | Req | Description |
|---|---|---|---|
| captions | array | — | Word-level captions from clipform_generate_tts - carried onto the attached media asset. Only used when node_id is set. |
| controls | object | yes | Template-specific controls (see clipform_list_video_templates for the exposed control surface). |
| form_id | string | — | The form UUID (required when node_id is set). |
| node_id | string | — | Form node to attach this render to automatically once it completes - skips the manual clipform_upload_media_asset + clipform_attach_node_media steps and republishes the form if it's currently live. R… |
| outputFormat | string | — | Output format (default: mp4) |
| template | string | yes | Video template name (see clipform_list_video_templates). |
| wait | boolean | — | true (default) blocks until the render is ready and returns its URL; false returns a job ID for clipform_check_render. |
| Name | Type | Req | Description |
|---|---|---|---|
| attach_error | string | — | Present when node_id was provided but auto-attach failed - the render itself still succeeded. |
| attached | boolean | — | True when node_id was provided and the render was attached to the node automatically (present once the attach outcome is known). |
| job_id | string | — | Present when status is 'rendering' - pass to clipform_check_render |
| media_asset_id | string | — | The workspace media asset created from this render, when attached. |
| output_format | string | — | — |
| public_url | string | — | Present when status is 'complete' - attach via upload_media_asset then attach_node_media (fit_media: true), unless node_id was set (auto-attached) |
| republished | boolean | — | True when the form was live and was republished to include this media. |
| status | string | yes | — |
| template | string | — | — |
No examples provided.
clipform_search_media Search Media ~152
Search images or stock video clips. Pass one query or many (max 10) - multiple queries run in one call instead of separate tool calls. Use results to feed into clipform_generate_video for narrated slideshow videos, or upload directly as still images via clipform_upload_media_asset then clipform_attach_node_media. All results are pre-cleared for commercial use. Results include a description (alt text where the provider has it) - use it to pick visually distinct images. Example: { queries: [{ query: "saturn rings" }, { query: "mars surface", count: 3 }] } returns portrait images for both.
| Name | Type | Req | Description |
|---|---|---|---|
| queries | array | yes | One or more search queries to run |
| Name | Type | Req | Description |
|---|---|---|---|
| searches | array | yes | Results grouped by query (items empty if a query found nothing or failed) |
No examples provided.
clipform_search_music Search Music ~186
Search for royalty-free music tracks and ambient sounds. Quiz forms especially benefit from background music - it keeps energy up between questions. Also consider it for multi-step surveys and longer forms. Pass the returned URL as the audio track to clipform_generate_video, or as the audio for the slideshow video template via clipform_render_video_template. Returns download URLs, duration, artist, and license info.
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Max results (default: 5) |
| instrumentalOnly | boolean | — | Only instrumental tracks (default: true) |
| maxDuration | number | — | Maximum duration in seconds |
| minDuration | number | — | Minimum duration in seconds |
| query | string | yes | What to search for (e.g. 'upbeat quiz background', 'calm ambient', 'playful pizzicato') |
| tags | array | — | Genre/mood tags to filter by |
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | — |
| tracks | array | yes | Matching tracks (empty if none); pass a url as the audio track to generate_video |
No examples provided.
clipform_search_news Search News (fallback) ~146
Fallback news lookup for clients without native web search. Returns structured current-news articles from NewsAPI and The Guardian. Coverage: recent events, people, and topics (post-May-2025). Does NOT cover timeless topics (history, geography, science). Narrower and less current than native web search tools (WebSearch, web fetch) when available. Returns: article title, source, author, date, URL, description, and image URL per result.
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | — | Max results per provider (default 5) |
| query | string | yes | News search query (e.g. 'Iran war 2026', 'Australian Open final', 'UK election') |
| Name | Type | Req | Description |
|---|---|---|---|
| articles | array | yes | Matching articles (empty if none) |
| query | string | yes | — |
No examples provided.
clipform_set_logic Set Node Logic ~198
Set routing logic on one or more nodes. Pass multiple nodes in one call instead of separate tool calls. Linear routing (A to B to C) is supported. NOTE: Conditional branching (different paths based on which option is picked) is a planned feature - do not create conditional branching paths. Each rule maps an option (by its text content) to a target node. Rules without option_content are "default" rules applied to all unmatched options. Example: nodes: [ { node_id: "q1-id", rules: [{ target_node_id: "q2-id" }] }, { node_id: "q2-id", rules: [{ target_node_id: "q3-id" }] } ]
| Name | Type | Req | Description |
|---|---|---|---|
| form_id | string | yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) |
| nodes | array | yes | One or more nodes to set logic on |
No output schema declared.
No examples provided.
clipform_update_form Update Clipform ~492
Update a form's title, publish status, settings, or tags. Only sends fields that are provided - omitted fields remain unchanged. AI-PROTECTED parameters have restrictions noted in their descriptions.
| Name | Type | Req | Description |
|---|---|---|---|
| author | string|null | — | AI-PROTECTED: Only set when the user explicitly provides an author name. Set null to clear. |
| background_color | string | — | Background color as 6-digit hex (e.g. '#1A1A2E'). |
| brand_name | string|null | — | AI-PROTECTED: Custom brand name shown in footer. Only set when user explicitly provides. |
| description | string|null | — | SEO description (meta description, og:description). Set null to clear. |
| disable_back_navigation | boolean | — | Prevent respondents from going back. Recommended for quizzes. |
| font_family | string | — | AI-PROTECTED: Only set when the user explicitly requests a specific font. |
| form_id | string | yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) |
| is_live | boolean | — | Setting true publishes/republishes the snapshot respondents see. Forms are live from creation, but edits and media attached AFTER creation are not visible until you re-send true - republishing is the… |
| logo_url | string|null | — | AI-PROTECTED: Only set when the user explicitly provides a logo URL. Set null to clear. |
| primary_color | string | — | Primary/brand color as 6-digit hex (e.g. '#FF5500'). Used for buttons and accents. |
| show_branding | boolean | — | Show Clipform branding. Set false to remove (Pro plan). |
| show_step_counter | boolean | — | Show step counter (e.g. '1/5'). Recommended for quizzes. |
| tags | array | — | Replace all tags on this form. Pass the full desired set (e.g. ['quiz', 'trivia', 'slug:elephants']). Omit to leave tags unchanged. |
| title | string | — | New form title |
| total_steps | number|null | — | Override the total step count shown in the step counter. Set null to auto-calculate. |
No output schema declared.
No examples provided.
clipform_update_node Update Node ~127
Update one or more existing nodes' text, type, config, or options. Pass multiple updates in one call instead of separate tool calls. Requires node IDs (returned by clipform_create_form, clipform_add_node, or clipform_get_form). Does not change node positions in the flow. All type definitions and config schemas are derived from @vid-master/config (node-types).
| Name | Type | Req | Description |
|---|---|---|---|
| form_id | string | yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) |
| updates | array | yes | One or more node updates to apply |
| Name | Type | Req | Description |
|---|---|---|---|
| results | array | yes | One result per requested update, in order |
No examples provided.
clipform_upload_media_asset Upload Media Asset ~129
Put one or more media files into your workspace media library (max 10, uploaded sequentially). This is step one of attaching media to a node - follow up with clipform_attach_node_media to place the returned media_asset_id on a node. When a public URL is provided, the media is fetched and stored automatically. For video: ingested via Mux. For image: stored in Supabase. Captions from clipform_generate_tts enable per-word highlighting in the viewer once attached.
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | One or more media items to create as workspace library assets |
| Name | Type | Req | Description |
|---|---|---|---|
| results | array | yes | One result per item, in order |
No examples provided.
clipform_youtube_transcript Get YouTube Transcript ~156
Extract the transcript, title, and channel info from a YouTube video. Returns the full transcript text plus metadata (title, channel, duration). Supports any public YouTube video with captions enabled. Does NOT work for private/age-restricted videos, videos with captions disabled, or non-YouTube URLs.
| Name | Type | Req | Description |
|---|---|---|---|
| lang | string | — | Transcript language code (default: 'en'). Try 'en' first, omit for auto-detect if English unavailable. |
| max_chars | number | — | Maximum transcript characters to return (default: 15000). Increase for longer videos where full context matters. |
| url | string | yes | YouTube video URL (any format: watch?v=, youtu.be/, shorts/) |
No output schema declared.
No examples provided.