@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 +34 -0
- package/README.md +3 -3
- package/SKILL.md +6 -2
- package/dist/format.js +1 -0
- package/dist/format.js.map +1 -1
- package/package.json +4 -4
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:
|
|
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,
|
package/dist/format.js.map
CHANGED
|
@@ -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.
|
|
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.
|
|
38
|
-
"@clipwright/sdk": "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"
|