@clipform/mcp-server 1.44.0 → 1.44.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,11 +1,4 @@
1
1
  <!-- GENERATED from README.template.md by scripts/sync-mcp-server-readme.mjs - do not edit directly. -->
2
- <!--
3
- GENERATED FILE SOURCE TEMPLATE.
4
- README.md is generated from this template by scripts/sync-mcp-server-readme.mjs.
5
- Edit prose HERE, never in README.md. URLs/package come from @vid-master/config;
6
- the tool list is generated from the live server (createServer()._registeredTools),
7
- so adding/removing a tool updates the README automatically - never hand-list tools.
8
- -->
9
2
  # @clipform/mcp-server
10
3
 
11
4
  MCP server for [Clipform](https://clipform.io) - build and manage video-style forms from any MCP client (Claude, ChatGPT, Cursor, Windsurf, etc.).
@@ -3,7 +3,7 @@ import {
3
3
  FORM_TYPE_KEYS,
4
4
  callApi,
5
5
  getSessionContext
6
- } from "./chunk-5GITXD5V.js";
6
+ } from "./chunk-PCCTN3T7.js";
7
7
 
8
8
  // src/lib/guides.ts
9
9
  var guidesPromise = null;
@@ -136,4 +136,4 @@ export {
136
136
  getGuideUri,
137
137
  registerResources
138
138
  };
139
- //# sourceMappingURL=chunk-BRHXMMZH.js.map
139
+ //# sourceMappingURL=chunk-GAAMMQM3.js.map
@@ -6,7 +6,7 @@ import {
6
6
  getWorkflowText,
7
7
  objectType,
8
8
  registerPrompts
9
- } from "./chunk-YAJTUAON.js";
9
+ } from "./chunk-VTRO7ZC3.js";
10
10
  import {
11
11
  GUIDE_TYPES,
12
12
  QUIZ_VARIANTS,
@@ -14,11 +14,10 @@ import {
14
14
  getGuideUri,
15
15
  guideFallbackText,
16
16
  registerResources
17
- } from "./chunk-BRHXMMZH.js";
17
+ } from "./chunk-GAAMMQM3.js";
18
18
  import {
19
19
  BUSINESS,
20
20
  CONTACT_FIELDS,
21
- FEATURES,
22
21
  FORM_TYPE_ALIASES,
23
22
  KEN_BURNS_EFFECTS,
24
23
  KEN_BURNS_FIT_MODES,
@@ -34,7 +33,7 @@ import {
34
33
  errorResult,
35
34
  resolveFormType,
36
35
  textResult
37
- } from "./chunk-5GITXD5V.js";
36
+ } from "./chunk-PCCTN3T7.js";
38
37
  import {
39
38
  __commonJS,
40
39
  __export,
@@ -17431,7 +17430,7 @@ function registerUpdateFormTool(server) {
17431
17430
  inputSchema: {
17432
17431
  form_id: external_exports.string().uuid().describe("The form UUID (returned by clipform_create_form, not the short share_id from the URL)"),
17433
17432
  title: external_exports.string().optional().describe("New form title"),
17434
- is_live: external_exports.boolean().optional().describe("AI-PROTECTED: Only change live state when the user explicitly asks. Do not auto-publish. Setting true publishes a snapshot respondents see; re-sending true on an already-live form republishes the latest edits (edits to a live form are NOT visible until republished). Setting false takes the form offline but keeps the last published snapshot."),
17433
+ is_live: external_exports.boolean().optional().describe("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."),
17435
17434
  show_step_counter: external_exports.boolean().optional().describe("Show step counter (e.g. '1/5'). Recommended for quizzes."),
17436
17435
  disable_back_navigation: external_exports.boolean().optional().describe("Prevent respondents from going back. Recommended for quizzes."),
17437
17436
  total_steps: external_exports.number().nullable().optional().describe("Override the total step count shown in the step counter. Set null to auto-calculate."),
@@ -17897,42 +17896,6 @@ function registerDeleteNodeMediaTool(server) {
17897
17896
  );
17898
17897
  }
17899
17898
 
17900
- // src/tools/attach-node-audio.ts
17901
- function registerAttachNodeAudioTool(server) {
17902
- if (!FEATURES.audio_attachments.enabled) return;
17903
- server.registerTool(
17904
- "clipform_attach_audio",
17905
- {
17906
- title: "Attach Audio to Node",
17907
- description: `Attach an audio file to a form node - takes a URL from clipform_search_music or any public audio file. Use this for quiz answer sound effects, ambient audio on welcome screens, or background music on any node. The audio auto-plays once when a respondent reaches the node (replays if they return). Accepts WAV, MP3, or OGG. The node must already have an image or video attached via clipform_upload_node_media.`,
17908
- inputSchema: {
17909
- form_id: external_exports.string().uuid().describe("The form UUID (returned by clipform_create_form, not the short share_id from the URL)"),
17910
- node_id: external_exports.string().describe("The node ID (must already have media attached)"),
17911
- url: external_exports.string().url().describe("Public URL to the audio file (WAV, MP3, or OGG)")
17912
- },
17913
- annotations: {
17914
- readOnlyHint: false,
17915
- destructiveHint: false,
17916
- idempotentHint: true,
17917
- openWorldHint: true
17918
- }
17919
- },
17920
- async ({ form_id, node_id, url }) => {
17921
- const result = await callApi(
17922
- `/forms/${form_id}/nodes/${node_id}/audio`,
17923
- {
17924
- method: "PUT",
17925
- body: { url }
17926
- }
17927
- );
17928
- if (!result.ok) {
17929
- return errorResult(result.error);
17930
- }
17931
- return textResult(`Audio attached to node ${node_id}.`);
17932
- }
17933
- );
17934
- }
17935
-
17936
17899
  // src/tools/set-node-logic.ts
17937
17900
  var LogicRuleSchema = external_exports.object({
17938
17901
  option_content: external_exports.string().optional().describe(
@@ -18396,7 +18359,7 @@ function registerSearchMusicTool(server) {
18396
18359
  "clipform_search_music",
18397
18360
  {
18398
18361
  title: "Search Music",
18399
- description: `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. Use with clipform_attach_audio to add a track to a form node. Returns download URLs, duration, artist, and license info.`,
18362
+ description: `Search for royalty-free music tracks and ambient sounds. Quiz forms especially benefit from background music - it keeps energy up between questions. Also consider it for multi-step surveys and longer forms. Pass the returned URL as the audio track to clipform_generate_video or clipform_generate_slideshow. Returns download URLs, duration, artist, and license info.`,
18400
18363
  inputSchema: {
18401
18364
  query: external_exports.string().describe("What to search for (e.g. 'upbeat quiz background', 'calm ambient', 'playful pizzicato')"),
18402
18365
  count: external_exports.number().min(1).max(10).default(5).optional().describe("Max results (default: 5)"),
@@ -18983,7 +18946,6 @@ function createServer(options) {
18983
18946
  registerUploadNodeMediaTool(server);
18984
18947
  registerGetNodeMediaTool(server);
18985
18948
  registerDeleteNodeMediaTool(server);
18986
- registerAttachNodeAudioTool(server);
18987
18949
  registerSetNodeLogicTool(server);
18988
18950
  registerLogGenerationTool(server);
18989
18951
  registerSearchNewsTool(server);
@@ -19008,4 +18970,4 @@ export {
19008
18970
  JSONRPCMessageSchema,
19009
18971
  createServer
19010
18972
  };
19011
- //# sourceMappingURL=chunk-YZMZME25.js.map
18973
+ //# sourceMappingURL=chunk-MIH452WS.js.map