@clipwright/mcp-server 0.12.0 → 0.14.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
@@ -10,6 +10,80 @@ on the client side. Entries marked *Server-side* changed the API itself: every
10
10
  client version sees them from the day the API was deployed, not from the package
11
11
  release they are listed under.
12
12
 
13
+ ## [0.14.0] - 2026-09-13
14
+
15
+ ### Changed
16
+
17
+ - **Breaking:** *Server-side:* `GET /v1/voices` lists the catalog voices after
18
+ the five presets, by language and then by rank; a voice retired from the
19
+ catalog is not listed. Every entry gains `kind` (`preset` or `catalog`) and
20
+ `supported_models`, the contract models that know the voice's language. A
21
+ catalog voice also carries `verified_models` and whichever of `locale`,
22
+ `accent`, `gender`, `age` and `use_case` the catalog has. The response gains
23
+ `models`: each contract model with its `char_limit` and `languages`. Only a
24
+ preset carries `preview_url`; a catalog voice has no sample yet. Clients
25
+ 0.11.0 and 0.12.0 cannot read this response and fail in `listVoices()`,
26
+ `list_voices` and `clipwright voices`: upgrade to 0.13.0 or later. The
27
+ contract version moved to `2026-09-13.2`. (clipwright#164)
28
+ - *Server-side:* `GET /v1/voices` takes the filters `language`, `gender`, `age`,
29
+ `use_case` and `model`. `model` keeps the voices whose language the model
30
+ knows. A voice without a label matches no value of that filter. An unknown
31
+ value gets 400 `invalid_request` that names the allowed values, and an
32
+ unknown query key gets 400 `unknown_field`; neither returns an empty list.
33
+ (clipwright#164)
34
+ - `listVoices()` takes the same filters as an object, MCP `list_voices` as
35
+ arguments, and `clipwright voices` as `--language`, `--gender`, `--age`,
36
+ `--use-case` and `--model`. `clipwright voices` prints age and use case next
37
+ to language and gender, and cuts a description longer than 100 characters.
38
+ (clipwright#164)
39
+
40
+ ### Added
41
+
42
+ - `@clipwright/core` exports `voicesQuery`, `voicesQueryShape`, `VoicesQuery`
43
+ and `VOICES_QUERY_FIELDS`. `unknownFields` takes an optional list of accepted
44
+ keys, and `UnknownFieldHit.suggestion` is typed `string`. The subpath
45
+ `@clipwright/core/voice-listing` exports `listVoices`, `serverVoicesQuery`
46
+ and `serverVoicesQueryFor`. (clipwright#164)
47
+
48
+ ## [0.13.0] - 2026-09-13
49
+
50
+ ### Changed
51
+
52
+ - `listVoices()`, MCP `list_voices` and `clipwright voices` accept a voice name
53
+ outside the five presets, a `gender` other than `female` or `male`, a voice
54
+ without `language`, and the new optional fields `kind`, `locale`, `accent`,
55
+ `age`, `use_case`, `supported_models` and `verified_models`, plus a top-level
56
+ `models` list. Unknown keys are dropped, as before. Until now the first such
57
+ voice made all three fail. (clipwright#164)
58
+ - A voice name the client does not know goes to the API, which decides.
59
+ `clipwright make --voice` checks only the form of the name: letters, digits,
60
+ `_` and `-`, up to 64 characters. The SDK and MCP `make_ugc` no longer refuse
61
+ such a name before sending it. In `tools/list`, `voice` is a string with a
62
+ pattern instead of an enum of preset names. The API itself is unchanged: a
63
+ name that is not a preset still gets 400 `invalid_request` with the same
64
+ message, before any charge. (clipwright#164)
65
+ - In `VoiceCatalogEntry`, `name` and `gender` are typed `string`, and
66
+ `language` is optional. In `MakeUgcInputArgs`, `voice` is typed `string`.
67
+ (clipwright#164)
68
+ - *Server-side:* quote and run accept a voice from the catalog by its name, as
69
+ well as a preset. A catalog voice speaks `eleven_v3` unless `tts_model` names
70
+ another model, and its script limit follows that model: 5,001 characters
71
+ without `tts_model` get 400 before any charge, as with a preset. A name that
72
+ is neither a preset nor a catalog voice gets 400 `invalid_request` that says
73
+ the voice is unknown; a voice retired from the catalog gets 400 that says it
74
+ was retired. Both point to `list_voices`. The language of a voice limits
75
+ nothing: any catalog voice speaks any language. A run already stored with a
76
+ voice that was later retired still reads, with its warnings.
77
+ (clipwright#164)
78
+
79
+ ### Added
80
+
81
+ - `@clipwright/core` exports `VOICE_NAME_PATTERN`, `isVoicePresetName`,
82
+ `serverUgcInputWith` and `voiceModelEntry`. The subpath
83
+ `@clipwright/core/voice-admission` exports `serverUgcInput`, which checks a
84
+ voice name against the catalog, and `catalogVoiceRefusal`. The catalog stays
85
+ out of the main entry point. (clipwright#164)
86
+
13
87
  ## [0.12.0] - 2026-09-13
14
88
 
15
89
  ### Changed
package/README.md CHANGED
@@ -26,7 +26,8 @@ Any MCP host works — the server speaks JSON-RPC over stdio.
26
26
 
27
27
  ## Tools
28
28
 
29
- - `list_voices` — voice catalog. Free, spends no credits.
29
+ - `list_voices` — voices for `voice`: the presets and the catalog, with
30
+ filters by language, gender, age, use case and model. Free, spends no credits.
30
31
  - `list_actors` — ready-made faces with stable ids and verified formats. Free.
31
32
  - `quote_ugc` — estimated duration and price, plus a warning when `make_ugc`
32
33
  with the same input would be refused for money or access. Free.
package/SKILL.md CHANGED
@@ -391,10 +391,10 @@ reaches a terminal state. Do not tell the user the video is ready until you have
391
391
 
392
392
  Two mutually exclusive optional fields in the `make_ugc` input:
393
393
 
394
- - `voice` — the name of a **curated preset**. **The recommended path.** The list
395
- comes from the free `list_voices` tool: `owner_ru_clone`, `sarah`, `george`,
396
- `eric`, `daria_ru_female`. Validated at the boundary: an unknown name returns
397
- 400 immediately and no paid call is made.
394
+ - `voice` — the `name` of a voice from the free `list_voices` tool: one of the
395
+ presets (`owner_ru_clone`, `sarah`, `george`, `eric`, `daria_ru_female`) or a
396
+ catalog voice. **The recommended path.** Validated at the boundary: an unknown
397
+ or retired name returns 400 immediately and no paid call is made.
398
398
  - `voice_id` — a **raw ElevenLabs id** (20 characters), an escape hatch for voices
399
399
  OUTSIDE the catalog, cloned ones included. It is checked for free against the
400
400
  account at the start of the run (not during `quote`): a non-existent id fails the
@@ -475,23 +475,42 @@ Pass `actor_id` to both `quote_ugc` and `make_ugc`. It cannot be combined with
475
475
  work; it never substitutes the default face. Existing runs retain the selected
476
476
  version and image hash even if the catalog changes later.
477
477
 
478
- ### `list_voices` — free, no input
478
+ ### `list_voices` — free, optional filters
479
479
 
480
- Returns the curated preset catalog for the `voice` field of `make_ugc`
481
- (`inputSchema: {}` — it takes no arguments). Costs nothing and creates no run.
480
+ Returns the voices for the `voice` field of `make_ugc`: the presets first, then
481
+ the catalog voices, by language and then by rank. Costs nothing and creates no run.
482
+
483
+ All filters are optional:
484
+
485
+ - `language` — the voice's native language. It is a filter, not a limit: any
486
+ voice speaks any supported language.
487
+ - `gender` — `female` or `male`.
488
+ - `age` and `use_case` — labels as the entries print them, such as `young` or
489
+ `narrative_story`.
490
+ - `model` — keeps the voices whose language that speech model supports.
491
+
492
+ A voice without a label matches no value of that filter. An unknown value is
493
+ refused with the allowed values, and an unknown filter name with
494
+ `unknown_field`; neither returns an empty list.
495
+
496
+ Each entry carries `name`, `kind` (`preset` or `catalog`), `language`,
497
+ `description`, `model` (its default speech model) and `supported_models`. A
498
+ catalog voice also carries `verified_models` and whichever of `locale`,
499
+ `accent`, `gender`, `age` and `use_case` the catalog has. The top-level `models`
500
+ lists each speech model with its `char_limit` and languages.
482
501
 
483
502
  There is still a network call: the tool hits OUR `/v1/voices` and needs a working
484
- `CLIPWRIGHT_API_KEY`, like the other three. Nobody calls the vendor — the presets
485
- live in `packages/core/src/voices.ts` and the samples in our own bucket, so this
486
- surface needs no vendor key.
503
+ `CLIPWRIGHT_API_KEY`, like the other three. Nobody calls the vendor — the list
504
+ lives in `@clipwright/core` and the samples in our own bucket, so this surface
505
+ needs no vendor key.
487
506
 
488
- Call it before `make_ugc` when the user asks for "a different voice": a preset
489
- name is preferable to a raw `voice_id`, because a preset survives a change of
507
+ Call it before `make_ugc` when the user asks for "a different voice": a voice
508
+ name is preferable to a raw `voice_id`, because a name survives a change of
490
509
  vendor and an identifier does not.
491
510
 
492
- **Let the user HEAR the voice before paying for it.** Every entry carries
511
+ **Let the user HEAR the voice before paying for it.** A preset carries
493
512
  `preview_url`: a short sample spoken by that voice with that voice's own model,
494
- so it matches what the render will sound like. Descriptions convey neither
513
+ so it matches what the render will sound like. Catalog voices have no sample yet. Descriptions convey neither
495
514
  diction nor accent nor pace; the owner caught a voice-face mismatch by ear, on a
496
515
  finished clip. Offer the sample whenever the user asks for a different voice.
497
516
 
package/dist/server.js CHANGED
@@ -8,7 +8,7 @@ import { z } from "zod";
8
8
  // `rejected` не должны предлагаться вызывателю, которого мы за их использование
9
9
  // накажем четырёхсотым (блокер B4). Множество выводится из реестра диспозиций,
10
10
  // поэтому смена решения по полю переносит его между поверхностями одной строкой.
11
- import { offeredUgcInputShape, SCRIPT_LENGTH_DESCRIPTION, agentRetryShape, runId, MAKE_UGC_DESCRIPTION, MAKE_UGC_AGENT_PROTOCOL, UPLOAD_IMAGE_DESCRIPTION, UPLOAD_MAX_BYTES, sniffUploadMediaType, } from "@clipwright/core";
11
+ import { offeredUgcInputShape, CATALOG_LANGUAGES, SCRIPT_LENGTH_DESCRIPTION, voicesQueryShape, agentRetryShape, runId, MAKE_UGC_DESCRIPTION, MAKE_UGC_AGENT_PROTOCOL, UPLOAD_IMAGE_DESCRIPTION, UPLOAD_MAX_BYTES, sniffUploadMediaType, } from "@clipwright/core";
12
12
  import { formatGetRun, withFailureReport } from "./format.js";
13
13
  // Версия — из манифеста: литерал расходился с ним молча, а импорт JSON не проходит `rootDir`.
14
14
  const packageVersion = () => createRequire(import.meta.url)("../package.json").version;
@@ -95,21 +95,20 @@ export function createServer(client) {
95
95
  };
96
96
  }));
97
97
  server.registerTool("list_voices", {
98
- description: "List the curated voice catalog available for make_ugc's `voice` field. Presets are the " +
99
- "RECOMMENDED path: pick one by name (e.g. voice=\"george\"). `voice_id` is an escape hatch for " +
100
- "voices OUTSIDE this catalog, including cloned voices — pass a raw vendor voice id there instead " +
101
- "of `voice`. The current avatar already has a matched default voice; do NOT change it unless the " +
102
- "user explicitly asks for a different one. This catalog is CURATED BY DESIGN, not the vendor's " +
103
- "full voice list: the paid vendor's full catalog is intentionally not proxied here, so its API " +
104
- "key does not need to leave the worker process. Each voice carries `preview_url` — a short-lived " +
105
- "audio sample spoken by that voice with that model; play it to the user before a paid render " +
106
- "instead of judging a voice by its description. It expires at `preview_expires_at`: call this " +
107
- "tool again for a fresh link, never store it. " + SCRIPT_LENGTH_DESCRIPTION,
108
- inputSchema: {},
109
- }, async () => withFailureReport(async () => {
110
- // Каталог статический (US-513 core), тула лишь ретранслирует /v1/voices —
111
- // без сети к вендору, без ключа вендора на этой поверхности (§5).
112
- const voices = await client.listVoices();
98
+ description: "List the voices for make_ugc's `voice` field: the presets first, then catalog voices in " +
99
+ `${CATALOG_LANGUAGES.length} languages. Filter by \`language\` (the voice's native language; any voice ` +
100
+ "speaks any supported language), `gender`, `age`, `use_case` and `model`; an unknown filter value is " +
101
+ "refused with the allowed values. Pick a voice by `name` (e.g. voice=\"george\"); a name always means " +
102
+ "the same voice. `voice_id` is an escape hatch for a raw vendor voice id that is not listed, such as a " +
103
+ "cloned voice. The current avatar already has a matched default voice; do NOT change it unless the " +
104
+ "user explicitly asks for a different one. A voice with `preview_url` has a short-lived audio sample " +
105
+ "spoken by that voice with that model; play it to the user before a paid render instead of judging a " +
106
+ "voice by its description. It expires at `preview_expires_at`: call this tool again for a fresh link, " +
107
+ "never store it. A voice without `preview_url` has no sample yet. Free. " + SCRIPT_LENGTH_DESCRIPTION,
108
+ inputSchema: voicesQueryShape,
109
+ }, async (filters) => withFailureReport(async () => {
110
+ // Тула ретранслирует /v1/voices: без сети к вендору и без его ключа на этой поверхности.
111
+ const voices = await client.listVoices(filters);
113
112
  return { content: [{ type: "text", text: JSON.stringify({ voices }) }] };
114
113
  }));
115
114
  server.registerTool("list_actors", {
@@ -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.12.0",
3
+ "version": "0.14.0",
4
4
  "description": "MCP server for Clipwright: generate UGC videos from your coding agent",
5
5
  "keywords": [
6
6
  "mcp",
@@ -29,8 +29,8 @@
29
29
  "dependencies": {
30
30
  "@modelcontextprotocol/sdk": "^1.29.0",
31
31
  "zod": "^4.4.3",
32
- "@clipwright/core": "0.12.0",
33
- "@clipwright/sdk": "0.12.0"
32
+ "@clipwright/core": "0.14.0",
33
+ "@clipwright/sdk": "0.14.0"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/node": "^26.1.1"