@clipform/mcp-server 1.45.0 → 1.46.1
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 +2 -2
- package/dist/{chunk-2DQUET75.js → chunk-F2JA2N5N.js} +181 -32
- package/dist/chunk-F2JA2N5N.js.map +1 -0
- package/dist/{chunk-AGX5BFWD.js → chunk-KP64A2KW.js} +42 -34
- package/dist/{chunk-AGX5BFWD.js.map → chunk-KP64A2KW.js.map} +1 -1
- package/dist/{chunk-EIQ2JGZE.js → chunk-L3YIUY5R.js} +2 -2
- package/dist/{chunk-VCUBY3Y4.js → chunk-MOKUP5DR.js} +2 -2
- package/dist/index.js +4 -4
- package/dist/prompts.js +2 -2
- package/dist/resources.js +2 -2
- package/dist/server.js +4 -4
- package/package.json +4 -2
- package/dist/chunk-2DQUET75.js.map +0 -1
- /package/dist/{chunk-EIQ2JGZE.js.map → chunk-L3YIUY5R.js.map} +0 -0
- /package/dist/{chunk-VCUBY3Y4.js.map → chunk-MOKUP5DR.js.map} +0 -0
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
getWorkflowText,
|
|
7
7
|
objectType,
|
|
8
8
|
registerPrompts
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-L3YIUY5R.js";
|
|
10
10
|
import {
|
|
11
11
|
GUIDE_TYPES,
|
|
12
12
|
QUIZ_VARIANTS,
|
|
@@ -14,8 +14,9 @@ import {
|
|
|
14
14
|
getGuideUri,
|
|
15
15
|
guideFallbackText,
|
|
16
16
|
registerResources
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-MOKUP5DR.js";
|
|
18
18
|
import {
|
|
19
|
+
ACTIVE_NODE_TYPES,
|
|
19
20
|
BUSINESS,
|
|
20
21
|
CONTACT_FIELDS,
|
|
21
22
|
FORM_TYPE_ALIASES,
|
|
@@ -33,7 +34,7 @@ import {
|
|
|
33
34
|
errorResult,
|
|
34
35
|
resolveFormType,
|
|
35
36
|
textResult
|
|
36
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-F2JA2N5N.js";
|
|
37
38
|
import {
|
|
38
39
|
__commonJS,
|
|
39
40
|
__export,
|
|
@@ -16996,7 +16997,7 @@ var EXPOSED_COMPOSITIONS = [
|
|
|
16996
16997
|
];
|
|
16997
16998
|
|
|
16998
16999
|
// src/lib/schemas.ts
|
|
16999
|
-
var
|
|
17000
|
+
var ACTIVE_NODE_TYPES2 = ACTIVE_NODE_TYPES;
|
|
17000
17001
|
var CONTACT_FIELD_IDS = CONTACT_FIELDS.map(
|
|
17001
17002
|
(f) => f.id
|
|
17002
17003
|
);
|
|
@@ -17051,7 +17052,7 @@ function formatDefaultConfig(defaultConfig) {
|
|
|
17051
17052
|
}
|
|
17052
17053
|
var NODE_TYPES_DESCRIPTION = (() => {
|
|
17053
17054
|
const lines = ["Node types (omit config to use defaults where shown):"];
|
|
17054
|
-
for (const type of
|
|
17055
|
+
for (const type of ACTIVE_NODE_TYPES2) {
|
|
17055
17056
|
const def = NODE_TYPES[type];
|
|
17056
17057
|
let line = `- ${type}: ${def.description || def.label}`;
|
|
17057
17058
|
if (def.has_options) {
|
|
@@ -17078,7 +17079,7 @@ var OptionSchema = external_exports.object({
|
|
|
17078
17079
|
});
|
|
17079
17080
|
var OPTIONS_DESCRIPTION = (() => {
|
|
17080
17081
|
const hints = ["Answer options."];
|
|
17081
|
-
for (const type of
|
|
17082
|
+
for (const type of ACTIVE_NODE_TYPES2) {
|
|
17082
17083
|
const def = NODE_TYPES[type];
|
|
17083
17084
|
if (!def.has_options) continue;
|
|
17084
17085
|
const parts = [`${type}: required`];
|
|
@@ -17090,7 +17091,7 @@ var OPTIONS_DESCRIPTION = (() => {
|
|
|
17090
17091
|
return hints.join(" ");
|
|
17091
17092
|
})();
|
|
17092
17093
|
var NodeSchema = external_exports.object({
|
|
17093
|
-
type: external_exports.enum(
|
|
17094
|
+
type: external_exports.enum(ACTIVE_NODE_TYPES2),
|
|
17094
17095
|
prompt: external_exports.string().describe("The text shown to the respondent"),
|
|
17095
17096
|
label: external_exports.string().optional().describe("Short label for the node (used in logic builder). Defaults to the prompt text."),
|
|
17096
17097
|
required: external_exports.boolean().optional().default(true),
|
|
@@ -17123,7 +17124,7 @@ function registerCreateFormTool(server) {
|
|
|
17123
17124
|
|
|
17124
17125
|
${NODE_TYPES_DESCRIPTION}
|
|
17125
17126
|
|
|
17126
|
-
All type definitions and config schemas are derived from @vid-master/config (
|
|
17127
|
+
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.
|
|
17127
17128
|
|
|
17128
17129
|
Example: A form that asks a question, collects contact info, then finishes:
|
|
17129
17130
|
{
|
|
@@ -17155,7 +17156,7 @@ Example: A form that asks a question, collects contact info, then finishes:
|
|
|
17155
17156
|
readOnlyHint: false,
|
|
17156
17157
|
destructiveHint: false,
|
|
17157
17158
|
idempotentHint: false,
|
|
17158
|
-
openWorldHint:
|
|
17159
|
+
openWorldHint: false
|
|
17159
17160
|
},
|
|
17160
17161
|
_meta: { "anthropic/alwaysLoad": true }
|
|
17161
17162
|
},
|
|
@@ -17328,7 +17329,7 @@ function registerListFormsTool(server) {
|
|
|
17328
17329
|
readOnlyHint: true,
|
|
17329
17330
|
destructiveHint: false,
|
|
17330
17331
|
idempotentHint: true,
|
|
17331
|
-
openWorldHint:
|
|
17332
|
+
openWorldHint: false
|
|
17332
17333
|
}
|
|
17333
17334
|
},
|
|
17334
17335
|
async ({ limit, cursor, tag, published, search, sort, order }) => {
|
|
@@ -17411,7 +17412,7 @@ function registerGetFormTool(server) {
|
|
|
17411
17412
|
readOnlyHint: true,
|
|
17412
17413
|
destructiveHint: false,
|
|
17413
17414
|
idempotentHint: true,
|
|
17414
|
-
openWorldHint:
|
|
17415
|
+
openWorldHint: false
|
|
17415
17416
|
}
|
|
17416
17417
|
},
|
|
17417
17418
|
async ({ form_id }) => {
|
|
@@ -17452,7 +17453,7 @@ function registerUpdateFormTool(server) {
|
|
|
17452
17453
|
readOnlyHint: false,
|
|
17453
17454
|
destructiveHint: false,
|
|
17454
17455
|
idempotentHint: true,
|
|
17455
|
-
openWorldHint:
|
|
17456
|
+
openWorldHint: false
|
|
17456
17457
|
}
|
|
17457
17458
|
},
|
|
17458
17459
|
async ({ form_id, title, is_live, show_step_counter, disable_back_navigation, total_steps, primary_color, background_color, font_family, description, author, logo_url, show_branding, brand_name, tags }) => {
|
|
@@ -17559,7 +17560,7 @@ function registerDeleteFormTool(server) {
|
|
|
17559
17560
|
readOnlyHint: false,
|
|
17560
17561
|
destructiveHint: true,
|
|
17561
17562
|
idempotentHint: false,
|
|
17562
|
-
openWorldHint:
|
|
17563
|
+
openWorldHint: false
|
|
17563
17564
|
}
|
|
17564
17565
|
},
|
|
17565
17566
|
async ({ form_id, confirm }) => {
|
|
@@ -17600,7 +17601,7 @@ function registerAddNodeTool(server) {
|
|
|
17600
17601
|
readOnlyHint: false,
|
|
17601
17602
|
destructiveHint: false,
|
|
17602
17603
|
idempotentHint: false,
|
|
17603
|
-
openWorldHint:
|
|
17604
|
+
openWorldHint: false
|
|
17604
17605
|
}
|
|
17605
17606
|
},
|
|
17606
17607
|
async ({ form_id, node, after_node_id }) => {
|
|
@@ -17626,7 +17627,7 @@ var NodeUpdateSchema = external_exports.object({
|
|
|
17626
17627
|
node_id: external_exports.string().describe("The node ID to update"),
|
|
17627
17628
|
prompt: external_exports.string().optional().describe("New node prompt text"),
|
|
17628
17629
|
label: external_exports.string().optional().describe("Short label for the node (used in logic builder)"),
|
|
17629
|
-
type: external_exports.enum(
|
|
17630
|
+
type: external_exports.enum(ACTIVE_NODE_TYPES2).optional().describe("Change the node type"),
|
|
17630
17631
|
required: external_exports.boolean().optional().describe("Whether an answer is required"),
|
|
17631
17632
|
config: external_exports.record(external_exports.unknown()).optional().describe(CONFIG_FIELD_DESCRIPTION),
|
|
17632
17633
|
options: external_exports.array(OptionSchema).optional().describe(
|
|
@@ -17638,7 +17639,7 @@ function registerUpdateNodeTool(server) {
|
|
|
17638
17639
|
"clipform_update_node",
|
|
17639
17640
|
{
|
|
17640
17641
|
title: "Update Node",
|
|
17641
|
-
description: `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 (
|
|
17642
|
+
description: `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).`,
|
|
17642
17643
|
inputSchema: {
|
|
17643
17644
|
form_id: external_exports.string().uuid().describe("The form UUID (returned by clipform_create_form, not the short share_id from the URL)"),
|
|
17644
17645
|
updates: external_exports.array(NodeUpdateSchema).min(1).max(20).describe("One or more node updates to apply")
|
|
@@ -17647,7 +17648,7 @@ function registerUpdateNodeTool(server) {
|
|
|
17647
17648
|
readOnlyHint: false,
|
|
17648
17649
|
destructiveHint: false,
|
|
17649
17650
|
idempotentHint: true,
|
|
17650
|
-
openWorldHint:
|
|
17651
|
+
openWorldHint: false
|
|
17651
17652
|
}
|
|
17652
17653
|
},
|
|
17653
17654
|
async ({ form_id, updates }) => {
|
|
@@ -17703,7 +17704,7 @@ function registerDeleteNodeTool(server) {
|
|
|
17703
17704
|
readOnlyHint: false,
|
|
17704
17705
|
destructiveHint: true,
|
|
17705
17706
|
idempotentHint: false,
|
|
17706
|
-
openWorldHint:
|
|
17707
|
+
openWorldHint: false
|
|
17707
17708
|
}
|
|
17708
17709
|
},
|
|
17709
17710
|
async ({ form_id, node_id, confirm }) => {
|
|
@@ -17767,7 +17768,7 @@ When a public URL is provided, the media is fetched and stored automatically. On
|
|
|
17767
17768
|
readOnlyHint: false,
|
|
17768
17769
|
destructiveHint: false,
|
|
17769
17770
|
idempotentHint: false,
|
|
17770
|
-
openWorldHint:
|
|
17771
|
+
openWorldHint: false
|
|
17771
17772
|
}
|
|
17772
17773
|
},
|
|
17773
17774
|
async ({ form_id, items }) => {
|
|
@@ -17790,13 +17791,15 @@ When a public URL is provided, the media is fetched and stored automatically. On
|
|
|
17790
17791
|
);
|
|
17791
17792
|
if (result.ok) {
|
|
17792
17793
|
successCount++;
|
|
17793
|
-
const resultLines = [
|
|
17794
|
+
const resultLines = [];
|
|
17794
17795
|
if (result.data.upload_url) {
|
|
17795
17796
|
resultLines.push(
|
|
17796
17797
|
`Upload URL: ${result.data.upload_url}`,
|
|
17797
17798
|
`Upload method: ${result.data.upload_method}`,
|
|
17798
17799
|
`Upload the file directly to the upload URL using ${result.data.upload_method === "tus" ? "TUS resumable upload" : "HTTP PUT"}.`
|
|
17799
17800
|
);
|
|
17801
|
+
} else {
|
|
17802
|
+
resultLines.push(`Media stored.`);
|
|
17800
17803
|
}
|
|
17801
17804
|
if (item.captions) {
|
|
17802
17805
|
resultLines.push(`Captions: ${item.captions.length} segments saved`);
|
|
@@ -17810,8 +17813,6 @@ When a public URL is provided, the media is fetched and stored automatically. On
|
|
|
17810
17813
|
if (items.length > 1) {
|
|
17811
17814
|
lines.unshift(`Media upload: ${successCount}/${items.length} succeeded
|
|
17812
17815
|
`);
|
|
17813
|
-
} else if (successCount > 0) {
|
|
17814
|
-
lines.unshift(`Media uploaded successfully.`);
|
|
17815
17816
|
}
|
|
17816
17817
|
if (successCount === 0) return errorResult(lines.join("\n"));
|
|
17817
17818
|
return textResult(lines.join("\n"));
|
|
@@ -17834,7 +17835,7 @@ function registerGetNodeMediaTool(server) {
|
|
|
17834
17835
|
readOnlyHint: true,
|
|
17835
17836
|
destructiveHint: false,
|
|
17836
17837
|
idempotentHint: true,
|
|
17837
|
-
openWorldHint:
|
|
17838
|
+
openWorldHint: false
|
|
17838
17839
|
}
|
|
17839
17840
|
},
|
|
17840
17841
|
async ({ form_id, node_id }) => {
|
|
@@ -17876,7 +17877,7 @@ function registerDeleteNodeMediaTool(server) {
|
|
|
17876
17877
|
readOnlyHint: false,
|
|
17877
17878
|
destructiveHint: true,
|
|
17878
17879
|
idempotentHint: false,
|
|
17879
|
-
openWorldHint:
|
|
17880
|
+
openWorldHint: false
|
|
17880
17881
|
}
|
|
17881
17882
|
},
|
|
17882
17883
|
async ({ form_id, node_id, confirm }) => {
|
|
@@ -17933,7 +17934,7 @@ Example:
|
|
|
17933
17934
|
readOnlyHint: false,
|
|
17934
17935
|
destructiveHint: false,
|
|
17935
17936
|
idempotentHint: true,
|
|
17936
|
-
openWorldHint:
|
|
17937
|
+
openWorldHint: false
|
|
17937
17938
|
}
|
|
17938
17939
|
},
|
|
17939
17940
|
async ({ form_id, nodes }) => {
|
|
@@ -18008,7 +18009,7 @@ Returns: article title, source, author, date, URL, description, and image URL pe
|
|
|
18008
18009
|
query: external_exports.string().describe("News search query (e.g. 'Iran war 2026', 'Australian Open final', 'UK election')"),
|
|
18009
18010
|
count: external_exports.number().min(1).max(15).default(5).optional().describe("Max results per provider (default 5)")
|
|
18010
18011
|
},
|
|
18011
|
-
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint:
|
|
18012
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }
|
|
18012
18013
|
},
|
|
18013
18014
|
async ({ query, count }) => {
|
|
18014
18015
|
const result = await callApi("/internal/search-news", {
|
|
@@ -18057,7 +18058,7 @@ Supports any public YouTube video with captions enabled. Does NOT work for priva
|
|
|
18057
18058
|
readOnlyHint: true,
|
|
18058
18059
|
destructiveHint: false,
|
|
18059
18060
|
idempotentHint: true,
|
|
18060
|
-
openWorldHint:
|
|
18061
|
+
openWorldHint: false
|
|
18061
18062
|
}
|
|
18062
18063
|
},
|
|
18063
18064
|
async ({ url, lang, max_chars }) => {
|
|
@@ -18104,7 +18105,7 @@ Pass one item or many (max 10) - multiple items run in parallel. Returns audio U
|
|
|
18104
18105
|
inputSchema: {
|
|
18105
18106
|
items: external_exports.array(TtsItemSchema).min(1).max(10).describe("One or more TTS items to generate")
|
|
18106
18107
|
},
|
|
18107
|
-
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint:
|
|
18108
|
+
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false }
|
|
18108
18109
|
},
|
|
18109
18110
|
async ({ items }) => {
|
|
18110
18111
|
const workspace_id = getMcpAuth()?.workspace_id;
|
|
@@ -18125,7 +18126,14 @@ Pass one item or many (max 10) - multiple items run in parallel. Returns audio U
|
|
|
18125
18126
|
successCount++;
|
|
18126
18127
|
const data = r.value.data;
|
|
18127
18128
|
lines.push(`Audio URL: ${data.audioUrl}`);
|
|
18128
|
-
|
|
18129
|
+
const rawCaptions = Array.isArray(data.captions) ? data.captions : [];
|
|
18130
|
+
const captions = rawCaptions.map((c) => ({
|
|
18131
|
+
start: c.start,
|
|
18132
|
+
end: c.end,
|
|
18133
|
+
text: c.text,
|
|
18134
|
+
...Array.isArray(c.words) ? { words: c.words.map((w) => ({ word: w.word, start: w.start, end: w.end })) } : {}
|
|
18135
|
+
}));
|
|
18136
|
+
lines.push(`Captions: ${JSON.stringify(captions)}`);
|
|
18129
18137
|
} else {
|
|
18130
18138
|
const error2 = r.status === "rejected" ? r.reason?.message || String(r.reason) : r.value.error;
|
|
18131
18139
|
const status = r.status === "fulfilled" ? r.value.status : 0;
|
|
@@ -18164,7 +18172,7 @@ Example: { queries: [{ query: "saturn rings" }, { query: "mars surface", count:
|
|
|
18164
18172
|
})
|
|
18165
18173
|
).min(1).max(10).describe("One or more search queries to run")
|
|
18166
18174
|
},
|
|
18167
|
-
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint:
|
|
18175
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }
|
|
18168
18176
|
},
|
|
18169
18177
|
async ({ queries }) => {
|
|
18170
18178
|
const allLines = [];
|
|
@@ -18402,7 +18410,7 @@ function registerSearchMusicTool(server) {
|
|
|
18402
18410
|
maxDuration: external_exports.number().optional().describe("Maximum duration in seconds"),
|
|
18403
18411
|
tags: external_exports.array(external_exports.string()).optional().describe("Genre/mood tags to filter by")
|
|
18404
18412
|
},
|
|
18405
|
-
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint:
|
|
18413
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }
|
|
18406
18414
|
},
|
|
18407
18415
|
async ({ query, count, instrumentalOnly, minDuration, maxDuration, tags }) => {
|
|
18408
18416
|
const result = await callApi("/internal/search-music", {
|
|
@@ -18586,7 +18594,7 @@ For multi-question builds, pass wait: false on every render: each call returns a
|
|
|
18586
18594
|
background_color: external_exports.string().optional().describe("Background color (default '#000')"),
|
|
18587
18595
|
wait: external_exports.boolean().optional().default(true).describe("true (default) blocks until the video is ready and returns its URL. false returns a job ID immediately - fire all renders first, then poll clipform_check_render. Use false whenever rendering more than one video.")
|
|
18588
18596
|
},
|
|
18589
|
-
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint:
|
|
18597
|
+
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false }
|
|
18590
18598
|
},
|
|
18591
18599
|
async ({ items, audio_url, background_audio_url, background_audio_volume, duration_seconds, random_effects, transition, style_preset, texture, duotone, background_color, wait }) => {
|
|
18592
18600
|
const workspace_id = getMcpAuth()?.workspace_id;
|
|
@@ -18764,7 +18772,7 @@ mainlandOnly excludes small islands and overseas territories (e.g. Corsica for F
|
|
|
18764
18772
|
mainlandOnly: external_exports.boolean().default(true).describe("Keep only the largest landmass, excluding small islands and overseas territories"),
|
|
18765
18773
|
maxPoints: external_exports.number().default(500).describe("Maximum points per polygon ring for simplification (default 500, lower = smaller payload)")
|
|
18766
18774
|
},
|
|
18767
|
-
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint:
|
|
18775
|
+
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }
|
|
18768
18776
|
},
|
|
18769
18777
|
async ({ query, type, mainlandOnly, maxPoints }) => {
|
|
18770
18778
|
const params = new URLSearchParams({
|
|
@@ -19039,4 +19047,4 @@ export {
|
|
|
19039
19047
|
JSONRPCMessageSchema,
|
|
19040
19048
|
createServer
|
|
19041
19049
|
};
|
|
19042
|
-
//# sourceMappingURL=chunk-
|
|
19050
|
+
//# sourceMappingURL=chunk-KP64A2KW.js.map
|