Skip to main content
Glama

Create Clipform

clipform_create_form

Create a new Clipform (interactive video-style form). Returns a viewer URL and form ID (an anonymous build's link is a private preview where answers are not saved). 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: forms stay drafts with a private preview link. 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: lead-gen, feedback, quiz, 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. Defaults: {"fields":[{"id":"first_name","type":"first_name","label":"First Name","enabled":true,"required":true},{"id":"email","type":"email","label":"Email","enabled":true,"required":true}],"consent_items":[]}

  • 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!" } ] }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagsNoTags for indexing (e.g. ['quiz', 'trivia', 'arsenal']). Include format, genre, and topics.
nodesYesOrdered list of nodes/steps for the form
titleYesForm title
contextYesDescribe the user's underlying goal in one sentence - not the tool you're calling.
font_familyNoAI-PROTECTED: Only set when the user explicitly requests a specific font.
workspace_idNoWorkspace to act in (id from clipform_whoami workspaces). Omit to use the connection's default workspace.
primary_colorNoPrimary/brand color as 6-digit hex (e.g. '#FF5500'). Used for buttons and accents.
background_colorNoBackground color as 6-digit hex (e.g. '#1A1A2E').
show_step_counterNoShow step counter (e.g. '1/5'). Set true for quizzes.
disable_back_navigationNoPrevent going back. Set true for quizzes.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
planNoPlan and auth context for this session
nodesYesCreated nodes in order - IDs for attach_node_media / update_node
form_idYesForm UUID - pass to follow-up tools
claim_urlNoAnonymous builds only. One-time link to sign up, keep this form and publish it.
is_previewNoTrue when this is an anonymous preview build (answers are not saved), false otherwise.
viewer_urlYesForm 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.
preview_urlNoAnonymous builds only. Private preview of the form. Answers are not saved, so do not share it with respondents.
dashboard_urlNoBuilder URL (sign in to edit). For an anonymous build this is a one-time claim link, not an editor.
workspace_nameNoName of the workspace the form was created in

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedOutput schema / properties / claim_url
      Added value: +{
      +  "description": "Anonymous builds only. One-time link to sign up, keep this form and publish it.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / dashboard_url / description
      Previous value: -"Builder URL (sign in to edit)"New value: +"Builder URL (sign in to edit). For an anonymous build this is a one-time claim link, not an editor."
    • addedOutput schema / properties / is_preview
      Added value: +{
      +  "description": "True when this is an anonymous preview build (answers are not saved), false otherwise.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / preview_url
      Added value: +{
      +  "description": "Anonymous builds only. Private preview of the form. Answers are not saved, so do not share it with respondents.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / viewer_url / description
      Previous value: -"Form URL for respondents - a live public URL once authenticated/published, or a scoped preview-only link for an anonymous session"New 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."
  2. Changed4 schema fields changed
    • removedInput schema / properties / nodes / items / additionalProperties
      Removed value: -false
    • addedInput schema / properties / nodes / items / properties / config / propertyNames
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / properties / nodes / items / properties / options / items / additionalProperties
      Removed value: -false
    • addedInput schema / properties / workspace_id / pattern
      Added value: +"^([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)$"
  3. Changed2 schema fields changed
    • addedInput schema / properties / workspace_id
      Added value: +{
      +  "description": "Workspace to act in (id from clipform_whoami workspaces). Omit to use the connection's default workspace.",
      +  "format": "uuid",
      +  "type": "string"
      +}
    • addedOutput schema / properties / workspace_name
      Added value: +{
      +  "description": "Name of the workspace the form was created in",
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • changedInput schema / properties / nodes / items / properties / type / enum
      Previous value: -[
      -  "choice",
      -  "open",
      -  "details",
      -  "button",
      -  "redirect",
      -  "file_download",
      -  "end_screen"
      -]New value: +[
      +  "choice",
      +  "open",
      +  "details",
      +  "payment",
      +  "button",
      +  "redirect",
      +  "file_download",
      +  "end_screen"
      +]
  5. Changed1 schema field changed
    • changedInput schema / properties / nodes / items / properties / options / items / properties / score / description
      Previous value: -"Score value for this option (for scored quizzes). Use 1 for correct, 0 for wrong. Scored options automatically enable correct-answer marking (record_scores) on the node."New value: +"Score value for this option (for scored quizzes). Use 1 for correct, 0 for wrong. Scored options automatically enable correct-answer marking (record_scores) and correct/incorrect answer feedback on the node; set config.choice.show_answer_feedback: false to hide the feedback."
  6. Changed2 schema fields changed
    • addedInput schema / properties / nodes / items / properties / options / items / properties / is_correct
      Added value: +{
      +  "description": "Mark this as the correct answer for a quiz (maps to score 1; other options score 0). Use this OR score, not both.",
      +  "type": "boolean"
      +}
    • removedInput schema / properties / nodes / items / properties / options / items / properties / scores
      Removed value: -{
      -  "additionalProperties": {
      -    "type": "number"
      -  },
      -  "description": "Planned feature - category-based scores keyed by category name. Not yet editable in the dashboard.",
      -  "type": "object"
      -}
  7. Changed3 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / context
      Added value: +{
      +  "description": "Describe the user's underlying goal in one sentence - not the tool you're calling.",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "title",
      -  "nodes"
      -]New value: +[
      +  "title",
      +  "nodes",
      +  "context"
      +]
  8. Changed1 schema field changed
    • changedOutput schema / properties / viewer_url / description
      Previous value: -"Live form URL for respondents"New value: +"Form URL for respondents - a live public URL once authenticated/published, or a scoped preview-only link for an anonymous session"
  9. Changed1 schema field changed
    • changedInput schema / properties / nodes / items / properties / type / enum
      Previous value: -[
      -  "choice",
      -  "open",
      -  "details",
      -  "draw",
      -  "button",
      -  "redirect",
      -  "file_download",
      -  "end_screen"
      -]New value: +[
      +  "choice",
      +  "open",
      +  "details",
      +  "button",
      +  "redirect",
      +  "file_download",
      +  "end_screen"
      +]
  10. Changed2 schema fields changed
    • changedInput schema / properties / nodes / items / properties / type / enum
      Previous value: -[
      -  "choice",
      -  "open",
      -  "contact",
      -  "draw",
      -  "button",
      -  "redirect",
      -  "end_screen"
      -]New value: +[
      +  "choice",
      +  "open",
      +  "details",
      +  "draw",
      +  "button",
      +  "redirect",
      +  "file_download",
      +  "end_screen"
      +]
    • changedOutput schema / properties / nodes / description
      Previous value: -"Created nodes in order - IDs for upload_node_media / update_node"New value: +"Created nodes in order - IDs for attach_node_media / update_node"
  11. First observed

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly=false, destructive=false, openWorld=true, idempotent=false), but the description adds substantial behavior they cannot: authenticated sessions land the form in the user's workspace, anonymous sessions produce drafts with a private preview link where answers are not saved, and some results carry a one-time claim URL that must be relayed. That is exactly the kind of side-effect and auth context an agent needs before writing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded correctly: purpose, then return/claim behavior, then creation guidance, then the node reference, then a worked example. The node-type catalog is long but mostly load-bearing given the opaque config schema; it is organized as scannable bullets rather than prose. Slightly oversized, since it both defers craft guidance to clipform_get_guide and inlines a full config reference.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter, 8-node-type creation tool with an opaque config schema, the description supplies the node shapes, defaults, and an end-to-end example. An output schema exists, so return values need not be explained, yet the viewer URL / form ID / claim URL details are still disclosed. Nothing an agent needs to construct a valid call is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline would be 3, but the `config` property is an opaque object (additionalProperties: {}), meaning the description carries the entire burden for config semantics. It enumerates every node type with its config keys, allowed values, and defaults, which the schema does not provide at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states a specific verb and resource — 'Create a new Clipform (interactive video-style form)' — and the parenthetical disambiguates it from generic form tools. An agent can separate this from siblings like clipform_update_form, clipform_import_form, and clipform_add_node purely from the verb and the node-catalog framing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a conditional branch for the empty-prompt case ('If the user hasn't said what to build yet, offer to build their first form') and points to clipform_get_guide for craft guidance and clipform_whoami for workspace IDs. However, it never explicitly says when to prefer this over clipform_import_form or when to fall back to clipform_add_node on an existing form, so the routing 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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.