@clipform/mcp-server 1.5.1 → 1.8.0

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.
Files changed (108) hide show
  1. package/README.md +51 -26
  2. package/dist/__tests__/api-parity.test.js +31 -22
  3. package/dist/__tests__/api-parity.test.js.map +1 -1
  4. package/dist/index.js +9 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/api-client.d.ts +3 -1
  7. package/dist/lib/api-client.js +31 -5
  8. package/dist/lib/api-client.js.map +1 -1
  9. package/dist/lib/auth-context.d.ts +17 -0
  10. package/dist/lib/auth-context.js +9 -0
  11. package/dist/lib/auth-context.js.map +1 -0
  12. package/dist/lib/format-form.d.ts +2 -0
  13. package/dist/lib/format-form.js +32 -0
  14. package/dist/lib/format-form.js.map +1 -0
  15. package/dist/lib/render-jobs.d.ts +13 -0
  16. package/dist/lib/render-jobs.js +38 -0
  17. package/dist/lib/render-jobs.js.map +1 -0
  18. package/dist/lib/schemas.d.ts +4 -4
  19. package/dist/lib/schemas.js +11 -11
  20. package/dist/lib/schemas.js.map +1 -1
  21. package/dist/lib/session-context.d.ts +1 -0
  22. package/dist/lib/session-context.js +38 -0
  23. package/dist/lib/session-context.js.map +1 -0
  24. package/dist/prompts.js +262 -125
  25. package/dist/prompts.js.map +1 -1
  26. package/dist/resources.d.ts +2 -0
  27. package/dist/resources.js +336 -0
  28. package/dist/resources.js.map +1 -0
  29. package/dist/server.js +29 -23
  30. package/dist/server.js.map +1 -1
  31. package/dist/tools/add-node.d.ts +2 -0
  32. package/dist/tools/add-node.js +50 -0
  33. package/dist/tools/add-node.js.map +1 -0
  34. package/dist/tools/attach-node-audio.d.ts +2 -0
  35. package/dist/tools/attach-node-audio.js +37 -0
  36. package/dist/tools/attach-node-audio.js.map +1 -0
  37. package/dist/tools/{add-question.d.ts → check-render.d.ts} +1 -1
  38. package/dist/tools/check-render.js +47 -0
  39. package/dist/tools/check-render.js.map +1 -0
  40. package/dist/tools/create-form.js +90 -19
  41. package/dist/tools/create-form.js.map +1 -1
  42. package/dist/tools/delete-form.js +2 -2
  43. package/dist/tools/delete-form.js.map +1 -1
  44. package/dist/tools/delete-node-media.d.ts +2 -0
  45. package/dist/tools/delete-node-media.js +29 -0
  46. package/dist/tools/delete-node-media.js.map +1 -0
  47. package/dist/tools/delete-node.d.ts +2 -0
  48. package/dist/tools/delete-node.js +32 -0
  49. package/dist/tools/delete-node.js.map +1 -0
  50. package/dist/tools/generate-slideshow.js +129 -26
  51. package/dist/tools/generate-slideshow.js.map +1 -1
  52. package/dist/tools/generate-tts.js +56 -31
  53. package/dist/tools/generate-tts.js.map +1 -1
  54. package/dist/tools/generate-video.d.ts +2 -0
  55. package/dist/tools/generate-video.js +119 -0
  56. package/dist/tools/generate-video.js.map +1 -0
  57. package/dist/tools/get-form.js +5 -26
  58. package/dist/tools/get-form.js.map +1 -1
  59. package/dist/tools/get-node-media.d.ts +2 -0
  60. package/dist/tools/{get-question-media.js → get-node-media.js} +11 -11
  61. package/dist/tools/get-node-media.js.map +1 -0
  62. package/dist/tools/list-assets.js +1 -1
  63. package/dist/tools/list-assets.js.map +1 -1
  64. package/dist/tools/list-compositions.js +3 -3
  65. package/dist/tools/list-compositions.js.map +1 -1
  66. package/dist/tools/log-generation.js +3 -3
  67. package/dist/tools/log-generation.js.map +1 -1
  68. package/dist/tools/render-composition.js +22 -15
  69. package/dist/tools/render-composition.js.map +1 -1
  70. package/dist/tools/search-media.js +2 -2
  71. package/dist/tools/search-media.js.map +1 -1
  72. package/dist/tools/search-music.js +1 -1
  73. package/dist/tools/search-music.js.map +1 -1
  74. package/dist/tools/search-news.js +1 -1
  75. package/dist/tools/search-news.js.map +1 -1
  76. package/dist/tools/set-node-logic.d.ts +2 -0
  77. package/dist/tools/set-node-logic.js +56 -0
  78. package/dist/tools/set-node-logic.js.map +1 -0
  79. package/dist/tools/update-form.js +43 -4
  80. package/dist/tools/update-form.js.map +1 -1
  81. package/dist/tools/update-node.d.ts +2 -0
  82. package/dist/tools/{update-question.js → update-node.js} +16 -13
  83. package/dist/tools/update-node.js.map +1 -0
  84. package/dist/tools/upload-node-media.d.ts +2 -0
  85. package/dist/tools/upload-node-media.js +109 -0
  86. package/dist/tools/upload-node-media.js.map +1 -0
  87. package/package.json +3 -2
  88. package/dist/tools/add-question.js +0 -47
  89. package/dist/tools/add-question.js.map +0 -1
  90. package/dist/tools/attach-question-audio.d.ts +0 -2
  91. package/dist/tools/attach-question-audio.js +0 -37
  92. package/dist/tools/attach-question-audio.js.map +0 -1
  93. package/dist/tools/delete-question-media.d.ts +0 -2
  94. package/dist/tools/delete-question-media.js +0 -29
  95. package/dist/tools/delete-question-media.js.map +0 -1
  96. package/dist/tools/delete-question.d.ts +0 -2
  97. package/dist/tools/delete-question.js +0 -29
  98. package/dist/tools/delete-question.js.map +0 -1
  99. package/dist/tools/get-question-media.d.ts +0 -2
  100. package/dist/tools/get-question-media.js.map +0 -1
  101. package/dist/tools/set-question-logic.d.ts +0 -2
  102. package/dist/tools/set-question-logic.js +0 -54
  103. package/dist/tools/set-question-logic.js.map +0 -1
  104. package/dist/tools/update-question.d.ts +0 -2
  105. package/dist/tools/update-question.js.map +0 -1
  106. package/dist/tools/upload-question-media.d.ts +0 -2
  107. package/dist/tools/upload-question-media.js +0 -69
  108. package/dist/tools/upload-question-media.js.map +0 -1
