@clipwright/mcp-server 0.23.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 +73 -0
- package/README.md +7 -6
- package/SKILL.md +52 -21
- package/dist/format.js +1 -0
- package/dist/format.js.map +1 -1
- package/dist/server.js +8 -4
- package/dist/server.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -16,6 +16,79 @@ 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
|
+
|
|
53
|
+
## [0.24.0] - 2026-10-03
|
|
54
|
+
|
|
55
|
+
A second speech model, `gemini-3.8-flash-tts`, with thirty voices of its own and a sample of each in English and
|
|
56
|
+
Russian. Nothing changes unless you name the model or one of its voices. The CLI and the MCP server accept the new
|
|
57
|
+
`tts_model` value from this release on.
|
|
58
|
+
|
|
59
|
+
### Added
|
|
60
|
+
|
|
61
|
+
- `tts_model` accepts `gemini-3.8-flash-tts`, a speech model of a second vendor. Nothing changes unless you name it:
|
|
62
|
+
every default stays as it was, and Russian speech without `tts_model` still uses `eleven_v4`. The model speaks only
|
|
63
|
+
its own voices: without `voice`, `kore` for a female actor and `charon` otherwise. It reads Russian stress marks,
|
|
64
|
+
and it gets the text with `<break time="…" />` tags cut, which the response names in a warning. Its script limit is
|
|
65
|
+
5,000 characters. The price per finished second is the same as on every other model. (clipwright#453)
|
|
66
|
+
- `voice` accepts the thirty voices of `gemini-3.8-flash-tts` by name: `kore`, `puck`, `zephyr` and the rest, as
|
|
67
|
+
`list_voices` returns them. Naming one selects that model without `tts_model`, and the quote names the model.
|
|
68
|
+
`clipwright voices` prints the model on the line of such a voice. (clipwright#453)
|
|
69
|
+
- *Server-side:* `list_voices` returns those thirty voices after the presets as entries of kind `model_voice`. Each
|
|
70
|
+
names one model in `model` and `supported_models`, has no `language`, and carries `gender` only where it is known:
|
|
71
|
+
`kore` is female and `charon` is male. The filters `model=gemini-3.8-flash-tts`, `language=ru` and `language=en`
|
|
72
|
+
find them; any other language does not. (clipwright#453)
|
|
73
|
+
- *Server-side:* each of those thirty voices carries `preview_url`, a short sample spoken by that voice on its model.
|
|
74
|
+
The sample is in English; a request filtered by `language=ru` gets the Russian one. `clipwright voices` prints the
|
|
75
|
+
link under the voice, as it does for every other voice with a sample. (clipwright#453)
|
|
76
|
+
- *Server-side:* with `gemini-3.8-flash-tts` the API refuses a preset or catalog `voice`, `voice_id`, `captions=true`,
|
|
77
|
+
`segments` and `inserts` before any charge: the model does not speak the preset and catalog voices and returns no
|
|
78
|
+
word timings. It refuses the same when a voice names the model instead of `tts_model`, and it refuses one of the
|
|
79
|
+
model's voices next to any other `tts_model`. Each refusal names what to pass instead. `list_voices` lists the
|
|
80
|
+
model in `models[]` with the languages `en` and `ru`; no preset or catalog voice names it in `supported_models`.
|
|
81
|
+
(clipwright#453)
|
|
82
|
+
- *Server-side:* a warning about stress marks on `eleven_flash_v2_5` or `eleven_turbo_v2_5` names only the models
|
|
83
|
+
that speak the voice of the run: with an explicit `voice` or `voice_id` these are `eleven_v3` and `eleven_v4`.
|
|
84
|
+
(clipwright#453)
|
|
85
|
+
- *Server-side:* the quote and the reserve for a Russian script on `gemini-3.8-flash-tts` assume 2.2 words per second,
|
|
86
|
+
the pace measured on its two default voices: 153 Russian words are quoted at 70 seconds and 2,100 credits. A script
|
|
87
|
+
in Latin letters on this model is quoted at 2.6 words per second, as on every other model. The charge follows the
|
|
88
|
+
measured duration. (clipwright#453)
|
|
89
|
+
- *Dashboard:* the Privacy Policy, the Cookie Policy and the AI disclosure page name the speech provider of a run
|
|
90
|
+
that chooses this model. (clipwright#453)
|
|
91
|
+
|
|
19
92
|
## [0.23.0] - 2026-10-02
|
|
20
93
|
|
|
21
94
|
Russian speech moves to `eleven_v4`: the server names it by default, and the client texts say which voices speak it.
|
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
|
|
|
@@ -35,9 +35,10 @@ Any MCP host works — the server speaks JSON-RPC over stdio.
|
|
|
35
35
|
|
|
36
36
|
## Tools
|
|
37
37
|
|
|
38
|
-
- `list_voices` — voices for `voice`: the presets
|
|
39
|
-
|
|
40
|
-
sample where the voice has
|
|
38
|
+
- `list_voices` — voices for `voice`: the presets, the thirty voices of the
|
|
39
|
+
speech model `gemini-3.8-flash-tts` and the catalog, with filters by language,
|
|
40
|
+
gender, age, use case and model, and a short audio sample where the voice has
|
|
41
|
+
one. Free, spends no credits.
|
|
41
42
|
- `list_actors` — ready-made faces with stable ids and verified formats. Free.
|
|
42
43
|
- `quote_ugc` — estimated duration and price, plus a warning when `make_ugc`
|
|
43
44
|
with the same input would be refused for money or access. Free.
|
|
@@ -80,4 +81,4 @@ a failed run on purpose, not a free refresh.
|
|
|
80
81
|
The server sends your script or brief, chosen options and any uploaded image to the
|
|
81
82
|
Clipwright API to quote and render the video. How that data is handled:
|
|
82
83
|
[clipwright.io/privacy](https://clipwright.io/privacy). Documentation:
|
|
83
|
-
[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
|
|
@@ -319,12 +319,13 @@ is, the contract MINUS the rejected fields: they simply are not there, and listi
|
|
|
319
319
|
them here would mean offering what the server punishes you for (section 3).
|
|
320
320
|
|
|
321
321
|
`script` (required while `segments` is rejected; length is limited by the resolved
|
|
322
|
-
TTS model, as reported by `tools/list`: `eleven_v3` and `
|
|
323
|
-
`eleven_flash_v2_5` and `eleven_turbo_v2_5` allow 10000. Spaces, audio tags and stress
|
|
322
|
+
TTS model, as reported by `tools/list`: `eleven_v3`, `eleven_v4` and `gemini-3.8-flash-tts`
|
|
323
|
+
allow 5000 characters, `eleven_flash_v2_5` and `eleven_turbo_v2_5` allow 10000. Spaces, audio tags and stress
|
|
324
324
|
marks count; emoji may count as two characters. There is no word-count limit or fixed
|
|
325
325
|
duration implied by it), `tts_model` (omit it and the voice decides: the Russian presets
|
|
326
326
|
`owner_ru_clone` and `daria_ru_female` and the catalog voices named `ru_*` speak
|
|
327
|
-
`eleven_v4`,
|
|
327
|
+
`eleven_v4`, a voice of kind `model_voice` speaks its own model `gemini-3.8-flash-tts`,
|
|
328
|
+
every other preset and catalog voice speaks `eleven_v3`; a raw `voice_id`
|
|
328
329
|
speaks `eleven_v4` when at least 60% of the script's Cyrillic and Latin letters are
|
|
329
330
|
Cyrillic, and `eleven_v3` otherwise; an explicit `tts_model` always wins;
|
|
330
331
|
`eleven_flash_v2_5` and `eleven_turbo_v2_5` cost less and suit
|
|
@@ -338,17 +339,21 @@ differ), `resolution` (`720p`/`1080p`/`4k`), `voice`/`voice_id`.
|
|
|
338
339
|
|
|
339
340
|
**Russian stress marks.** Tell a user who writes in Russian that they can fix stress:
|
|
340
341
|
write the stressed vowel as a capital inside a lowercase word — `потОм`, `зАмок` — and
|
|
341
|
-
Clipwright sends `eleven_v4` and `
|
|
342
|
+
Clipwright sends `eleven_v4`, `eleven_v3` and `gemini-3.8-flash-tts` the stress mark U+0301
|
|
343
|
+
(`пото́м`). A capital that starts a
|
|
342
344
|
word stays a capital, a word with a second capital or an inner capital consonant
|
|
343
345
|
(`ВУЗы`, all caps) stays as written, and a U+0301 typed directly is kept. A single
|
|
344
346
|
inner capital vowel always reads as stress, so `ЯндексЕда` needs a space. Keep Russian
|
|
345
|
-
scripts on
|
|
346
|
-
carrying it draws a warning there, and so does any Cyrillic script.
|
|
347
|
+
scripts on one of those three models: the 2.5 models misread the mark, so a script
|
|
348
|
+
carrying it draws a warning there, and so does any Cyrillic script. With a preset, a
|
|
349
|
+
catalog voice or `voice_id` the choice is `eleven_v4` or `eleven_v3`, because
|
|
350
|
+
`gemini-3.8-flash-tts` speaks only its own voices. Retrying never
|
|
347
351
|
fixes stress; only the text does.
|
|
348
352
|
|
|
349
|
-
**Break tags on `eleven_v4`.**
|
|
353
|
+
**Break tags on `eleven_v4` and `gemini-3.8-flash-tts`.** These two models give no pause
|
|
354
|
+
for `<break time="1.5s" />`.
|
|
350
355
|
Clipwright cuts every tag of that form (`time` in `s` or `ms`) from the text it sends to
|
|
351
|
-
|
|
356
|
+
them, leaves it out of the character count, and names the cut in `warnings[]` of
|
|
352
357
|
the quote and the run. A script that holds nothing but break tags is refused before any
|
|
353
358
|
charge. The other models get the tag as written.
|
|
354
359
|
|
|
@@ -406,10 +411,19 @@ reaches a terminal state. Do not tell the user the video is ready until you have
|
|
|
406
411
|
Two mutually exclusive optional fields in the `make_ugc` input:
|
|
407
412
|
|
|
408
413
|
- `voice` — the `name` of a voice from the free `list_voices` tool: one of the
|
|
409
|
-
presets (`owner_ru_clone`, `sarah`, `george`, `eric`, `daria_ru_female`)
|
|
414
|
+
presets (`owner_ru_clone`, `sarah`, `george`, `eric`, `daria_ru_female`), one of
|
|
415
|
+
the thirty voices of `gemini-3.8-flash-tts` (kind `model_voice`), or a
|
|
410
416
|
catalog voice. **The recommended path.** Validated at the boundary: an unknown
|
|
411
417
|
or retired name returns 400 immediately and no paid call is made. The two
|
|
412
418
|
refusals differ: a retired voice's message names the date it left the catalog.
|
|
419
|
+
- **A `model_voice` voice belongs to its model.** Naming one (`kore`, `puck`, …)
|
|
420
|
+
makes the run speak `gemini-3.8-flash-tts` with no `tts_model`, and the quote
|
|
421
|
+
names that model in `tts_model`. A voice and a `tts_model` that does not speak
|
|
422
|
+
it return 400 before any charge, and the message names the way out: for a
|
|
423
|
+
`model_voice` voice with an `eleven_*` model, omit `tts_model`; for a preset, a
|
|
424
|
+
catalog voice or `voice_id` with `tts_model: "gemini-3.8-flash-tts"`, take a
|
|
425
|
+
voice from `list_voices` with `model: "gemini-3.8-flash-tts"`. That model
|
|
426
|
+
returns no word timings, so `captions: true` is refused with it too.
|
|
413
427
|
- `voice_id` — a **raw ElevenLabs id** (20 characters), an escape hatch for voices
|
|
414
428
|
OUTSIDE the catalog, cloned ones included. It is checked for free against the
|
|
415
429
|
account at the start of the run (not during `quote`): a non-existent id fails the
|
|
@@ -417,7 +431,8 @@ Two mutually exclusive optional fields in the `make_ugc` input:
|
|
|
417
431
|
- **The default voice follows the actor's gender.** Without `voice` or `voice_id`,
|
|
418
432
|
a woman speaks `sarah` and a man speaks `george`. The gender comes from the
|
|
419
433
|
`actor_id` catalog entry, or from `actor_gender` next to `image`. The default
|
|
420
|
-
actor speaks `george`.
|
|
434
|
+
actor speaks `george`. With `tts_model: "gemini-3.8-flash-tts"` and no voice, a
|
|
435
|
+
woman speaks `kore` and everyone else `charon`. An explicit voice always wins.
|
|
421
436
|
- **With `image`, pass `actor_gender` or a `voice`.** Clipwright does not detect
|
|
422
437
|
gender from the photo. Without either, the voice is `george` and `warnings[]`
|
|
423
438
|
says so. `actor_gender` next to `actor_id`, or without `image`, returns 400
|
|
@@ -433,7 +448,8 @@ Two mutually exclusive optional fields in the `make_ugc` input:
|
|
|
433
448
|
`age`, `use_case`. Language is a filter only: any voice speaks any supported
|
|
434
449
|
language, so a Spanish script can use an English voice.
|
|
435
450
|
2. Play the `preview_url` of two or three candidates to the user. A catalog
|
|
436
|
-
voice's sample is in its native language.
|
|
451
|
+
voice's sample is in its native language. A `model_voice` voice's sample is in
|
|
452
|
+
English; call `list_voices` with `language: "ru"` to get it in Russian.
|
|
437
453
|
3. Pass the chosen `name` as `voice` to `quote_ugc` and then `make_ugc`.
|
|
438
454
|
4. Next time, reuse that same `name`. A name always means the same voice.
|
|
439
455
|
|
|
@@ -442,7 +458,8 @@ the person in it as `actor_gender`. Ask the user only when you cannot tell.
|
|
|
442
458
|
|
|
443
459
|
For a Russian script, leave `tts_model` out or name `eleven_v4` or `eleven_v3` — both
|
|
444
460
|
read stress marks — and mark stress with a capital vowel (see **Russian stress marks**
|
|
445
|
-
above). A Russian voice speaks `eleven_v4` on its own.
|
|
461
|
+
above). A Russian voice speaks `eleven_v4` on its own. A `model_voice` voice reads
|
|
462
|
+
stress marks too, on its own model `gemini-3.8-flash-tts`.
|
|
446
463
|
|
|
447
464
|
### `get_run` — status polling
|
|
448
465
|
|
|
@@ -472,10 +489,14 @@ in `state`, with `status` always `"IN_PROGRESS"`:
|
|
|
472
489
|
"run_id": "run_...",
|
|
473
490
|
"state": "succeeded",
|
|
474
491
|
"video_url": "https://...",
|
|
475
|
-
"duration_seconds": 13.08
|
|
492
|
+
"duration_seconds": 13.08,
|
|
493
|
+
"ai_disclosure": "This video was generated with AI: ..."
|
|
476
494
|
}
|
|
477
495
|
```
|
|
478
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
|
+
|
|
479
500
|
**Terminal failure** carries BOTH `status: "FAILED"` AND `state: "failed"`:
|
|
480
501
|
|
|
481
502
|
```json
|
|
@@ -515,23 +536,32 @@ version and image hash even if the catalog changes later.
|
|
|
515
536
|
### `list_voices` — free, optional filters
|
|
516
537
|
|
|
517
538
|
Returns the voices for the `voice` field of `make_ugc`: the presets first, then
|
|
518
|
-
the
|
|
539
|
+
the thirty voices of `gemini-3.8-flash-tts`, then the catalog voices, by language
|
|
540
|
+
and then by rank. Costs nothing and creates no run.
|
|
519
541
|
|
|
520
542
|
All filters are optional:
|
|
521
543
|
|
|
522
544
|
- `language` — the voice's native language. It is a filter, not a limit: any
|
|
523
|
-
voice speaks any supported language.
|
|
545
|
+
voice speaks any supported language. A `model_voice` voice has no language of
|
|
546
|
+
its own and matches the languages measured on its model, `en` and `ru`; the
|
|
547
|
+
filter also picks the language of its sample.
|
|
524
548
|
- `gender` — `female` or `male`.
|
|
525
549
|
- `age` and `use_case` — labels as the entries print them, such as `young` or
|
|
526
550
|
`narrative_story`.
|
|
527
|
-
- `model` — keeps the voices
|
|
551
|
+
- `model` — keeps the voices that speech model speaks: the presets and catalog
|
|
552
|
+
voices whose language it supports, or the model's own voices.
|
|
553
|
+
`model: "gemini-3.8-flash-tts"` returns its thirty voices.
|
|
528
554
|
|
|
529
|
-
A voice without a label matches no value of that filter
|
|
555
|
+
A voice without a label matches no value of that filter; `language` on a
|
|
556
|
+
`model_voice` voice is the one exception above. An unknown value is
|
|
530
557
|
refused with the allowed values, and an unknown filter name with
|
|
531
558
|
`unknown_field`; neither returns an empty list.
|
|
532
559
|
|
|
533
|
-
Each entry carries `name`, `kind` (`preset` or `catalog`),
|
|
534
|
-
`description`, `model` (its default speech model) and
|
|
560
|
+
Each entry carries `name`, `kind` (`preset`, `model_voice` or `catalog`),
|
|
561
|
+
`language`, `description`, `model` (its default speech model) and
|
|
562
|
+
`supported_models`. A `model_voice` entry has no `language`, names one model in
|
|
563
|
+
both `model` and `supported_models` and carries `gender` only where it is known
|
|
564
|
+
(`kore` is female, `charon` is male). A
|
|
535
565
|
catalog voice also carries `verified_models` and whichever of `locale`,
|
|
536
566
|
`accent`, `gender`, `age` and `use_case` the catalog has. The tool returns
|
|
537
567
|
`{ "voices": [...] }` only. REST `GET /v1/voices` also returns `models`, and the
|
|
@@ -549,7 +579,8 @@ vendor and an identifier does not.
|
|
|
549
579
|
**Let the user HEAR the voice before paying for it.** Every voice with a recorded
|
|
550
580
|
sample carries `preview_url`: a short clip spoken by that voice with its own
|
|
551
581
|
model, so it matches what the render will sound like. A catalog voice speaks its
|
|
552
|
-
sample in its native language.
|
|
582
|
+
sample in its native language. A `model_voice` voice has two samples: the English
|
|
583
|
+
one comes by default and the Russian one with `language: "ru"`. Descriptions convey neither
|
|
553
584
|
diction nor accent nor pace; the owner caught a voice-face mismatch by ear, on a
|
|
554
585
|
finished clip. Offer the sample whenever the user asks for a different voice.
|
|
555
586
|
|
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/dist/server.js
CHANGED
|
@@ -4,7 +4,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
// `offeredUgcInputShape`, not the full shape: fields the server rejects must not
|
|
6
6
|
// be offered to a caller who would get a 400 for using them.
|
|
7
|
-
import { offeredUgcInputShape, actorDefaultsInput, BROLL_POLICY_DESCRIPTION, CATALOG_LANGUAGES, CREATE_ACTOR_DESCRIPTION, createActorInputShape, SCRIPT_LENGTH_DESCRIPTION, voicesQueryShape, agentRetryShape, runId, MAKE_UGC_DESCRIPTION, MAKE_UGC_AGENT_PROTOCOL, MAKE_FACELESS_DESCRIPTION, MAKE_FACELESS_AGENT_PROTOCOL, makeFacelessInput, offeredFacelessInputShape, UPLOAD_IMAGE_DESCRIPTION, UPLOAD_MAX_BYTES, sniffUploadMediaType, } from "@clipwright/core";
|
|
7
|
+
import { offeredUgcInputShape, actorDefaultsInput, BROLL_POLICY_DESCRIPTION, CATALOG_LANGUAGES, CREATE_ACTOR_DESCRIPTION, createActorInputShape, MODEL_VOICE_MODEL, MODEL_VOICE_NAMES, SCRIPT_LENGTH_DESCRIPTION, voicesQueryShape, agentRetryShape, runId, MAKE_UGC_DESCRIPTION, MAKE_UGC_AGENT_PROTOCOL, MAKE_FACELESS_DESCRIPTION, MAKE_FACELESS_AGENT_PROTOCOL, makeFacelessInput, offeredFacelessInputShape, UPLOAD_IMAGE_DESCRIPTION, UPLOAD_MAX_BYTES, sniffUploadMediaType, } from "@clipwright/core";
|
|
8
8
|
import { formatGetRun, withFailureReport } from "./format.js";
|
|
9
9
|
// Version from the manifest: a literal drifts, and a JSON import breaks `rootDir`.
|
|
10
10
|
const packageVersion = () => createRequire(import.meta.url)("../package.json").version;
|
|
@@ -87,17 +87,21 @@ export function createServer(client) {
|
|
|
87
87
|
server.registerTool("list_voices", {
|
|
88
88
|
title: "List voices",
|
|
89
89
|
annotations: { readOnlyHint: true, destructiveHint: false },
|
|
90
|
-
description: "List the voices for make_ugc's `voice` field: the presets first, then
|
|
90
|
+
description: "List the voices for make_ugc's `voice` field: the presets first, then the " +
|
|
91
|
+
`${MODEL_VOICE_NAMES.length} voices of ${MODEL_VOICE_MODEL} (kind model_voice), then catalog voices in ` +
|
|
91
92
|
`${CATALOG_LANGUAGES.length} languages. Filter by \`language\` (the voice's native language; any voice ` +
|
|
92
93
|
"speaks any supported language), `gender`, `age`, `use_case` and `model`; an unknown filter value is " +
|
|
93
94
|
"refused with the allowed values. Pick a voice by `name` (e.g. voice=\"george\"); a name always means " +
|
|
94
|
-
"the same voice.
|
|
95
|
+
"the same voice. A model_voice voice is spoken only by its `model`: naming it selects that model, " +
|
|
96
|
+
"it has no language of its own and matches the languages measured on the model, and its gender is " +
|
|
97
|
+
"listed only where it is known. `voice_id` is an escape hatch for a raw vendor voice id that is not listed, such as a " +
|
|
95
98
|
"cloned voice. Without voice or voice_id the default voice follows the actor's gender: sarah for a " +
|
|
96
99
|
"woman, george for a man, taken from actor_id or from actor_gender next to image. With image and no " +
|
|
97
100
|
"actor_gender the voice is george and a warning says so: pass the gender of the person in the photo as " +
|
|
98
101
|
"actor_gender (ask the user only when you cannot tell), or pick a voice here. Keep any voice the user chose. A voice with `preview_url` has a short-lived audio sample " +
|
|
99
102
|
"spoken by that voice with that model; play it to the user before a paid render instead of judging a " +
|
|
100
|
-
"voice by its description.
|
|
103
|
+
"voice by its description. A model_voice sample is in English, or in the language you filter by. " +
|
|
104
|
+
"It expires at `preview_expires_at`: call this tool again for a fresh link, " +
|
|
101
105
|
"never store it. A voice without `preview_url` has no sample yet. Free. " + SCRIPT_LENGTH_DESCRIPTION,
|
|
102
106
|
inputSchema: voicesQueryShape,
|
|
103
107
|
}, async (filters) => withFailureReport(async () => {
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.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"
|