
Clipform
Connects Claude or any MCP client to Clipform's form builder API, letting you create and manage video-style forms entirely through conversation. The server exposes 20+ tools covering form CRUD, node manipulation, conditional logic, media uploads, and creative workflows like TTS generation, video rendering, and stock media search. Ships with both OAuth for remote use (forms land in your Clipform workspace) and local stdio mode with API key auth. Anonymous mode works too but caps you at 3 nodes per form. Grab this if you're building interactive forms programmatically or want to scaffold customer surveys, feedback flows, or lead capture without touching a UI.
- tools
- 33
- auth
- Secret needed
- transport
- STDIO, HTTP
- env vars
- 2
- last updated
- Nov 12, 2026
Install
From registry metadata$ npx add-mcp https://mcp.clipform.io --name clipformRun in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add --transport http clipform https://mcp.clipform.ioRun in your terminal. Add --scope user to make it available in every project.
Tools
Verified live · 33 toolsVerified live against the running server on Nov 6, 2026.
clipform_create_formCreate 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 conn...10 params
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 conn...
background_colorstringcontext*stringdisable_back_navigationbooleanfont_familystringnodes*arrayprimary_colorstringshow_step_counterbooleantagsarraytitle*stringworkspace_idstringclipform_import_formCopies 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.type...3 params
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.type...
context*stringurl*stringworkspace_idstringclipform_list_formsList 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 acc...9 params
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 acc...
context*stringcursorstringlimitintegerorderstringasc · descpublishedstringtrue · falsesearchstringsortstringcreated_at · updated_attagstringworkspace_idstringclipform_whoamiShow 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).1 params
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).
context*stringclipform_get_formRetrieve 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).2 params
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).
context*stringform_id*stringclipform_update_formUpdate 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.17 params
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.
authorvaluebackground_colorstringbrand_namevaluecontext*stringcover_media_asset_idvaluedescriptionvaluedisable_back_navigationbooleanfont_familystringform_id*stringis_livebooleanlogo_urlvalueprimary_colorstringshow_brandingbooleanshow_step_counterbooleantagsarraytitlestringtotal_stepsvalueclipform_delete_formMove 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).3 params
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).
confirmbooleancontext*stringform_id*stringclipform_get_resultsView 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...2 params
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...
context*stringform_id*stringclipform_get_responsesList 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 paymen...7 params
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 paymen...
context*stringform_id*stringlimitintegerquerystringsincestringsortstringnewest · oldestuntilstringclipform_add_nodeAdd 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) -...4 params
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) -...
after_node_idstringcontext*stringform_id*stringnode*objectclipform_update_nodeUpdate 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 t...3 params
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 t...
context*stringform_id*stringupdates*arrayclipform_delete_nodeDelete 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 bef...4 params
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 bef...
confirmbooleancontext*stringform_id*stringnode_id*stringclipform_upload_media_assetPut 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...5 params
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...
context*stringfilesarrayform_idstringitemsarrayworkspace_idstringclipform_complete_media_uploadConfirm 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 succee...3 params
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 succee...
context*stringform_idstringmedia_asset_id*stringclipform_attach_node_mediaAttach 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 reusa...3 params
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 reusa...
context*stringform_id*stringitems*arrayclipform_get_node_mediaGet the media attached to a node, including processing status. Useful for checking if a video upload has finished processing.3 params
Get the media attached to a node, including processing status. Useful for checking if a video upload has finished processing.
context*stringform_id*stringnode_id*stringclipform_delete_node_mediaRemove 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.4 params
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.
confirmbooleancontext*stringform_id*stringnode_id*stringclipform_set_logicSet 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 f...3 params
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 f...
context*stringform_id*stringnodes*arrayclipform_log_generationInternal 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...4 params
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...
context*stringdetails*objectform_id*stringsummary*stringclipform_search_newsSearch 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, descri...3 params
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, descri...
context*stringcountnumberquery*stringclipform_generate_ttsGenerate 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 improve...4 params
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 improve...
context*stringform_idstringitems*arrayworkspace_idstringclipform_search_mediaSearch 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 clip...2 params
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 clip...
context*stringqueries*arrayclipform_render_compositionRender 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...10 params
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...
caption_refstringcaptionsarraycompositionIdstringcontext*stringform_idstringinputPropsobjectitemsarraynode_idstringoutputFormatstringmp4 · pngdefault: mp4waitbooleanclipform_search_musicSearch 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 vi...7 params
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 vi...
context*stringcountintegerinstrumentalOnlybooleanmaxDurationnumberminDurationnumberquery*stringtagsarrayclipform_list_compositionsBrowse 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_...1 params
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_...
context*stringclipform_list_video_templatesBrowse 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 c...1 params
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 c...
context*stringclipform_render_video_templateRender 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...9 params
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...
caption_refstringcaptionsarraycontext*stringcontrols*objectform_idstringnode_idstringoutputFormatstringmp4 · pngdefault: mp4template*stringwaitbooleanclipform_list_assetsList available creative assets (sound effects, animations, fonts) for video compositions.2 params
List available creative assets (sound effects, animations, fonts) for video compositions.
context*stringtypestringsfx · animation · font · allclipform_check_renderCheck 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 rende...3 params
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 rende...
context*stringjob_idstringjob_idsarrayclipform_fetch_boundaryFetch 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).5 params
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).
context*stringmainlandOnlybooleanmaxPointsnumberquery*stringtypestringcountry · city · state · regiondefault: countryclipform_get_guideRetrieve 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:...3 params
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:...
context*stringtype*stringvariantstringpersonality · comprehension · compositionclipform_get_workflowRetrieve 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, narrat...18 params
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, narrat...
anonymousbooleanaudiencestringcategoriesstringcontext*stringcriteriastringevent_namestringevent_typestringneeds_consentbooleanneeds_contactbooleanoutcomesstringpurposestringquestion_countnumberresponse_formatstringvideo · audio · text · allrolestringtopicstringtype*stringuse_casestringvariantstringpersonality · comprehension · compositionget_more_toolsCheck for additional tools whenever your task might benefit from specialized capabilities - even if existing tools could work as a fallback.1 params
Check for additional tools whenever your task might benefit from specialized capabilities - even if existing tools could work as a fallback.
context*stringSponsors
Configuration
CLIPFORM_API_KEY*secretAPI key that scopes tool calls to your workspace (create one in the dashboard under Settings, API keys). Not needed to list tools, only to call them.
API_URL*default: https://api.clipform.ioClipform API base URL.
Readme
@clipform/mcp-server
MCP server for Clipform - build and manage video-style forms from any MCP client (Claude, ChatGPT, Cursor, Windsurf, etc.).
Install
There are two ways to connect: remote (recommended, uses your Clipform account) and local (anonymous, free-tier limits).
Remote (recommended)
Use this if you have a Clipform account. Forms are created directly in your workspace and your plan tier applies (no 3-node cap on Pro).
Claude (claude.ai): Settings → Connectors → Add custom connector → enter https://mcp.clipform.io
ChatGPT: Settings → Connectors → Advanced → enable Developer Mode → Create connector → enter https://mcp.clipform.io (requires Pro/Team/Enterprise)
Any MCP client with OAuth: Point it at https://mcp.clipform.io - discovery, registration, and auth are handled automatically via OAuth 2.1 + Dynamic Client Registration (RFC 7591).
Local - Claude Code / Claude Desktop / Cursor / etc.
Use this for stdio-based MCP clients. Pass your API key to authenticate with your workspace and plan tier.
Details
- Repository
- github.com/clipform/mcp-server
- Website
- www.clipform.io
- Category
- Media & Entertainment
- Package
@clipform/mcp-server- Transport
- STDIO, HTTP
- Auth
- Required
- Registry
- MCP registry, active
- Resources
- 13
- Prompts
- 10
- Tools verified
- Nov 6, 2026