@@ -1,69 +0,0 @@
1
- import { z } from "zod";
2
- import { callApi, errorResult, textResult } from "../lib/api-client.js";
3
- export function registerUploadQuestionMediaTool(server) {
4
- server.registerTool("clipform_upload_question_media", {
5
- title: "Upload Question Media",
6
- description: `Upload media for a question. When a public URL is provided, the media is fetched and stored automatically. Only works on question types that support media (choice, open, scale, button). For video: ingested via Mux. For image: stored in Supabase. When attaching TTS narration video, always include captions from clipform_generate_tts.`,
7
- inputSchema: {
8
- form_id: z.string().describe("The form ID"),
9
- edit_token: z.string().describe("The edit token"),
10
- question_id: z.string().describe("The question ID"),
11
- media_type: z
12
- .enum(["video", "still"])
13
- .describe("Type of media to upload"),
14
- media_source: z
15
- .enum(["uploaded", "recorded"])
16
- .default("uploaded")
17
- .describe("How the media was created"),
18
- url: z
19
- .string()
20
- .url()
21
- .optional()
22
- .describe("Public URL of the media file. When provided, the server fetches and stores it directly."),
23
- captions: z
24
- .array(z.object({
25
- start: z.number().describe("Start time in seconds"),
26
- end: z.number().describe("End time in seconds"),
27
- text: z.string().describe("Caption text"),
28
- }))
29
- .optional()
30
- .describe("Word-level captions from clipform_generate_tts. Always include when uploading narrated video."),
31
- show_captions: z
32
- .boolean()
33
- .optional()
34
- .default(true)
35
- .describe("Display captions/subtitles on the question. Defaults to true."),
36
- },
37
- annotations: {
38
- readOnlyHint: false,
39
- destructiveHint: false,
40
- idempotentHint: false,
41
- openWorldHint: true,
42
- },
43
- }, async ({ form_id, edit_token, question_id, media_type, media_source, url, captions, show_captions }) => {
44
- const body = { media_type, media_source };
45
- if (url)
46
- body.url = url;
47
- if (captions)
48
- body.captions = captions;
49
- if (show_captions !== undefined)
50
- body.show_captions = show_captions;
51
- const result = await callApi(`/forms/${form_id}/questions/${question_id}/media`, {
52
- method: "POST",
53
- token: edit_token,
54
- body,
55
- });
56
- if (!result.ok) {
57
- return errorResult(result.error);
58
- }
59
- const lines = [`Media uploaded successfully.`, `Media ID: ${result.data.media_id}`];
60
- if (result.data.upload_url) {
61
- lines.push(`Upload URL: ${result.data.upload_url}`, `Upload method: ${result.data.upload_method}`, `Upload the file directly to the upload URL using ${result.data.upload_method === "tus" ? "TUS resumable upload" : "HTTP PUT"}.`);
62
- }
63
- if (captions) {
64
- lines.push(`Captions: ${captions.length} segments saved`);
65
- }
66
- return textResult(lines.join("\n"));
67
- });
68
- }
69
- //# sourceMappingURL=upload-question-media.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upload-question-media.js","sourceRoot":"","sources":["../../src/tools/upload-question-media.ts"],"names":[],"mappings":"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"}