@clipwright/mcp-server 0.22.0 → 0.23.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 +44 -0
- package/SKILL.md +19 -7
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -16,6 +16,50 @@ 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.23.0] - 2026-10-02
|
|
20
|
+
|
|
21
|
+
Russian speech moves to `eleven_v4`: the server names it by default, and the client texts say which voices speak it.
|
|
22
|
+
Clients older than 0.22.0 fail on the new model name.
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
|
|
26
|
+
- **Breaking:** *Server-side:* Russian speech uses `eleven_v4` when you name no `tts_model`. That covers the presets
|
|
27
|
+
`owner_ru_clone` and `daria_ru_female`, the catalog voices named `ru_*`, and a raw `voice_id` whose script is mostly
|
|
28
|
+
Cyrillic. Every other voice stays on `eleven_v3`, and an explicit `tts_model` always wins. Clients older than 0.22.0
|
|
29
|
+
read the model as one of three fixed values and fail on a response that names `eleven_v4`: `list_voices` fails
|
|
30
|
+
whenever the listing holds a Russian voice, as the unfiltered one always does, and `quote` fails for those Russian
|
|
31
|
+
voices. Upgrade to 0.22.0 or later. The contract version is `2026-10-02`. (clipwright#452)
|
|
32
|
+
- **Breaking:** `resolveTtsModel` in `@clipwright/core` requires `script`, the whole spoken text of the run: a raw
|
|
33
|
+
`voice_id` takes its model from it. (clipwright#452)
|
|
34
|
+
- *Server-side:* a script, or the line of one actor segment, that holds nothing but `<break time="…" />` tags is
|
|
35
|
+
refused before any charge on `eleven_v4`. The model gets the text with those tags cut, and nothing would be left
|
|
36
|
+
to say. (clipwright#452)
|
|
37
|
+
- *Server-side:* the warnings for a model that misreads stress marks name both models that read them, `eleven_v4`
|
|
38
|
+
and `eleven_v3`, instead of advising `eleven_v3` alone. (clipwright#452)
|
|
39
|
+
- *Server-side:* the quote and the reserve for a Russian script on `eleven_v4` assume 2.18 words per second, the
|
|
40
|
+
measured pace, instead of 2.3. `duration_estimate_sec` and `credits_estimate` come out about 5% higher: 153 Russian
|
|
41
|
+
words are quoted at 70 seconds and 2,100 credits instead of 67 seconds and 2,010. The charge still follows the
|
|
42
|
+
measured duration. A Russian script on an explicit `eleven_v3` and every other language are quoted as before.
|
|
43
|
+
(clipwright#452)
|
|
44
|
+
- *Server-side:* the long-form qualification ceiling (`segments` or `inserts`) moves from 300 to 327 seconds of
|
|
45
|
+
estimated output, for every run. A Russian script on an `eleven_v4` voice passes up to 713 words, against the 691
|
|
46
|
+
that passed while Russian voices spoke `eleven_v3`. A Russian script on an explicit `eleven_v3` passes up to 753
|
|
47
|
+
words and an English one up to 851. A longer script is refused before any charge. (clipwright#452)
|
|
48
|
+
- The `tts_model` and `script` descriptions say which voices speak `eleven_v4` by default, name both models that read
|
|
49
|
+
stress marks, and say that break tags are not counted toward the `eleven_v4` script limit. (clipwright#452)
|
|
50
|
+
|
|
51
|
+
### Fixed
|
|
52
|
+
|
|
53
|
+
- `SKILL.md` and the CLI README no longer say that every preset and catalog voice speaks `eleven_v3`, and no longer
|
|
54
|
+
advise keeping Russian scripts on `eleven_v3`. They name the voices that speak `eleven_v4` when you name no model:
|
|
55
|
+
the presets `owner_ru_clone` and `daria_ru_female`, the catalog voices named `ru_*`, and a raw `voice_id` with a
|
|
56
|
+
mostly Cyrillic script. They name both models that read stress marks, `eleven_v4` and `eleven_v3`, and say that
|
|
57
|
+
`eleven_v4` gives no pause for a `<break time="…" />` tag and gets the text with the tag cut. `SKILL.md` lists the
|
|
58
|
+
5,000-character script limit of `eleven_v4`. The behavior is the one the entries above describe; only these texts
|
|
59
|
+
were out of date. (clipwright#452)
|
|
60
|
+
- The `--tts-model` help of `clipwright make` says that an omitted flag means the voice's default model. It said
|
|
61
|
+
"the preset's model", which was wrong for a catalog voice and for `--voice-id`. (clipwright#452)
|
|
62
|
+
|
|
19
63
|
## [0.22.0] - 2026-10-01
|
|
20
64
|
|
|
21
65
|
A new speech model: `tts_model` accepts `eleven_v4`, and the clients no longer fail on a model they do not know.
|
package/SKILL.md
CHANGED
|
@@ -319,11 +319,15 @@ 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`
|
|
322
|
+
TTS model, as reported by `tools/list`: `eleven_v3` and `eleven_v4` allow 5000 characters,
|
|
323
323
|
`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
|
-
duration implied by it), `tts_model` (
|
|
326
|
-
|
|
325
|
+
duration implied by it), `tts_model` (omit it and the voice decides: the Russian presets
|
|
326
|
+
`owner_ru_clone` and `daria_ru_female` and the catalog voices named `ru_*` speak
|
|
327
|
+
`eleven_v4`, every other preset and catalog voice speaks `eleven_v3`; a raw `voice_id`
|
|
328
|
+
speaks `eleven_v4` when at least 60% of the script's Cyrillic and Latin letters are
|
|
329
|
+
Cyrillic, and `eleven_v3` otherwise; an explicit `tts_model` always wins;
|
|
330
|
+
`eleven_flash_v2_5` and `eleven_turbo_v2_5` cost less and suit
|
|
327
331
|
languages other than Russian), optionally `person` OR
|
|
328
332
|
`image` (a public `https` URL) with `actor_gender` (`female`/`male`, only next to
|
|
329
333
|
`image`), plus `name`, `captions` (defaults to `false` —
|
|
@@ -334,13 +338,20 @@ differ), `resolution` (`720p`/`1080p`/`4k`), `voice`/`voice_id`.
|
|
|
334
338
|
|
|
335
339
|
**Russian stress marks.** Tell a user who writes in Russian that they can fix stress:
|
|
336
340
|
write the stressed vowel as a capital inside a lowercase word — `потОм`, `зАмок` — and
|
|
337
|
-
Clipwright sends `eleven_v3` the stress mark U+0301 (`пото́м`). A capital that starts a
|
|
341
|
+
Clipwright sends `eleven_v4` and `eleven_v3` the stress mark U+0301 (`пото́м`). A capital that starts a
|
|
338
342
|
word stays a capital, a word with a second capital or an inner capital consonant
|
|
339
343
|
(`ВУЗы`, all caps) stays as written, and a U+0301 typed directly is kept. A single
|
|
340
|
-
inner capital vowel always reads as stress, so `ЯндексЕда` needs a space. Keep Russian
|
|
344
|
+
inner capital vowel always reads as stress, so `ЯндексЕда` needs a space. Keep Russian
|
|
345
|
+
scripts on `eleven_v4` or `eleven_v3`: the 2.5 models misread the mark, so a script
|
|
341
346
|
carrying it draws a warning there, and so does any Cyrillic script. Retrying never
|
|
342
347
|
fixes stress; only the text does.
|
|
343
348
|
|
|
349
|
+
**Break tags on `eleven_v4`.** The model gives no pause for `<break time="1.5s" />`.
|
|
350
|
+
Clipwright cuts every tag of that form (`time` in `s` or `ms`) from the text it sends to
|
|
351
|
+
`eleven_v4`, leaves it out of the character count, and names the cut in `warnings[]` of
|
|
352
|
+
the quote and the run. A script that holds nothing but break tags is refused before any
|
|
353
|
+
charge. The other models get the tag as written.
|
|
354
|
+
|
|
344
355
|
The exact list is always available from the tool schema itself: `tools/list` is
|
|
345
356
|
generated from the same shape, and fields that are not honoured carry
|
|
346
357
|
`NOT HONORED YET` right in their own `description`.
|
|
@@ -429,8 +440,9 @@ Two mutually exclusive optional fields in the `make_ugc` input:
|
|
|
429
440
|
When the user sends a photo and asks for no particular voice, pass the gender of
|
|
430
441
|
the person in it as `actor_gender`. Ask the user only when you cannot tell.
|
|
431
442
|
|
|
432
|
-
For a Russian script,
|
|
433
|
-
(see **Russian stress marks**
|
|
443
|
+
For a Russian script, leave `tts_model` out or name `eleven_v4` or `eleven_v3` — both
|
|
444
|
+
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.
|
|
434
446
|
|
|
435
447
|
### `get_run` — status polling
|
|
436
448
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clipwright/mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.0",
|
|
4
4
|
"description": "MCP server for Clipwright: generate UGC videos from your coding agent",
|
|
5
5
|
"mcpName": "io.clipwright/mcp",
|
|
6
6
|
"keywords": [
|
|
@@ -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.23.0",
|
|
38
|
+
"@clipwright/sdk": "0.23.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/node": "^26.1.1"
|