@clipwright/mcp-server 0.24.0 → 0.25.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.
package/CHANGELOG.md CHANGED
@@ -16,6 +16,40 @@ a customer reading it should not miss what appeared in the product. Like *Server
16
16
  they are live from the day the web app was deployed, not from the package release they are
17
17
  listed under.
18
18
 
19
+ ## [0.25.0] - 2026-10-04
20
+
21
+ The AI disclosure names what each video holds, and the clients show it: `get_run` of the MCP server and
22
+ `clipwright runs <id>` carry `ai_disclosure`. The visible "AI-generated" label is gone, and the clients no longer
23
+ offer `disclosure_overlay`.
24
+
25
+ ### Removed
26
+
27
+ - **Breaking:** *Server-side:* `disclosure_overlay` is gone: no video carries the visible "AI-generated" label. Quote
28
+ and run refuse the field with 400 `rejected_field` before any charge, and the refusal says where the disclosure is:
29
+ the run response and the file metadata. Clients up to 0.24.0 still list the field in their input schema; stop
30
+ passing it. Label the publication with the platform's own control. The contract version is `2026-10-04`.
31
+ (clipwright#488)
32
+
33
+ ### Changed
34
+
35
+ - *Dashboard:* The Privacy Policy says that we keep the site that referred you and any marker in the link that
36
+ brought you to sign-up, and that a notification of each sign-up, with the email address, reaches us through
37
+ Telegram. (clipwright#482)
38
+ - *Server-side:* `ai_disclosure` of a faceless run names what that video holds: "This video was generated with AI:
39
+ the voice, the opening clip and the images are synthetic." A faceless run with `scene_images` says instead that the
40
+ voice and the opening clip are synthetic, and so is every image its author did not supply. Until now a faceless run
41
+ carried the sentence of a video with a presenter, about an actor and lip sync it does not have. A run with a
42
+ presenter keeps its sentence. (clipwright#488)
43
+ - `get_run` of the MCP server returns `ai_disclosure` with a finished video, and `clipwright runs <id>` prints it
44
+ under the video link. Until now neither showed the statement. (clipwright#488)
45
+ - *Server-side:* a run accepted with `disclosure_overlay: true` before the label was removed and composed after it
46
+ says so in `warnings[]`. (clipwright#488)
47
+ - `@clipwright/core` exports `aiDisclosureText(skill, input)` and the two faceless sentences,
48
+ `FACELESS_AI_DISCLOSURE_TEXT` and `FACELESS_OWN_IMAGES_AI_DISCLOSURE_TEXT`. `AI_DISCLOSURE_TEXT` stays the sentence
49
+ of a video with a presenter. (clipwright#488)
50
+ - *Dashboard:* The AI Disclosure page gives the three wordings of the statement, says that a faceless file carries a
51
+ storage flag alone, and no longer describes a visible label. (clipwright#488)
52
+
19
53
  ## [0.24.0] - 2026-10-03
20
54
 
21
55
  A second speech model, `gemini-3.8-flash-tts`, with thirty voices of its own and a sample of each in English and
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @clipwright/mcp-server
2
2
 
3
- Your coding agent writes the script; [Clipwright](https://clipwright.io) renders
3
+ Your coding agent writes the script; [Clipwright](https://clipwright.io/?ref=npm) renders
4
4
  a short vertical video of an actor speaking it, 1080×1920 by default. It also
5
5
  makes faceless videos of up to 90 seconds from a script or a short brief: narration
6
6
  over an opening animated clip and image scenes, with no on-camera presenter. The agent
@@ -11,7 +11,7 @@ The agent gets a `run_id` at once and polls until the video URL is ready.
11
11
  Clipwright returns the file; it does not publish anywhere. Quotes, voices,
12
12
  actors and the account balance are free. Renders spend credits: an account opened
13
13
  by signing up starts with 420 trial credits, enough for one 90-second faceless video. Buy more at
14
- [clipwright.io/pricing](https://clipwright.io/pricing).
14
+ [clipwright.io/pricing](https://clipwright.io/pricing?ref=npm).
15
15
 
16
16
  ## Install
17
17
 
@@ -81,4 +81,4 @@ a failed run on purpose, not a free refresh.
81
81
  The server sends your script or brief, chosen options and any uploaded image to the
82
82
  Clipwright API to quote and render the video. How that data is handled:
83
83
  [clipwright.io/privacy](https://clipwright.io/privacy). Documentation:
84
- [clipwright.io/docs](https://clipwright.io/docs).
84
+ [clipwright.io/docs](https://clipwright.io/docs?ref=npm).
package/SKILL.md CHANGED
@@ -297,7 +297,7 @@ schema, and the server answers 400 `rejected_field` before a run is even created
297
297
  | `character` | `actor_id` from `list_actors`, an `image`, or nothing (default actor); `person` does not select a face |
298
298
  | `webhook_url` | poll `get_run` — webhooks are not delivered at all |
299
299
  | `segments`, `broll_url` | a single `script`; segmented clips are not available yet |
300
- | `disclosure_overlay` | nothing: the AI disclosure is already in the run response and in the file |
300
+ | `disclosure_overlay` | nothing: no video carries a visible label, and the AI disclosure is in `ai_disclosure` of the finished run |
301
301
  | `image` and `actor_gender` with the killswitch off | omit both — the render runs on the default actor |
302
302
 
303
303
  **The aspect ratio can be refused.** Requesting `aspect_ratio: "1:1"` without an
@@ -489,10 +489,14 @@ in `state`, with `status` always `"IN_PROGRESS"`:
489
489
  "run_id": "run_...",
490
490
  "state": "succeeded",
491
491
  "video_url": "https://...",
492
- "duration_seconds": 13.08
492
+ "duration_seconds": 13.08,
493
+ "ai_disclosure": "This video was generated with AI: ..."
493
494
  }
494
495
  ```
495
496
 
497
+ `ai_disclosure` names what is synthetic in that video: a faceless video and a video with a presenter carry
498
+ different sentences. Pass it to the user as written when they ask how to label the publication.
499
+
496
500
  **Terminal failure** carries BOTH `status: "FAILED"` AND `state: "failed"`:
497
501
 
498
502
  ```json
package/dist/format.js CHANGED
@@ -56,6 +56,7 @@ export function formatGetRun(run) {
56
56
  video_url: run.final_output?.video_url ?? null,
57
57
  video_url_check: VIDEO_URL_CHECK,
58
58
  duration_seconds: run.final_output?.duration_seconds ?? null,
59
+ ...(run.final_output?.ai_disclosure === undefined ? {} : { ai_disclosure: run.final_output.ai_disclosure }),
59
60
  ...(run.final_output?.long_form_billing === undefined ? {} : { long_form_billing: run.final_output.long_form_billing }),
60
61
  ...(run.final_output?.speech_timing_gaps === undefined ? {} : { speech_timing_gaps: run.final_output.speech_timing_gaps }),
61
62
  warnings: run.warnings,
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clipwright/mcp-server",
3
- "version": "0.24.0",
3
+ "version": "0.25.0",
4
4
  "description": "MCP server for Clipwright: generate UGC videos from your coding agent",
5
5
  "mcpName": "io.clipwright/mcp",
6
6
  "keywords": [
@@ -15,7 +15,7 @@
15
15
  ],
16
16
  "license": "MIT",
17
17
  "author": "Dimantika Sp. z o.o.",
18
- "homepage": "https://clipwright.io",
18
+ "homepage": "https://clipwright.io/?ref=npm",
19
19
  "type": "module",
20
20
  "publishConfig": {
21
21
  "access": "public"
@@ -34,8 +34,8 @@
34
34
  "dependencies": {
35
35
  "@modelcontextprotocol/sdk": "^1.29.0",
36
36
  "zod": "^4.4.3",
37
- "@clipwright/core": "0.24.0",
38
- "@clipwright/sdk": "0.24.0"
37
+ "@clipwright/core": "0.25.0",
38
+ "@clipwright/sdk": "0.25.0"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/node": "^26.1.1"