Clipform
Server Details
Interactive video forms that capture authentic responses. Build engaging forms in minutes.
- Status
- Healthy
- Uptime
- 100.0% over 82 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Clipform/mcp-server
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 33 tools
Most tools have clearly distinct purposes, and the descriptions include explicit routing guidance for the tricky pairs (render_video_template vs render_composition, get_guide vs get_workflow, get_results vs get_responses, upload_media_asset vs attach_node_media). A few pairs still require careful reading to distinguish, but the descriptions resolve ambiguity rather than create it.
Nearly every tool follows a clean clipform_verb_noun pattern (create_form, add_node, set_logic, list_video_templates, check_render), which is predictable and readable. The only deviation is the unprefixed meta-tool get_more_tools, which is a minor exception to an otherwise uniform convention.
33 tools exceeds the typical range and feels heavy, but the domain is genuinely broad (form CRUD, node graph editing, media pipeline, video rendering, TTS, asset search, response analytics, build guides). Each tool maps to a distinct operation, so it is justified breadth rather than bloat, though the surface is borderline unwieldy.
Form lifecycle (create/get/list/update/delete), node lifecycle (add/update/delete/set_logic), media pipeline (upload/complete/attach/detach/get), rendering, responses, and identity are all covered with no obvious dead ends. Minor gaps exist — no form duplication or response export/delete — but agents can work around them.
Available Tools
33 toolsclipform_add_nodeAdd NodeAInspect
Add a new node to an existing form. Inserted before the end screen by default; after_node_id controls insertion position. Inserting into a linear flow automatically re-links the chain (the node before the insertion point points to the new node, which points to what followed) - you do not need clipform_set_logic for a simple insert. Branching still needs an explicit logic write. Node types and config schemas match clipform_create_form.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | The node to add | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| form_id | Yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) | |
| after_node_id | No | Insert after this node ID. Omit to append before the end screen. |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | Yes | Node type that was added |
| node_id | Yes | ID of the created node - pass to update_node / attach_node_media |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly=false, idempotent=false, destructive=false), it discloses a non-obvious side effect: inserting into a linear flow automatically re-links the chain so the prior node points to the new one. That is exactly the kind of behavioral detail annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the action and default position, then the re-linking rule, then the logic exception. No filler or restatement of the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a nested node object with a 10-value type enum, an arbitrary config object, and an existing output schema, the description covers insertion semantics and offloads type-specific config to clipform_create_form plus guide references. It does not mention failure modes (e.g., invalid after_node_id, node limits), which keeps it just short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning for after_node_id (omit to append before the end screen) and clarifies that node types and config schemas match clipform_create_form rather than being documented here. This lifts it above the schema-only baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Add a new node to an existing form') and immediately scopes behavior: default insertion is before the end screen, and after_node_id controls position. An agent can distinguish this from clipform_update_node or clipform_create_form without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly routes the agent away from a sibling: 'you do not need clipform_set_logic for a simple insert' but 'Branching still needs an explicit logic write.' It also points to clipform_create_form for node types and clipform_get_guide for craft guidance, giving clear when-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_attach_node_mediaAttach Node MediaADestructiveIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| items | Yes | One or more attachments to make | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| form_id | Yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | One result per item, in order |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the agent knows this mutates state safely-repeatedly. The description adds batching semantics (sequential application of multiple items) and asset reusability, but never says what happens to media already on a node (overwrite vs. append) or what a partial batch failure looks like — notable for a destructive mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the core action and the batching cap before the type restriction. No filler, though the closing reusability sentence is somewhat redundant with the opening 'existing workspace media asset'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description covers batching, type restrictions and reuse. However, for a tool flagged destructive it omits the most consequential behavior: whether attaching replaces existing node media, and what happens on failure partway through a sequential batch.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including detailed guidance on fit_media and show_captions, so the schema carries the parameter burden. The description only restates the batch limit and reusability of media_asset_id, adding little beyond the structured fields. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (attach), the exact resource (an existing workspace media asset produced by clipform_upload_media_asset), and the target (one or more nodes). It clearly separates itself from clipform_upload_media_asset, clipform_get_node_media and clipform_delete_node_media by naming the source of the asset and the direction of the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a real constraint: only node types that support media, enumerated explicitly (choice, open, scale, draw, binary, button), plus the batching rule (max 10, sequential). It does not name alternatives for the inverse operations (removing or reading node media), so it stops short of full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_check_renderCheck Render StatusARead-onlyIdempotentInspect
Check the status of render jobs started by 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 | Required | Description | Default |
|---|---|---|---|
| job_id | No | A single job ID returned by the render tool | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| job_ids | No | Multiple job IDs - check the whole batch in one call instead of one call per job |
Output Schema
| Name | Required | Description |
|---|---|---|
| jobs | Yes | One entry per queried job; attach completed public_urls via upload_media_asset then attach_node_media unless already auto-attached |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuinely useful behavior beyond that: typical render time of 10-60 seconds, and the non-obvious fact that attachment happens automatically when node_id was supplied and its outcome surfaces here. It stops short of, say, failure/error semantics for jobs that never complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, all load-bearing, ordered from what the tool does to how to call it to what comes back. The batching instruction and the attach-automation note are front-loaded where an agent will see them. Minimal overlap with the output schema beyond one short clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be re-explained, and the description wisely limits itself to one line about output URLs. Between the annotations, the output schema and this description, an agent has everything needed to call it correctly, including the timing expectation that prevents premature polling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description earns above baseline by explaining the semantic distinction the schema cannot: job_ids is a batching mechanism ('one line of status per job') rather than a plain array, and job_id vs job_ids are alternatives rather than combinable filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Check the status of render jobs') and scopes it to jobs created by clipform_render_video_template or clipform_render_composition. This distinguishes it cleanly from siblings like clipform_get_results or clipform_get_node_media without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: use job_ids to check a batch in one call, job_id for a single job. It also resolves the implicit question of whether to poll, stating 'no need to poll to completion' because attach is automatic. Both the when and the when-not are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_complete_media_uploadComplete Media UploadAIdempotentInspect
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 (they settle automatically).
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| form_id | No | The form this is for (from clipform_create_form) - a routing hint only, to pick the right workspace. The result still lands in the workspace library, not on a node. Required on an anonymous session, or this lands in a different workspace and clipform_attach_node_media will not find it. | |
| media_asset_id | Yes | The media_asset_id returned by clipform_upload_media_asset for the still image |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | The asset's status after this call - ready on success, or its already-settled status when called again (noop) |
| media_asset_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, idempotent, non-destructive, closed-world. The description adds genuinely new behavior: the server verifies the object landed in storage and flips the asset from processing to ready, and that skipping the call leaves the asset invisible. It does not discuss retry semantics despite the idempotentHint, or any auth/permission requirements, so it falls short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the action, then the reason, then the exclusion. Every sentence carries distinct information; there is no restatement of the title or name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be described. For a 3-parameter, two-required workflow tool the description supplies the prerequisite call, the timing constraint, the failure consequence and the video carve-out — everything an agent needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so media_asset_id, form_id and context are already documented in the schema, including the anonymous-session routing caveat for form_id. The description adds no parameter-level meaning (e.g. behavior when media_asset_id is unknown or already ready), so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Confirm a signed-PUT still image upload finished' — and situates it in the workflow relative to the sibling clipform_upload_media_asset whose upload_url it consumes. An agent can distinguish it from clipform_upload_media_asset and clipform_attach_node_media without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when ('call this right after the PUT succeeds'), explicit consequence of omission ('the asset stays invisible in the library'), and an explicit when-not ('Not needed for video uploads (they settle automatically)'). This is the full when/when-not/alternative pattern.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_create_formCreate ClipformInspect
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 build into a temporary account of their own: guests connected through a chat app (ChatGPT, Claude) get a form that goes live, takes up to 3 responses and goes offline after 7 days unless the user signs up, with steps that need an account (such as payments and uploads) switched off until sign-up; other anonymous channels stay private previews. Some results also include a one-time claim URL that signs the user into that account; relay it when present.
If the user hasn't said what to build yet, offer to build their first form and suggest starting points: quiz, survey, interview, testimonial, application, booking, client intake, lead capture, or something else.
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}), max_recording_seconds (number, default: 120). 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, document, require_scroll_to_accept}), Available field IDs: first_name, last_name, email, phone. Standard fields keep their names (no label needed); for other wording or a non-English form, add a custom field ({ id, is_custom: true, label, type }). Defaults: {"fields":[{"id":"first_name","required":true},{"id":"email","required":true}],"consent_items":[]}
draw: Drawing canvas; respondents draw and it is saved as a PNG image. Config: title (string), description (string), paper_color (string, default: "#FAF9F6"), diagram ({opacity, scale, preset}). Defaults: {"paper_color":"#FAF9F6","stroke_colors":["#1F2937","#EF4444","#3B82F6","#22C55E","#FACC15"],"stroke_widths":[3,6,12],"diagram":{"opacity":1,"scale":1}}
camera: Capture a photo or video from the device camera. Config: title (string), description (string), camera_facing ("user"|"environment", default: "user"), allowed_capture (array of "photo"|"video"), camera_capture (array of "photo"|"video"), allow_library_upload (boolean, default: true), capture_order (array of "photo"|"video"|"library"), max_files (number, default: 1), min_files (number, default: 1)
payment: Collect a payment from respondents inline, charged to a connected Stripe account. Config: amount (number), currency ("usd"|"eur"|"gbp"|"cad"|"aud", default: "usd"), provider ("stripe"|"paddle", default: "stripe"), workspace_integration_id (string), title (string), description (string). Defaults: {"amount":null,"currency":"usd","provider":"stripe"}
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 for respondents to download. Config: files (array of {file_name, display_name, file_path, file_size, mime_type}), button_text (string, default: "Continue"), description (string)
end_screen: Final screen shown when form is completed. Config: title (string, default: "Thank you!"), message (string, default: "Your response has been submitted."), icon ("tick"|"trophy"|"star"|"crown"|"party"|"none", default: "tick"), show_share_button (boolean, default: false), cta_type ("none"|"restart"|"external_link", default: "none"), cta_text (string, default: "Continue"), cta_url (string). Defaults: {"title":"Thank you!","message":"Your response has been submitted."}
All type definitions and config schemas are derived from @vid-master/config (node-types). Refer to the config descriptions above for the correct keys and shapes. AI-PROTECTED parameters have restrictions noted in their descriptions.
Example: A form that asks a question, collects contact info, then finishes: { title: "Quick Survey", nodes: [ { type: "open", prompt: "What's your biggest challenge?" }, { type: "details", prompt: "Leave your details", config: { fields: [{ id: "first_name", required: true }, { id: "email", required: true }] } }, { type: "end_screen", prompt: "Thanks for your response!" } ] }
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Tags for indexing (e.g. ['quiz', 'trivia', 'arsenal']). Include format, genre, and topics. | |
| nodes | Yes | Ordered list of nodes/steps for the form | |
| title | Yes | Form title | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| font_family | No | AI-PROTECTED: Only set when the user explicitly requests a specific font. | |
| workspace_id | No | Workspace to act in (id from clipform_whoami workspaces). Omit to use the connection's default workspace. | |
| primary_color | No | Primary/brand color as 6-digit hex (e.g. '#FF5500'). Used for buttons and accents. | |
| background_color | No | Background color as 6-digit hex (e.g. '#1A1A2E'). | |
| show_step_counter | No | Show step counter (e.g. '1/5'). Set true for quizzes. | |
| disable_back_navigation | No | Prevent going back. Set true for quizzes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| plan | No | Plan and auth context for this session |
| nodes | Yes | Created nodes in order - IDs for attach_node_media / update_node |
| form_id | Yes | Form UUID - pass to follow-up tools |
| claim_url | No | Anonymous builds only. One-time link to sign up, keep this form and switch on its locked steps. |
| is_preview | No | True when viewer_url is a private preview (answers are not saved), false when it is the live URL. |
| viewer_url | Yes | Form URL for respondents - the live public URL. For a guest build held back from going live this is a private preview link instead: answers are not saved, do not share it with respondents. |
| preview_url | No | Anonymous builds only. Private preview of the form. Answers are not saved, so do not share it with respondents. |
| dashboard_url | No | Builder URL (sign in to edit). For an anonymous build this is a one-time sign-up link, not an editor. |
| workspace_name | No | Name of the workspace the form was created in |
clipform_delete_formDelete ClipformADestructiveIdempotentInspect
Move a form and all its nodes to the trash. It stops accepting responses immediately and can be restored later. Requires user confirmation before it runs. Needs a signed-in Clipform account (an anonymous session is asked to sign in).
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | 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. | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| form_id | Yes | The form UUID to delete (returned by clipform_create_form, not the short share_id from the URL) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds materially new behavior: this is a soft delete to trash that can be restored, responses stop being accepted immediately, user confirmation is required, and an authenticated session is mandatory. These are exactly the traits an agent needs before invoking a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences with zero waste; the action and its reversibility are front-loaded, followed by the confirmation and auth requirements. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich annotations, full schema description coverage, and no output schema to explain, the description covers everything needed: what happens, reversibility, confirmation flow, and authentication gating. Nothing an agent needs in order to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains confirm, context, and form_id in detail, including that form_id is the UUID rather than the share_id. The description adds no parameter-level detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (move a form and all its nodes to the trash), naming the scope that distinguishes it from clipform_delete_node, which targets a single node. The agent can tell the two siblings apart without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context: requires explicit user confirmation, needs a signed-in account, and an anonymous session is redirected to sign-in. It does not explicitly name the alternative for deleting a single node, but the prerequisites and conditions for use are well specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_delete_nodeDelete NodeADestructiveIdempotentInspect
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. On a live form the node stays on the live form until the form is published. Requires user confirmation before it runs.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | 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. | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| form_id | Yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) | |
| node_id | Yes | The node ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavior beyond the annotations: automatic re-linking of the logic chain, the protected start/last-end-screen nodes, and the deferred-effect behavior on live forms (node persists until publish). These are non-obvious side effects and constraints that directly affect safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, each contributing a distinct constraint (effect, re-linking, protected nodes, live-form semantics, confirmation). Front-loaded with the core action and no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers side effects, guardrails, confirmation requirements, and live-form behavior. Nothing an agent needs to call it correctly appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with four documented parameters, so the schema already carries parameter meaning; the description adds no additional parameter detail. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Delete a node from a form'), and the affected resource is unambiguous among siblings named delete_node_media and delete_form. An agent can differentiate this from adjacent tools without inspecting the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete usage constraints: cannot delete the start node or the last end screen, and requires user confirmation before running. It doesn't name alternative tools (e.g., update_node to modify instead of remove), so it stops short of explicit alternatives, but the conditions are clearly actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_delete_node_mediaDelete Node MediaADestructiveIdempotentInspect
Remove media from a node by unlinking it; the media asset and its files stay in the workspace library and keep working on any other node or live form that uses them. Requires user confirmation before it runs.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | 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. | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| form_id | Yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) | |
| node_id | Yes | The node ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint/idempotentHint annotations, the description discloses precisely what gets destroyed versus preserved: the node link is removed while the media asset and files remain in the workspace library and continue working elsewhere. It also states a user-confirmation precondition, adding behavioral context annotations do not carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no waste, and the critical contrast (unlink only, asset survives) is front-loaded before the confirmation requirement. Every clause carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers the two things an agent most needs: what is and isn't destroyed, and that confirmation is required. Combined with annotations and 100% schema coverage, nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with confirm, context, form_id and node_id all documented in the schema (including the confirm-after-explicit-approval rule and the UUID-vs-share_id distinction). The description adds no parameter-level detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Remove media from a node by unlinking it" names a specific verb (remove/unlink) and resource (media on a node), and the clause about the asset staying in the library distinguishes this from sibling operations like clipform_delete_node or asset deletion. An agent can tell it apart from clipform_attach_node_media and clipform_get_node_media without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scope clause (media detached, asset preserved, other nodes/forms unaffected) tells the agent the situation this tool is for, and it implicitly excludes destructive asset deletion. However, no sibling is named as an alternative and there is no explicit "use clipform_delete_node instead when..." routing, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_fetch_boundaryFetch Geographic BoundaryARead-onlyIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| type | No | Type of place to search for | country |
| query | Yes | Place name (e.g. 'France', 'Paris', 'Tokyo', 'Brazil') | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| maxPoints | No | Maximum points per polygon ring for simplification (default 500, lower = smaller payload) | |
| mainlandOnly | No | Keep only the largest landmass, excluding small islands and overseas territories |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | Resolved place name |
| geojson | Yes | The Feature GeoJSON as a JSON string - use as the boundary prop in the Map composition |
| size_kb | Yes | Approximate size of the returned GeoJSON in KB |
| geometry_type | Yes | |
| mainland_only | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, open-world, idempotent, and non-destructive behavior. The description adds valuable behavioral context by explaining that the output is simplified GeoJSON and detailing how mainlandOnly affects the result with concrete examples (Corsica, Hawaii). It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: the first sentence communicates the core function and output usage, and the second clarifies a key parameter. No filler words; every sentence earns its place and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description does not need to detail return values. It covers the tool's purpose, output format, and the key parameter behavior. Minor gap: the description lists 'country, city, or region' but omits 'state' from the schema enum, though the schema itself clarifies this. Overall adequate for an agent to select and call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds extra meaning for mainlandOnly by giving examples of excluded islands, which goes beyond the schema's generic 'Keep only the largest landmass' phrasing. It also implies the effect of simplification in the first sentence, supplementing maxPoints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Fetch') and resource ('GeoJSON boundary polygon'), and immediately states the output's purpose ('ready to use as the boundary prop in the Map composition'). It clearly distinguishes the tool from rendering, media, and form-management siblings by focusing on geographic boundary retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when a GeoJSON boundary is needed for a Map composition. It does not explicitly name alternatives or exclusions, but the purpose is specific enough that no other sibling tool competes for this function. This is clear context without explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_generate_ttsGenerate Text-to-SpeechAInspect
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 caption_ref per item - pass caption_ref downstream to clipform_render_composition / clipform_render_video_template / clipform_upload_media_asset to attach this run's word-level captions instead of hand-copying the captions array.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | One or more TTS items to generate | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| form_id | No | The form this is for (from clipform_create_form) - a routing hint only, to pick the right workspace. The result still lands in the workspace library, not on a node. Required on an anonymous session, or this lands in a different workspace and clipform_attach_node_media will not find it. | |
| workspace_id | No | Workspace to act in (id from clipform_whoami workspaces). Omit to use the connection's default workspace. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | One result per item, in order |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare mutating/non-destructive/non-idempotent. The description adds real context beyond that: batching cap of 10, parallel execution, per-item return of audio_url and caption_ref, and where results land. It stops short of noting that repeat calls produce duplicate assets (idempotency consequence), which would matter for a generation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and paragraphs are organized by concern (usage, voice, tone, batching). It is longer than strictly needed, repeating voice descriptions that already appear verbatim in the schema enum, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still tells the agent what comes back (audio_url, caption_ref) and how to consume it downstream, plus the voice/tone selection policy. Complete for an agent to call this correctly on the first try.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds strategy beyond the schema: pick one voice for the whole form and reuse it, always set a tone matching the mood, and pass one or many items. That is guidance the schema text alone only partially conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource+output: 'Generate narration audio from text with word-level captions.' It is unambiguous against siblings (no other tool does TTS) and the scope of use is stated immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use cases (quiz narration, survey intros, form instructions), proactive-suggestion guidance, and named downstream alternatives (clipform_render_composition / clipform_render_video_template / clipform_upload_media_asset) for attaching captions. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_get_formGet ClipformBRead-onlyIdempotentInspect
Retrieve a form's details including all nodes in sequential order and their routing. Returns title, settings, and every node with its options, config, media status, and next node (from clipform_set_logic).
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| form_id | Yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) |
Output Schema
| Name | Required | Description |
|---|---|---|
| urls | No | Dashboard/viewer deeplinks for this form. An anonymous caller gets only 'viewer'. |
| nodes | Yes | Nodes in sequential order - IDs for update_node / attach_node_media |
| title | Yes | Form title |
| form_id | Yes | Form UUID |
| is_live | Yes | Whether the form is published |
| has_unpublished_changes | Yes | Live form has edits not yet republished |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is fully covered. The description adds some value by naming the returned fields (title, settings, node options/config/media status/next node) and attributing the routing to clipform_set_logic, but it discloses no auth, rate-limit, or failure behavior beyond what annotations and the output schema provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the primary purpose and then the return contents. Every clause carries information and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With rich annotations and a dedicated output schema, the definition only needs to orient the agent, which it does. The return-value description is somewhat redundant against the output schema, but the purpose and scope are complete enough to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both form_id and context are already documented (including the useful note that form_id is not the short share_id). The description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Retrieve) and resource (a form's details), and scopes the content precisely: all nodes in sequential order plus their routing. It is clearly a single-form read tool, distinguishable from clipform_list_forms and clipform_get_workflow, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus alternatives such as clipform_get_workflow or clipform_list_forms, nor any stated prerequisites. The usage context is only weakly implied by the content it returns.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_get_guideGet Craft GuideARead-onlyIdempotentInspect
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, intake, lead-capture. 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, client-intake → intake, onboarding → intake, enquiry → intake, inquiry → intake, new-client → intake, lead → lead-capture, lead-form → lead-capture, enquiry-form → lead-capture, waitlist → lead-capture, get-a-quote → lead-capture. Quiz variants (optional): personality, comprehension, composition - appends variant-specific addendum to the base quiz guide.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Form type to get the craft guide for (accepts aliases like 'feedback' → survey) | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| variant | No | Quiz sub-variant. Only used when type is 'quiz'. Omit for a standard scored quiz. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds valuable behavioral context by specifying the return format as markdown, detailing the information payload, and clarifying the exclusion of workflow content. This goes beyond what annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentences are front-loaded with the core purpose and the crucial differentiation from clipform_get_workflow. The alias list is long but justified because alias resolution is essential for correct invocation. Slight redundancy exists in listing types twice, but overall the content is dense and purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent knowledge-retrieval tool with no output schema, the description is complete: it explains what the result contains, its format, the accepted inputs, aliases, variants, and the key sibling exclusion. An agent has everything needed to select and correctly call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description significantly enriches parameter understanding: it expands the 'type' parameter with the full list of supported types, an extensive alias map, and further clarifies the optional 'variant' parameter with its valid values and purpose. This is far more informative than the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource: 'Retrieve craft knowledge for building a specific form type' and enumerates the concrete knowledge categories returned. Explicitly distinguishes itself from clipform_get_workflow, so an agent can differentiate it from the most closely related sibling without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Directly states what the tool does not do and names the correct alternative: 'Does NOT return a step-by-step build workflow - use clipform_get_workflow for that.' It also provides the complete set of accepted types, aliases, and optional variant guidance, making the selection criteria explicit and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_get_node_mediaGet Node MediaARead-onlyIdempotentInspect
Get the media attached to a node, including processing status. Useful for checking if a video upload has finished processing.
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| form_id | Yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) | |
| node_id | Yes | The node ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| media | Yes | Attached media (null if the node has none) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds that the response includes processing status, a genuine behavioral detail, but says nothing about what statuses exist or how pending vs. failed media appear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, purpose front-loaded, zero filler. Everything stated earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A read-only, output-schema-backed tool with fully documented parameters needs little more; the description supplies purpose and one use case. It could be slightly more complete by naming whether media can be multiple items or the status vocabulary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the parameter descriptions are rich (e.g., form_id warns to use the UUID rather than the share_id). The description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (media attached to a node) plus the scope (processing status), which an agent can distinguish from clipform_search_media or clipform_attach_node_media. It never explicitly names a sibling, so differentiation is inferred from the node-scoped wording rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Offers one concrete scenario (checking whether a video upload finished processing), which is implied usage guidance. There is no when-not-to-use guidance and no routing to clipform_check_render or clipform_search_media for related checks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_get_responsesList form responsesARead-onlyIdempotentInspect
List a Clipform form's individual responses (submissions) with time filtering - complements clipform_get_results (aggregates). Answers questions like 'what came in during the last 24 hours', 'what's the longest answer', 'what did people say'. Text answers plus a non-PII payment summary (amount and status); booking, contact details, file upload, drawing, and camera answers and audio/video recordings are redacted to placeholders and the customer's payment details stay in the dashboard (the responses URL from clipform_get_form). Responses are sorted newest first unless sort: 'oldest'. Needs a signed-in Clipform account (an anonymous session is asked to sign in).
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Order by submission time. Default: newest | |
| limit | No | Max responses to return (default 20, max 50) | |
| query | No | Only responses whose text answers contain this string (case-insensitive) | |
| since | No | Only responses submitted at or after this ISO 8601 time (e.g. '2026-08-29T00:00:00Z') | |
| until | No | Only responses submitted at or before this ISO 8601 time | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| form_id | Yes | Form UUID (from clipform_list_forms / clipform_create_form) |
Output Schema
| Name | Required | Description |
|---|---|---|
| returned | Yes | Responses in this result |
| responses | Yes | Matching responses, filtered/sorted/capped per the inputs |
| total_matching | Yes | Responses matching the filters (before the limit cap) |
| locked_over_plan_limit | Yes | Matching responses hidden by the plan's response limit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, closed-world), and the description adds substantial context beyond that: which answer types are redacted to placeholders (booking, contact, file upload, drawing, camera, recordings), that payment data is limited to a non-PII amount/status summary, that auth requires a signed-in account, and that the underlying responses URL comes from clipform_get_form.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and sibling differentiation are front-loaded, and the parenthetical redaction inventory is information-dense rather than filler. The single long run-on sentence is slightly heavy but nearly every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema, full annotations, and 100% param coverage, the only remaining burden is behavioral nuance — redaction/PII limits, auth requirement, sort order, and where form_id comes from — all of which the description supplies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including since/until ISO 8601 format and enum defaults is already documented. The description only restates the sort default and adds vague 'time filtering' language, which is baseline-level value on top of a self-documenting schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List a Clipform form's individual responses (submissions)') with scope modifiers (time filtering), and explicitly contrasts it with clipform_get_results, which aggregates. An agent can distinguish the two without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative (clipform_get_results for aggregates) and gives concrete example questions ('what came in during the last 24 hours', 'what's the longest answer') that map to this tool's use. No explicit 'do not use when' clause, so it stops just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_get_resultsGet Clipform ResultsARead-onlyIdempotentInspect
View response counts, choice/action answer breakdowns, and recent open-text answers for a form. Answers to booking, contact details, file upload, drawing, camera, and payment nodes are counts only - use the dashboard for per-response detail. Needs a signed-in Clipform account (an anonymous session is asked to sign in).
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| form_id | Yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) |
Output Schema
| Name | Required | Description |
|---|---|---|
| nodes | Yes | Nodes in form order. The booking, contact details, file upload, drawing, camera, and payment nodes carry only total_responses/total_views - no per-response detail. |
| results_url | No | Dashboard Responses tab for this form. Not present for an anonymous caller. |
| total_responses | Yes | Total unique respondents to the form |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, closed-world. The description adds genuinely new behavioral context: an authenticated Clipform account is required and anonymous sessions will be prompted to sign in. It also discloses a real data limitation (booking, contact, file upload, drawing, camera, payment nodes return counts only), which prevents the agent from promising per-response detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each carrying a distinct payload: what you get, what you don't get, and what access is needed. Front-loaded with the returned content. Slightly dense but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description doesn't need to explain return shapes, and it correctly focuses on the auth requirement and the node-type data limitations. The one missing piece for a tool in a 29-sibling server is routing guidance versus clipform_get_responses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (form_id, context) are documented there, including the warning that form_id is the UUID not the share_id. The description adds nothing about parameters beyond what the schema already says, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('View response counts, choice/action answer breakdowns, and recent open-text answers for a form'), so an agent knows exactly what data comes back. It fails to distinguish itself from the sibling clipform_get_responses, which by name alone looks like it does the same thing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It does name one alternative ('use the dashboard for per-response detail'), which is useful routing for detailed exports. But the sibling clipform_get_responses is never mentioned, so the agent has no guidance on when to pick one over the other.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_get_workflowGet Build WorkflowARead-onlyIdempotentInspect
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, intake, lead-capture. 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, client-intake → intake, onboarding → intake, enquiry → intake, inquiry → intake, new-client → intake, lead → lead-capture, lead-form → lead-capture, enquiry-form → lead-capture, waitlist → lead-capture, get-a-quote → lead-capture. 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): 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
intake: use_case, response_format (all)
lead-capture: use_case
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | What the application is for (application) | |
| type | Yes | Form type to get the build workflow for (accepts aliases like 'feedback' → survey) | |
| topic | No | Topic or theme (quiz, survey) | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| purpose | No | What you're collecting (interview) | |
| variant | No | Quiz sub-variant. Only used when type is 'quiz'. Omit for a standard scored quiz. | |
| audience | No | Target audience (quiz variant: comprehension) | |
| criteria | No | Routing criteria (funnel) | |
| outcomes | No | Segments or recommendations (funnel) | |
| use_case | No | What stories to collect (testimonial) | |
| anonymous | No | Anonymous survey (survey) | |
| categories | No | Comma-separated outcome categories (quiz variant: personality) | |
| event_name | No | Event or offering name (booking) | |
| event_type | No | Type of event (booking) | |
| needs_consent | No | Include consent statement (interview) | |
| needs_contact | No | Include contact capture (funnel) | |
| question_count | No | Number of questions, default 8 (quiz types) | |
| response_format | No | How respondents reply (interview) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe, read-only, idempotent, closed-world retrieval, so the safety profile is covered. The description adds useful substance beyond that by spelling out what the recipe contains (tool sequence, settings, scoring, end screen), which matters since there is no output schema. It stops short of noting anything about response size or downstream application of the recipe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and the guide exclusion before the long tail of type/alias detail, so the critical routing information comes first. The exhaustive alias list is bulky but each mapping prevents a failed call, so it earns most of its space; the structure could still be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 18-parameter, no-output-schema tool this is complete: the agent knows the valid types, variants, per-type optional args and defaults, and what the response will contain. The required 'context' parameter is documented in the schema, and nothing needed to invoke correctly is missing from the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description genuinely adds meaning: it maps which optional args apply to which type, states the question_count default of 8, and gives the full alias table (trivia→quiz, nps→survey, etc.) that the schema only gestures at. The tiering of args by type is information the flat schema cannot convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Retrieve a step-by-step build workflow for creating a specific form type') and enumerates the returned artifacts (tool sequence, settings, node config, scoring, end screen). It explicitly differentiates itself from clipform_get_guide, so an agent can route without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit exclusion: 'Does NOT return craft knowledge… use clipform_get_guide for that,' naming the alternative and the condition selecting it. It also enumerates the valid type values and variant options, preempting the main failure mode of calling with an unknown type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_import_formImport FormAInspect
Copies the questions from a public Google Form, Typeform, or Tally form into a new Clipform draft. The source form and its responses stay where they are. Supported URLs: Google Forms (docs.google.com or forms.gle - must be shared as "Anyone with the link"), Typeform (form.typeform.com/to/...), and Tally (tally.so - must be public). The source form must be publicly accessible; a private form's questions cannot be read. The new Clipform is created as a DRAFT - review it, then republish with clipform_update_form (is_live: true) once it's ready. Some question types don't map cleanly to a Clipform node and are skipped rather than guessed at; the result always reports exactly what was imported vs skipped, and why.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public URL of the Google Form, Typeform, or Tally form to import | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| workspace_id | No | Workspace to act in (id from clipform_whoami workspaces). Omit to use the connection's default workspace. |
Output Schema
| Name | Required | Description |
|---|---|---|
| form_id | Yes | New form's UUID - pass to follow-up tools. Null when no importable questions were found (nothing was created). |
| viewer_url | Yes | The address this form WILL be live at once published (clipform_update_form with is_live: true) - it is a draft and is NOT viewable by anyone yet; opening it now shows a maintenance screen, not the form. Null when no importable questions were found. |
| import_summary | Yes | |
| workspace_name | No | Name of the workspace the form was created in |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only flag the call as non-read-only, non-destructive, open-world and non-idempotent; the description adds what actually happens: source form and responses stay untouched, private forms cannot be read, output is an unpublished draft, and unmappable question types are skipped rather than guessed with a per-item import/skip report. That is substantive behavioral context beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Action is front-loaded in sentence one, then preconditions, then the required next step, then edge-case behavior. Every sentence carries either a constraint or a workflow instruction; nothing is redundant with the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating, open-world import tool with an output schema, the description covers sourcing, visibility requirements, draft state, follow-up publishing, and partial-import semantics. An agent has everything needed to call it correctly and to know what to do with the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description adds real value on the url parameter by enumerating accepted hosts and the sharing requirement (docs.google.com/forms.gle 'Anyone with the link', form.typeform.com/to/..., public tally.so). It says nothing extra about workspace_id or the context parameter, which the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb+resource (copies questions) plus an exact source set (Google Form, Typeform, Tally) and destination (new Clipform draft). This clearly separates it from clipform_create_form (build from scratch) and clipform_get_form (read an existing form).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the key precondition (source must be publicly accessible) and the post-call workflow: the result is a DRAFT, review it, then republish via clipform_update_form with is_live: true — explicitly naming the sibling to chain to. It doesn't explicitly contrast with clipform_create_form for the from-scratch case, so not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_list_assetsList AssetsBRead-onlyIdempotentInspect
List available creative assets (sound effects, animations, fonts) for video compositions.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Asset type to list (default: all) | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sfx | Yes | |
| fonts | Yes | |
| animations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds the asset category taxonomy, which is mild useful context, but says nothing about result volume, pagination, or whether the list is scoped to the user's workspace.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; verb and resource come first. It is appropriately sized, though the brevity is partly what leaves the usage and scoping questions unanswered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the annotations cover the safety profile. What remains missing is routing context against the many sibling list/search tools and any hint about result scope — enough to call it adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with only two parameters, so the schema already documents both the type enum and the context field. The description's enumeration of asset types loosely parallels the enum values but adds no filtering semantics or format detail beyond it — baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) plus resource (creative assets) and enumerates the categories it covers (sound effects, animations, fonts), which maps directly to the enum. It does not, however, distinguish itself from nearby siblings such as clipform_search_music, clipform_search_media, or clipform_list_video_templates, leaving the agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives. With four list_* siblings and three search_* siblings in the toolset, the agent gets no signal about when listing assets is preferable to searching music or media, or how this relates to adding assets to a composition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_list_compositionsList CompositionsARead-onlyIdempotentInspect
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 an image or photo montage, reach for a video template (clipform_list_video_templates + clipform_render_video_template) instead of a composition.
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. |
Output Schema
| Name | Required | Description |
|---|---|---|
| compositions | Yes | Available compositions - pass an id to render_composition |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds the fact that results include props schemas, but that is largely duplicative of the output schema, and it says nothing about result volume, pagination, or freshness of the catalog. Adequate but thin beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the purpose, then the workflow ordering, then the exclusion. Every sentence earns its place with zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return values, and it correctly covers purpose, ordering, and the sibling alternative. The only minor gap is the absence of any hint about catalog size or how to interpret the props schemas, but an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema description coverage is 100%, so the schema fully documents 'context' including the instruction not to name the tool being called. The description adds no additional meaning for that parameter, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Browse available video compositions') plus the payload returned (expected props schemas), and explicitly distinguishes itself from the sibling clipform_list_video_templates. An agent can tell this apart from the template-listing tool without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit ordering guidance ('Call this before using clipform_render_composition') and an explicit when-not with a named alternative route (video templates for image/photo montages, naming both list_video_templates and render_video_template). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_list_formsList ClipformsARead-onlyIdempotentInspect
List forms in your workspace with optional filtering. Returns paginated results (cursor-based). next_cursor is included when more results exist. To find or open a form by name, pass search with part of its title instead of paging through results. Needs a signed-in Clipform account (an anonymous session is asked to sign in).
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter by tag name(s), comma-separated. AND logic: only forms with ALL tags are returned. | |
| sort | No | Sort field (default: created_at) | |
| limit | No | Number of forms to return (default 25, max 100) | |
| order | No | Sort order (default: desc, newest first) | |
| cursor | No | Pagination cursor from previous response's next_cursor | |
| search | No | Filter to forms whose title contains this text (case-insensitive substring). Use this to resolve a form by name in one call instead of paginating. | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| published | No | Filter by publish status | |
| workspace_id | No | Workspace to act in (id from clipform_whoami workspaces). Omit to use the connection's default workspace. |
Output Schema
| Name | Required | Description |
|---|---|---|
| forms | Yes | Matching forms (empty if none) |
| next_cursor | Yes | Pass as cursor to fetch the next page, or null when no more |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive, and the description adds genuinely new behavior: cursor-based pagination, next_cursor presence, and an authentication prerequisite. It does not cover rate limits or result size, but the added context is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences with the core action front-loaded, followed by pagination and the search shortcut. Slight overlap between the pagination sentence and the schema's cursor description, but no real waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description needn't explain return fields, and it sensibly limits itself to pagination mechanics and auth requirements. Coverage is adequate for a filtered-list tool with 9 documented parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with rich per-parameter descriptions (tags AND logic, defaults, cursor source, search semantics), so the schema carries the parameter burden. The description echoes the search/cursor behavior rather than adding syntax or constraints beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List forms in your workspace') plus scope ('optional filtering'), which is clearly distinct from the sibling clipform_get_form. It does not, however, explicitly name that sibling or otherwise route the agent between list and single-retrieve.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real usage direction: use search with part of a title instead of paging, and notes the signed-in-account requirement (anonymous sessions are asked to sign in). It stops short of stating when to prefer clipform_get_form over this list tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_list_video_templatesList Video TemplatesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. |
Output Schema
| Name | Required | Description |
|---|---|---|
| templates | Yes | Available video templates - pass a name + controls to clipform_render_video_template |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: what a template conceptually is, that it renders from a small controls object, and how it relates to the render tools. It does not discuss return shape, but an output schema exists so that burden is not on the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: the first defines the resource, the second gives the workflow ordering, the third names the alternative. No filler, and the routing information is front-loaded enough to be actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with full annotation coverage, a complete output schema, and a fully described single parameter, the description supplies everything else an agent needs: what the tool returns conceptually, when to call it, and which sibling to use instead. Nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is a single 'context' parameter whose description is already self-explanatory. The tool description adds no additional meaning about that parameter, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (browse/list video templates) and elaborates what a template actually is: a curated Scene arrangement of bed + overlay with sane defaults rendered through the Scene composition. This lets an agent distinguish it from clipform_render_video_template and clipform_render_composition without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit call ordering ('Call this before clipform_render_video_template') and names the alternative path for a different need ('for a fully custom layer stack, assemble Scene layers directly via clipform_render_composition instead'). Both the when and the when-not are spelled out with the sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_log_generationLog Form Generation AuditAInspect
Internal audit step run by a form-generation workflow. Records a completed generation's content provenance (sources, image attributions) for the flow that just built the form. Not a user action - only call it as the final step of a generation workflow you are running, never in response to a plain create or edit request.
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| details | Yes | Content sources and attributions | |
| form_id | Yes | The form ID (UUID format, not the share ID) | |
| summary | Yes | Short description of what was generated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=false, so safety profile is covered. The description adds genuinely useful behavioral context beyond that: the tool is an internal audit step, not a user-facing action, and it must be the terminal step of the workflow. It does not discuss what happens on repeated calls despite idempotentHint=false, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the purpose front-loaded and the usage constraint immediately following. No filler, no restating of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a non-read-only audit logger with full schema coverage, clear annotations, and no output schema, the description supplies everything an agent needs: what it records, why it exists, and the precise workflow position it must occupy.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including nested images/sources objects, so the schema does the heavy lifting and the baseline is 3. The description names the kind of content captured (sources, image attributions), which lightly maps to the 'details' parameter but adds no syntax or format guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource: it records content provenance (sources, image attributions) for a form that was just generated. It also positions the tool within the workflow ('internal audit step run by a form-generation workflow'), which separates it from siblings like clipform_create_form and clipform_update_form.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use ('only call it as the final step of a generation workflow you are running') and explicit when-not ('never in response to a plain create or edit request'). This is exactly the routing an agent needs to avoid misfiring this tool on ordinary form operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_render_compositionRender CompositionADestructiveInspect
Render a specialised video composition to MP4 or PNG - custom animated visuals that a video template 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.
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. For a photo/clip montage, narrated or silent, use the slideshow template (pass audio_url to sync it 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 | Required | Description | Default |
|---|---|---|---|
| wait | No | 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. | |
| items | No | 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. | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| form_id | No | The form UUID - required when node_id is set (single render) or any item sets node_id (batch). | |
| node_id | No | 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. | |
| captions | No | 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. | |
| inputProps | No | 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 silently with defaults. For map compositions (Map), wide shots (camera.zoom < 9) may round lat/lng to 1 decimal place to improve cache hit rates; close shots and pin drops should keep full precision — the pin lands exactly on `target`. | |
| caption_ref | No | Single render only: caption_ref from clipform_generate_tts - an opaque handle that attaches that TTS run's word-level captions to the media asset, resolved server-side. Preferred over captions. Only used when node_id is set. For batch mode, set caption_ref per item instead. | |
| outputFormat | No | Single render: output format (default: mp4) | mp4 |
| compositionId | No | Single render: the composition ID. Call clipform_list_compositions to see available options (e.g. 'Slideshow', 'Map', 'Grid'). Use items instead for multiple renders. |
Output Schema
| Name | Required | Description |
|---|---|---|
| jobs | Yes | One entry per render (single or batch) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructive/openWorld/non-idempotent, and the description adds real behavioral context beyond them: returns a public URL, batch renders fire in parallel with one job ID each, wait:true blocks while wait:false returns a job ID, and strict inputProps validation fails loudly rather than silently defaulting. It does not explain why the operation is flagged destructive (e.g. overwriting existing node media), which is the one remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight paragraphs, front-loaded with purpose then formats then batching then tool selection. Every sentence carries routing or behavioral information, though the mode-placement rules are restated across the description and the schema, adding mild redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with nested objects and a full output schema, the description covers the decision path (which render tool), the batching model, the attachment workflow, and the caption pipeline. An agent has everything needed to call it correctly without extra exploration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuine semantics: the single-vs-batch mode split, the 10-item cap, the top-level vs per-item placement of node_id/captions/caption_ref, and the preference of caption_ref over captions. That goes beyond restating schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Render a specialised video composition to MP4 or PNG') and immediately scopes it against the sibling render path by naming what it is for: custom animated visuals a video template can't provide. An agent can distinguish it from clipform_render_video_template without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: reach for video templates for recognisable form/quiz beats, the slideshow template for montages, and this tool 'only when neither fits.' It also specifies when to use single vs batch mode, that a render must be attached to its node, and that polling/chaining is unnecessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_render_video_templateRender Video TemplateADestructiveInspect
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. For a photo/clip montage, narrated or silent, use the slideshow template (pass audio_url to sync it 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 | Required | Description | Default |
|---|---|---|---|
| wait | No | true (default) blocks until the render is ready and returns its URL; false returns a job ID for clipform_check_render. | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| form_id | No | The form UUID (required when node_id is set). | |
| node_id | No | 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. Requires form_id. | |
| captions | No | Word-level captions from clipform_generate_tts - carried onto the attached media asset. Only used when node_id is set. | |
| controls | Yes | Template-specific controls (see clipform_list_video_templates for the exposed control surface). | |
| template | Yes | Video template name (see clipform_list_video_templates). | |
| caption_ref | No | caption_ref from clipform_generate_tts - an opaque handle that attaches that TTS run's word-level captions to the media asset, resolved server-side. Preferred over captions. Only used when node_id is set. Defaults to controls.audio_url when that is a clipform_generate_tts track (slideshow narration), so narrated montages keep their captions. | |
| outputFormat | No | Output format (default: mp4) | mp4 |
Output Schema
| Name | Required | Description |
|---|---|---|
| job_id | No | Present when status is 'rendering' - pass to clipform_check_render |
| status | Yes | |
| attached | No | True when node_id was provided and the render was attached to the node automatically (present once the attach outcome is known). |
| template | No | |
| public_url | No | 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 | No | True when the form was live and was republished to include this media. |
| attach_error | No | Present when node_id was provided but auto-attach failed - the render itself still succeeded. |
| output_format | No | |
| media_asset_id | No | The workspace media asset created from this render, when attached. |
| duration_seconds | No | Final video length in seconds - the narration's real length when audio_url drove it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=false, destructiveHint=true, idempotentHint=false), and the description adds non-obvious behavior: renders run through the Scene composition, wait=true returns a URL while false returns a job ID, and attaching to a node republishes a live form. It doesn't explain why destructiveHint is set or what a render overwrites, leaving one behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then a clearly labeled 'Choosing a render tool' section. Efficient overall, though the workflow guidance is long and the attach/poll warning is stated in a slightly repetitive way.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, nested captions, and an output schema present, the description supplies exactly the missing context: template discovery, control surface, alternative routes, and the attachment/polling workflow. Nothing an agent needs to invoke it correctly appears absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema carries the baseline. The description genuinely adds meaning beyond it: node_id auto-attaches and republishes, caption_ref is preferred over captions and defaults to controls.audio_url for slideshow narration, and context should describe the user's goal rather than the tool call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Render a curated video template ... to MP4 or PNG') and immediately scopes it against hand-assembling Scene layers. It names the sibling tool it is not (clipform_render_composition) and the one to call first (clipform_list_video_templates), so the agent can discriminate without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing rules: 'reach for a video template first' for form/quiz beats, slideshow template for montage, clipform_render_composition only when neither fits. It also states the prerequisite (call list_video_templates first) and the postcondition (attaching via node_id instead of polling or chaining upload+attach).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_search_mediaSearch MediaARead-onlyIdempotentInspect
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_render_video_template (slideshow) 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 | Required | Description | Default |
|---|---|---|---|
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| queries | Yes | One or more search queries to run |
Output Schema
| Name | Required | Description |
|---|---|---|
| searches | Yes | Results grouped by query (items empty if a query found nothing or failed) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/idempotent/non-destructive, so the safety profile is covered. The description adds licensing context ('all results are pre-cleared for commercial use') and the presence of alt-text descriptions for picking visually distinct images, which annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action, then the batching rule, then downstream routing, then licensing. Mostly tight, though the trailing example partially duplicates schema information and lengthens the definition without adding much new meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation isn't required, yet the description still notes the alt-text field usefully. Combined with annotations and full schema coverage, an agent has enough to call this correctly; the only minor gap is no explicit pagination/limit guidance beyond per-query count.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so query, kind, count, and orientation are all documented in the schema. The description adds an example showing the multi-query shape and a non-default count, but no semantics beyond what the schema already states. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (images or stock video clips), immediately distinguishing it from sibling search tools like clipform_search_music and clipform_search_news. The scope and output type are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent downstream: results feed clipform_render_video_template for slideshows, or go through clipform_upload_media_asset then clipform_attach_node_media for stills. It also states the batching rule (up to 10 queries in one call instead of separate calls), which is a genuine when-to-use instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_search_musicSearch MusicARead-onlyIdempotentInspect
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 for the slideshow video template via clipform_render_video_template. Returns download URLs, duration, artist, and license info.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Genre/mood tags to filter by. Multiple tags are ANDed together (e.g. ['ambient', 'chill'] matches tracks tagged both). | |
| count | No | Max results (default: 5) | |
| query | Yes | What to search for (e.g. 'upbeat quiz background', 'calm ambient', 'playful pizzicato') | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| maxDuration | No | Maximum duration in seconds | |
| minDuration | No | Minimum duration in seconds | |
| instrumentalOnly | No | Only instrumental tracks (default: true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| tracks | Yes | Matching tracks (empty if none); pass a url as the audio for the slideshow template |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, open-world, so the safety profile is covered. The description adds genuinely new behavioral context beyond that: results are royalty-free and include license info, and the returned URL is meant to be fed into clipform_render_video_template. It doesn't cover rate limits or result ordering, but the added licensing/workflow context is meaningful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, purpose front-loaded, and the workflow instruction is placed before the return-value note. The 'keeps energy up between questions' clause is mildly chatty but does reinforce the usage guidance rather than being pure filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Purpose, usage context, and the downstream render_video_template integration are all covered, and annotations carry the safety profile. The only redundancy is restating return fields (download URLs, duration, artist, license) that the output schema already provides; otherwise an agent has what it needs to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all seven parameters including tag ANDing, count default, duration bounds, and instrumentalOnly default. The description adds no parameter-level detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Search for royalty-free music tracks and ambient sounds.' That resource is specific enough to separate it from siblings like clipform_search_news and clipform_search_media on the surface, but the description never explicitly names an alternative, so the differentiation is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use context ('Quiz forms especially benefit...', 'Also consider it for multi-step surveys and longer forms') and a downstream workflow hook (pass the URL to clipform_render_video_template). There is no explicit when-not-to-use or named alternative, which keeps it short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_search_newsSearch Recent NewsARead-onlyIdempotentInspect
Search recent news articles from NewsAPI and The Guardian and return them as structured results.
Coverage: recent events, people, and topics (post-May-2025). Does NOT cover timeless topics (history, geography, science).
Returns: article title, source, author, date, URL, description, and image URL per result.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Max results per provider (default 5) | |
| query | Yes | News search query (e.g. 'Iran war 2026', 'Australian Open final', 'UK election') | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| articles | Yes | Matching articles (empty if none) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld, so the safety profile is covered. The description adds behavior that annotations do not: which providers are queried, the temporal coverage window (post-May-2025), and the per-result field list. Return format is partly redundant with the output schema, but the sourcing and coverage-window facts are genuine additions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, labeled blocks that are front-loaded with purpose, then coverage, then returns. Every sentence carries information; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema covering return values and annotations covering the safety/idempotency profile, the description only needs to cover sourcing and scope limits — and it does exactly that. There is no meaningful gap for an agent deciding whether and how to call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters including the example queries and the unusual 'context' semantics. The description adds no parameter-level detail beyond that, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search recent news articles') and names the two upstream providers (NewsAPI, The Guardian), which immediately distinguishes it from clipform_search_media and clipform_search_music. The scope note ('recent events... post-May-2025') further pins down what the tool returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit negative boundary: 'Does NOT cover timeless topics (history, geography, science).' That is real when-not guidance an agent can act on. It stops short of naming an alternative tool for those cases, so it is clear context without a routed fallback.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_set_logicSet Node LogicADestructiveIdempotentInspect
Set the next node for one or more nodes, wiring a linear route (A to B to C). Pass multiple nodes in one call instead of separate tool calls. Each node routes to exactly one target node. Branching by which option a respondent picks is not configured here; it is set up in the form's Build tab in the dashboard (the builder URL returned by clipform_get_form / clipform_create_form).
A call replaces that node's routing entirely - it does not merge with any prior target.
Example: nodes: [ { node_id: "q1-id", rules: [{ target_node_id: "q2-id" }] }, { node_id: "q2-id", rules: [{ target_node_id: "q3-id" }] } ]
| Name | Required | Description | Default |
|---|---|---|---|
| nodes | Yes | One or more nodes to set logic on | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| form_id | Yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | One result per node, in order |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is partly covered. The description adds genuinely useful beyond-schema context: 'A call replaces that node's routing entirely - it does not merge with any prior target,' which concretely explains the destructive, non-merging replacement semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action in the first sentence, followed by batching rationale, exclusion, and an example. Well structured, though it runs a bit long; every element still carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and the description fully covers the routing semantics, the replacement behavior, the batching capability, and the branching limitation. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents node_id, target_node_id, rules, and form_id. The description earns extra credit by supplying a concrete two-node JSON example that clarifies the nested nodes/rules structure and the one-rule constraint (maxItems 1) in practice.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Set the next node for one or more nodes, wiring a linear route'), and explicitly distinguishes itself from branching logic, which it says is configured elsewhere. An agent can tell this apart from node-creation or update siblings without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives positive guidance (batch multiple nodes into one call rather than separate tool calls) and a clear exclusion with a redirect (branching by respondent choice is not configured here; it lives in the form's Build tab). Both when-to-use and when-not are explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_update_formUpdate ClipformADestructiveIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| tags | No | Replace all tags on this form. Pass the full desired set (e.g. ['quiz', 'trivia', 'slug:elephants']). Omit to leave tags unchanged. | |
| title | No | New form title | |
| author | No | AI-PROTECTED: Only set when the user explicitly provides an author name. Set null to clear. | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| form_id | Yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) | |
| is_live | No | 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 expected final step of a build, never skip it after attaching media. Setting false takes the form offline (keeps the last published snapshot) - AI-PROTECTED: only take a form offline when the user explicitly asks. | |
| logo_url | No | AI-PROTECTED: Only set when the user explicitly provides a logo URL. Set null to clear. | |
| brand_name | No | AI-PROTECTED: Custom brand name shown in footer. Only set when user explicitly provides. | |
| description | No | SEO description (meta description, og:description). Set null to clear. | |
| font_family | No | AI-PROTECTED: Only set when the user explicitly requests a specific font. | |
| total_steps | No | Override the total step count shown in the step counter. Set null to auto-calculate. | |
| primary_color | No | Primary/brand color as 6-digit hex (e.g. '#FF5500'). Used for buttons and accents. | |
| show_branding | No | Show Clipform branding. Set false to remove (Pro plan). | |
| background_color | No | Background color as 6-digit hex (e.g. '#1A1A2E'). | |
| show_step_counter | No | Show step counter (e.g. '1/5'). Recommended for quizzes. | |
| cover_media_asset_id | No | Cover image: the picture shown in emails, link previews and on the embed button, cropped to the form's 9:16 frame. A media_asset_id of a ready still image in this form's workspace. Set null to clear and fall back to the first step's media. Goes live on the next publish (is_live: true), which can be in the same call. | |
| disable_back_navigation | No | Prevent respondents from going back. Recommended for quizzes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| form_id | Yes | Form UUID |
| updated_fields | Yes | Names of the fields that were changed by this call |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the description's job is narrower; it adds two genuinely new behavioral facts: this is a partial update where omitted fields are unchanged, and several parameters are AI-PROTECTED with constraints living in their parameter descriptions. It stops short of explaining what destruction is possible (e.g. taking a form offline by is_live:false), which remains only in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the verb+resource and the partial-update contract immediately after. Little waste, though the AI-PROTECTED sentence is a pointer rather than content and could have been folded into the update rule.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 17 parameters but 100% schema coverage, an output schema, and full annotations, the description carries a light burden and mostly meets it. It is thin on one thing an agent must decide unaided: when to use this versus clipform_update_node or clipform_create_form.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the parameter docs are unusually rich (is_live publish semantics, tags replacement, AI-PROTECTED flags), so baseline 3 applies. The description only lists a subset of the 16 optional fields (title, publish status, settings, tags) and adds no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource plus the surface being edited ("title, publish status, settings, or tags"), which is clearly distinct from clipform_update_node's node-level edits. It does not explicitly name a sibling or scope boundary, so an agent still has to infer that this touches form-level metadata only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence implies usage (partial/patch updates are safe because omitted fields are untouched), but there is no explicit when-to-use, when-not-to-use, or routing to alternatives such as clipform_update_node or clipform_create_form. Guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_update_nodeUpdate NodeADestructiveIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| form_id | Yes | The form UUID (returned by clipform_create_form, not the short share_id from the URL) | |
| updates | Yes | One or more node updates to apply |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | One result per requested update, in order |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true and idempotentHint=true, so the mutation risk is known. The description adds genuinely useful context — the position-change exclusion and the derivation of type/config schemas from @vid-master/config — but says nothing about the destructive consequences (e.g. that removing an option also removes its routes) or merge-versus-replace behavior, which live only in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the action, then batching, then prerequisites, then scope exclusion — a sensible ordering with no filler. The trailing sentence about @vid-master/config is an implementation detail of marginal value to an agent, but it is only one clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present the description needn't explain return values, and annotations plus a fully-described schema cover safety and parameter shape. What remains is covered — batching limits, ID sourcing, and position invariance — leaving only unaddressed failure modes such as what happens with a stale or unknown node_id.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so form_id, updates, context and every nested field are already documented in the schema, setting the baseline at 3. The description only adds the provenance of node IDs and a pointer to clipform_get_guide, both of which the schema's own config description already mentions, so it adds little semantic value beyond structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb and resource ('Update one or more existing nodes') and enumerates the mutable facets: text, type, config, options. The clause 'Does not change node positions in the flow' draws a boundary that separates it from layout-oriented siblings, so an agent can identify the tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Pass multiple updates in one call instead of separate tool calls' gives a clear trigger for using this tool over repeated single calls, and it states the prerequisite that node IDs must come from clipform_create_form, clipform_add_node, or clipform_get_form. It stops short of naming a specific alternative (e.g. add_node for new nodes or update_form for form-level edits), so the exclusion side is only partial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_upload_media_assetUpload Media AssetAInspect
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. The API picks where each asset is stored based on its size and type. Word-level captions from clipform_generate_tts enable per-word highlighting in the viewer once attached - pass the caption_ref it returned instead of hand-copying the captions array.
PDFs (media_type document) are for consent agreements: they return a document descriptor, not a media_asset_id.
Provide media via items (explicit type + URL), files (files attached by the host client), or both. At least one is required.
| Name | Required | Description | Default |
|---|---|---|---|
| files | No | Files attached by the host client. Each becomes a video or still library asset (or a consent-agreement document for application/pdf) based on its declared mime_type. | |
| items | No | One or more media items to create as workspace library assets | |
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. | |
| form_id | No | The form this is for (from clipform_create_form) - a routing hint only, to pick the right workspace. The result still lands in the workspace library, not on a node. Required on an anonymous session, or this lands in a different workspace and clipform_attach_node_media will not find it. | |
| workspace_id | No | Workspace to act in (id from clipform_whoami workspaces). Omit to use the connection's default workspace. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | One result per item, in order |
| workspace_name | No | Name of the workspace the media library entries were created in |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses sequencing (sequential uploads), automatic storage-location selection by size/type, URL auto-fetch behavior, and a notable return-shape exception (PDFs return a document descriptor instead of a media_asset_id). This is substantial operational context the structured fields do not carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action and is organized into short, scannable paragraphs, each carrying distinct information. It runs somewhat long and re-states the caption guidance in both the body and schema, but there is little pure filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter, non-idempotent upload tool with an output schema present, the description covers everything an agent needs: entry point in the chain, the follow-up tool, input-source options, and the exception return path. Return-value details are appropriately delegated to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real cross-parameter guidance: media may come from items, files, or both (at least one required is not obvious since both are optional in the schema), and caption_ref should be preferred over manually copying the captions array.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Put one or more media files into your workspace media library') with scope limits (max 10, uploaded sequentially). It explicitly distinguishes itself from the sibling clipform_attach_node_media by naming it as the required follow-up step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit workflow placement ('step one of attaching media to a node'), names the alternative follow-up tool, explains the mutually-alternative input paths (items vs files vs both), and spells out the PDF/consent-agreement case and the caption_ref-vs-captions preference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clipform_whoamiWho Am IARead-onlyIdempotentInspect
Show the current identity: auth mode (api key, oauth, session, or anonymous), active workspace, and plan limits. Needs a signed-in Clipform account (an anonymous session is asked to sign in).
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | Describe the user's underlying goal in one sentence - not the tool you're calling. |
Output Schema
| Name | Required | Description |
|---|---|---|
| plan | Yes | Plan limits for the active workspace |
| links | No | Workspace-level dashboard links - only present for a non-anonymous caller. |
| notice | No | Anonymous sessions only: the account is a temporary preview until claimed. |
| auth_mode | Yes | How this session is authenticated |
| workspace | Yes | Active workspace, or null when anonymous |
| workspaces | No | Workspaces the caller can target with workspace_id - present for session (dashboard) auth and the OAuth connector |
| is_authenticated | Yes | True for api_key, oauth, or session auth; false for anonymous |
| default_workspace_id | No | OAuth connector only: the workspace used when a tool call omits workspace_id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds non-obvious behavior beyond that: the call fails/clarifies for anonymous sessions by asking them to sign in, which is real auth-flow context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste: the first front-loads what is returned, the second states the auth prerequisite. Nothing needs to be re-read or inferred.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only identity tool with an output schema present, return-value documentation is unnecessary, and the description still goes further by naming the returned fields. The auth prerequisite closes the only remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single 'context' parameter with 100% schema description coverage, so the schema already explains its meaning. The description adds nothing about how to phrase the context string, which is the correct baseline 3 when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('show') and resource ('current identity'), then enumerates the exact payload: auth mode (with its four possible values), active workspace, and plan limits. No sibling tool in the list overlaps with an identity/whoami query, so the agent can route to it unambiguously.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys the use context (checking auth mode, workspace, and plan limits) and states the prerequisite that a signed-in account is required, with anonymous sessions being redirected to sign in. It stops short of explicit when-to-use/when-not phrasing or naming alternatives, but there is no competing sibling to disambiguate against.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_more_toolsARead-onlyIdempotentInspect
Check for additional tools whenever your task might benefit from specialized capabilities - even if existing tools could work as a fallback.
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | A description of your goal and what kind of tool would help accomplish it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no additional behavioral context such as what 'check' entails, whether it makes a network call, or what side effects (if any) occur beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It quickly communicates the action and the conditions for use, making it efficient and easy to parse, though it could be slightly more structured with a separate usage note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives clear usage guidance but does not explain what the tool returns or what happens after 'checking' for tools. With no output schema present, the description carries the burden of explaining the result, which it fails to do. For a simple one-parameter tool, this is a notable gap, though not severe.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the single parameter 'context' is already documented with a clear description in the schema. The tool description adds no additional semantic meaning beyond what the schema provides, which aligns with the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: checking for additional tools when a task could benefit from specialized capabilities. It distinguishes itself from the sibling clipform_* tools by being a meta-tool for tool discovery rather than a domain-specific operation, though it does not explicitly name this distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: use this tool whenever specialized capabilities might help, even if existing tools could work as a fallback. This gives the agent a clear decision rule, though it does not mention when not to use it or list alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
clipform_add_node1 field changed- changed
Input schema / properties / node / properties / options / descriptionPrevious value: -"Answer options. choice: required, min 1, max 12, max 6 when option_display is \"letters\", content max 36 chars button: required, min 1, max 1, content max 28 chars"New value: +"Answer options. choice: required, min 1, max 12, max 6 when option_display is \"letters\", content max 80 chars button: required, min 1, max 1, content max 28 chars"
- Changed
clipform_create_form1 field changed- changed
Input schema / properties / nodes / items / properties / options / descriptionPrevious value: -"Answer options. choice: required, min 1, max 12, max 6 when option_display is \"letters\", content max 36 chars button: required, min 1, max 1, content max 28 chars"New value: +"Answer options. choice: required, min 1, max 12, max 6 when option_display is \"letters\", content max 80 chars button: required, min 1, max 1, content max 28 chars"
2 tool updates
- Changed
clipform_add_node1 field changed- changed
Input schema / properties / node / properties / options / descriptionPrevious value: -"Answer options. choice: required, min 1, max 6, content max 36 chars button: required, min 1, max 1, content max 28 chars"New value: +"Answer options. choice: required, min 1, max 12, max 6 when option_display is \"letters\", content max 36 chars button: required, min 1, max 1, content max 28 chars"
- Changed
clipform_create_form1 field changed- changed
Input schema / properties / nodes / items / properties / options / descriptionPrevious value: -"Answer options. choice: required, min 1, max 6, content max 36 chars button: required, min 1, max 1, content max 28 chars"New value: +"Answer options. choice: required, min 1, max 12, max 6 when option_display is \"letters\", content max 36 chars button: required, min 1, max 1, content max 28 chars"
1 tool update
- Changed
clipform_get_results2 fields changed- changed
Output schema / properties / nodes / descriptionPrevious value: -"Nodes in form order. Contact/file/draw/camera/payment nodes carry only total_responses/total_views - no per-response detail."New value: +"Nodes in form order. The booking, contact details, file upload, drawing, camera, and payment nodes carry only total_responses/total_views - no per-response detail." - changed
Output schema / properties / nodes / items / properties / options / descriptionPrevious value: -"Answer breakdown - choice and action-category (booking/file_download/shopping) nodes only"New value: +"Answer breakdown - choice and action-category (file_download/shopping) nodes only"
1 tool update
- Changed
clipform_update_node2 fields changed- changed
Input schema / properties / updates / items / properties / options / descriptionPrevious value: -"Replace all options (for choice nodes). Omit to keep existing options."New value: +"The full option list (for choice nodes). Include each option's id from clipform_get_form to keep that option and its routes, answer key and results. Options without an id are added as new. Options left out are removed together with their routes. Omit to keep existing options." - added
Input schema / properties / updates / items / properties / options / items / properties / idAdded value: +{ + "description": "The option's id from clipform_get_form. Include it to keep this option with its routes, answer key and results; omit it to add a new option.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +}
1 tool update
- Changed
clipform_get_results1 field changed- added
Output schema / properties / nodes / items / properties / selection_modeAdded value: +{ + "description": "Choice questions only. `multiple` = people could pick several options, so option counts add up past total_responses and the option percentages can sum past 100.", + "enum": [ + "single", + "multiple" + ], + "type": "string" +}
1 tool update
- Changed
clipform_create_form4 fields changed- changed
Output schema / properties / claim_url / descriptionPrevious value: -"Anonymous builds only. One-time link to sign up, keep this form and publish it."New value: +"Anonymous builds only. One-time link to sign up, keep this form and switch on its locked steps." - changed
Output schema / properties / dashboard_url / descriptionPrevious value: -"Builder URL (sign in to edit). For an anonymous build this is a one-time claim link, not an editor."New value: +"Builder URL (sign in to edit). For an anonymous build this is a one-time sign-up link, not an editor." - changed
Output schema / properties / is_preview / descriptionPrevious value: -"True when this is an anonymous preview build (answers are not saved), false otherwise."New value: +"True when viewer_url is a private preview (answers are not saved), false when it is the live URL." - changed
Output schema / properties / viewer_url / descriptionPrevious value: -"Form URL for respondents - the live public URL. For an anonymous build this is a private preview link: answers are not saved, do not share it with respondents."New value: +"Form URL for respondents - the live public URL. For a guest build held back from going live this is a private preview link instead: answers are not saved, do not share it with respondents."
3 tool updates
- Changed
clipform_add_node1 field changed- changed
Input schema / properties / node / properties / type / enumPrevious value: -[ - "choice", - "open", - "details", - "camera", - "payment", - "button", - "redirect", - "file_download", - "end_screen" -]New value: +[ + "choice", + "open", + "details", + "draw", + "camera", + "payment", + "button", + "redirect", + "file_download", + "end_screen" +]
- Changed
clipform_create_form1 field changed- changed
Input schema / properties / nodes / items / properties / type / enumPrevious value: -[ - "choice", - "open", - "details", - "camera", - "payment", - "button", - "redirect", - "file_download", - "end_screen" -]New value: +[ + "choice", + "open", + "details", + "draw", + "camera", + "payment", + "button", + "redirect", + "file_download", + "end_screen" +]
- Changed
clipform_update_node1 field changed- changed
Input schema / properties / updates / items / properties / type / enumPrevious value: -[ - "choice", - "open", - "details", - "camera", - "payment", - "button", - "redirect", - "file_download", - "end_screen" -]New value: +[ + "choice", + "open", + "details", + "draw", + "camera", + "payment", + "button", + "redirect", + "file_download", + "end_screen" +]
3 tool updates
- Changed
clipform_add_node1 field changed- changed
Input schema / properties / node / properties / type / enumPrevious value: -[ - "choice", - "open", - "details", - "payment", - "button", - "redirect", - "file_download", - "end_screen" -]New value: +[ + "choice", + "open", + "details", + "camera", + "payment", + "button", + "redirect", + "file_download", + "end_screen" +]
- Changed
clipform_create_form1 field changed- changed
Input schema / properties / nodes / items / properties / type / enumPrevious value: -[ - "choice", - "open", - "details", - "payment", - "button", - "redirect", - "file_download", - "end_screen" -]New value: +[ + "choice", + "open", + "details", + "camera", + "payment", + "button", + "redirect", + "file_download", + "end_screen" +]
- Changed
clipform_update_node1 field changed- changed
Input schema / properties / updates / items / properties / type / enumPrevious value: -[ - "choice", - "open", - "details", - "payment", - "button", - "redirect", - "file_download", - "end_screen" -]New value: +[ + "choice", + "open", + "details", + "camera", + "payment", + "button", + "redirect", + "file_download", + "end_screen" +]
1 tool update
- Changed
clipform_update_form1 field changed- added
Input schema / properties / cover_media_asset_idAdded value: +{ + "anyOf": [ + { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Cover image: the picture shown in emails, link previews and on the embed button, cropped to the form's 9:16 frame. A media_asset_id of a ready still image in this form's workspace. Set null to clear and fall back to the first step's media. Goes live on the next publish (is_live: true), which can be in the same call." +}
Related MCP Connectors
Create beautiful forms that do more. Take payments, get documents signed, automate the rest.
Beautiful forms, quizzes and lead capture. Unlimited forms and responses on Free, no fair use cap.
Forms and surveys on your own pages, from quote requests to NPS. Pay per action.
AI-powered hiring for recruiters & candidates - video interviews, transcripts, scores, profiles.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceGenerate AI UGC video ads from any product URL in 5 minutes. Realistic AI avatars, natural voiceover, proven ad templates. No actors, no editing, no experience required.92 npm1MIT
- AlicenseAqualityAmaintenanceMake UGC-style video ads without filming: tell your AI assistant what to say and get a vertical clip of a realistic actor saying it, ready for TikTok, Reels or Shorts. Pick or describe an actor, choose a voice from samples, and see the price before rendering. It also makes faceless videos from a script or a short brief: narration over an opening animated clip and image scenes.481MIT
- AlicenseNot gradedqualityBmaintenanceEnables turning a product URL into a narrated, branded demo video in your own voice, with automated planning, recording, and editing for multiple aspect ratios.1Apache 2.0

formbase MCP serverofficial
AlicenseNot gradedqualityBmaintenanceEnables AI agents to collect and verify customer information by creating prefilled, branded form requests for individual recipients, reading their submissions, and building, publishing, translating, and sharing forms through a hosted MCP connection.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.