{
  "markdown": "<!-- GENERATED from README.template.md by scripts/sync-mcp-server-readme.mjs - do not edit directly. -->\n# @clipform/mcp-server\n\nMCP server for [Clipform](https://clipform.io) - build and manage video-style forms from any MCP client (Claude, ChatGPT, Cursor, Windsurf, etc.).\n\n## Install\n\nThere are two ways to connect: **remote** (recommended, uses your Clipform account) and **local** (anonymous, free-tier limits).\n\n### Remote (recommended)\n\nUse 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).\n\n**Claude (claude.ai):** Settings → Connectors → Add custom connector → enter `https://mcp.clipform.io`\n\n**ChatGPT:** Settings → Connectors → Advanced → enable Developer Mode → Create connector → enter `https://mcp.clipform.io` (requires Pro/Team/Enterprise)\n\n**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).\n\n### Local - Claude Code / Claude Desktop / Cursor / etc.\n\nUse this for stdio-based MCP clients. Pass your API key to authenticate with your workspace and plan tier.\n\n**Claude Code:**\n\n```bash\nclaude mcp add clipform -e CLIPFORM_API_KEY=cf_xxx -- npx -y @clipform/mcp-server\n```\n\n**Claude Desktop / Cursor / Windsurf / OpenClaw** - add to your MCP config:\n\n```json\n{\n  \"mcpServers\": {\n    \"clipform\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@clipform/mcp-server\"],\n      \"env\": {\n        \"CLIPFORM_API_KEY\": \"cf_xxx\",\n        \"API_URL\": \"https://api.clipform.io\"\n      }\n    }\n  }\n}\n```\n\nSelf-service API key generation is coming soon. For now, your API key is provided during onboarding or via your account settings - contact support if you need one.\n\nYou can also pass the key as a CLI flag: `npx -y @clipform/mcp-server --api-key=cf_xxx`\n\n**Anonymous mode** (no API key): Forms go into a shared workspace with the free-tier 3-node limit. You'll get a claim URL to move forms into your account.\n\n### Environment variables\n\n| Variable | Required | Purpose |\n|----------|----------|---------|\n| `CLIPFORM_API_KEY` | For workspace auth | Bearer key - forms land in the key's workspace with its plan limits. Also unlocks the creative tools (search, TTS, video rendering). Omit for anonymous mode. |\n| `API_URL` | Yes | Clipform API base URL (`https://api.clipform.io`, or your local/self-hosted API). |\n\n## Tools\n\nYour MCP client lists these automatically on connect (via `tools/list`). Full reference - arguments, schemas, and examples - is in the [docs](https://clipform.io/docs/api/mcp).\n\n| Tool | Description |\n|------|-------------|\n| `clipform_create_form` | Create a new Clipform (interactive video-style form). |\n| `clipform_import_form` | Convert a public Google Form, Typeform, or Tally form into a new Clipform. |\n| `clipform_list_forms` | List forms in your workspace with optional filtering. |\n| `clipform_whoami` | Show the current identity: auth mode (api key, oauth, session, or anonymous), active workspace, and plan limits. |\n| `clipform_get_form` | Retrieve a form's details including all nodes in sequential order and their routing. |\n| `clipform_update_form` | Update a form's title, publish status, settings, or tags. |\n| `clipform_delete_form` | Move a form and all its nodes to the trash. |\n| `clipform_get_results` | View response counts, choice/action answer breakdowns, and recent open-text answers for a form. |\n| `clipform_get_responses` | List a Clipform form's individual responses (submissions) with time filtering - complements clipform_get_results (aggregates). |\n| `clipform_add_node` | Add a new node to an existing form. |\n| `clipform_update_node` | Update one or more existing nodes' text, type, config, or options. |\n| `clipform_delete_node` | Delete a node from a form. |\n| `clipform_upload_media_asset` | Put one or more media files into your workspace media library (max 10, uploaded sequentially). |\n| `clipform_complete_media_upload` | Confirm a signed-PUT still image upload finished, after PUTting the bytes to the upload_url returned by clipform_upload_media_asset. |\n| `clipform_attach_node_media` | Attach an existing workspace media asset (from clipform_upload_media_asset) to one or more nodes (max 10). |\n| `clipform_get_node_media` | Get the media attached to a node, including processing status. |\n| `clipform_delete_node_media` | Remove media from a node. |\n| `clipform_set_logic` | Set the next node for one or more nodes, wiring a linear route (A to B to C). |\n| `clipform_log_generation` | Internal audit step run by a form-generation workflow. |\n| `clipform_search_news` | Fallback news lookup for clients without native web search. |\n| `clipform_generate_tts` | Generate narration audio from text with word-level captions. |\n| `clipform_generate_video` | Generate a video from images, video clips, or both, synced to an audio track. |\n| `clipform_search_media` | Search images or stock video clips. |\n| `clipform_render_composition` | Render a specialised video composition to MP4 or PNG - custom animated visuals that clipform_generate_video can't provide, such as geography animations or designed motion graphics. |\n| `clipform_search_music` | Search for royalty-free music tracks and ambient sounds. |\n| `clipform_list_compositions` | Browse available video compositions and their expected props schemas. |\n| `clipform_list_video_templates` | Browse available video templates - curated Scene arrangements (bed + overlay + sane defaults) that render through the Scene composition from a small controls object. |\n| `clipform_render_video_template` | 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. |\n| `clipform_list_assets` | List available creative assets (sound effects, animations, fonts) for video compositions. |\n| `clipform_check_render` | Check the status of render jobs started by clipform_generate_video, clipform_render_video_template, or clipform_render_composition. |\n| `clipform_fetch_boundary` | Fetch a GeoJSON boundary polygon for a country, city, or region. |\n| `clipform_get_guide` | Retrieve craft knowledge for building a specific form type. |\n| `clipform_get_workflow` | Retrieve a step-by-step build workflow for creating a specific form type. |\n\n## Example\n\n> Create a Clipform called \"Customer Feedback\" with a choice question asking \"How would you rate our service?\" with options Excellent, Good, Fair, Poor, then an open-ended question asking \"Any additional comments?\", and finish with an end screen saying \"Thanks for your feedback!\"\n\n## How it works\n\n**Remote (OAuth):** Bearer tokens are audience-bound to `https://mcp.clipform.io` (RFC 8707) and scoped to `mcp` only. Forms land directly in the workspace you approved during consent.\n\n**Local with API key:** The `CLIPFORM_API_KEY` is sent as a standard `Authorization: Bearer` header. Forms are created directly in the key's workspace with your plan tier limits.\n\n**Local anonymous (no key):** Forms go into a shared unclaimed workspace. No auth is needed to edit them - the form UUID is the only credential. You'll get a claim URL to transfer ownership. Free-tier 3-node limit applies.\n\nForms are created with a start node and end screen automatically - you just add the nodes in between.\n\n## Links\n\n- [Clipform](https://clipform.io) - Create interactive video forms\n- [Documentation](https://clipform.io/docs/api/mcp) - Full guide with node types and more\n\n> Craft guides (`clipform://guides/*`, `clipform_get_guide`) are fetched from the Clipform API at runtime, so the server needs a reachable `API_URL` and valid `CLIPFORM_API_KEY` to serve them.\n",
  "bytes": 7754,
  "sha": "30ad5c4a7ffce55706a7e31b849cc1a0af473f479d4b47d78d5f1e88a0995bd4",
  "repo_slug": "clipform/mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_clipform_mcp_server_4fd1082f/readme"
}