@starreel/mcp 0.1.9 → 0.1.10
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/dist/tools/produce.js +19 -0
- package/package.json +1 -1
- package/server.json +2 -2
package/dist/tools/produce.js
CHANGED
|
@@ -314,4 +314,23 @@ export function registerProduceTools(server, client) {
|
|
|
314
314
|
image_url: z.string().optional().describe('商品图 URL(先 upload_image 拿)'),
|
|
315
315
|
}, async ({ drama_id, ...fields }) => jsonResult(await client.producePost(`/dramas/${drama_id}/products`, fields)));
|
|
316
316
|
server.tool('list_products', '广告项目:列出商品库。免费。', { drama_id: z.number().int().positive() }, async ({ drama_id }) => jsonResult(await client.produceGet(`/dramas/${drama_id}/products`)));
|
|
317
|
+
// ========== AI 声音克隆(voice cloning)==========
|
|
318
|
+
server.tool('clone_voice', '从一段**已授权**的音频样本克隆音色,存入你的音色库,返回音色 id。' +
|
|
319
|
+
'⚠️ 样本必须是本人/持权人**同意授权**的声音(否则侵权,与真人/版权门同理)。' +
|
|
320
|
+
'按平台价计费(每个音色一口价);失败自动退款。之后 set_character_voice 绑到角色,generate_tts 即用它配音。', {
|
|
321
|
+
name: z.string().min(1).describe('音色命名(便于管理)'),
|
|
322
|
+
sample_file_path: z.string().optional().describe('本地授权音频样本路径(mp3/wav/m4a,自动上传;与 sample_url 二选一)'),
|
|
323
|
+
sample_url: z.string().optional().describe('已上传到 COS 的样本 URL(与 sample_file_path 二选一)'),
|
|
324
|
+
notes: z.string().optional().describe('备注(可选)'),
|
|
325
|
+
}, async ({ name, sample_file_path, sample_url, notes }) => {
|
|
326
|
+
let url = sample_url;
|
|
327
|
+
if (!url && sample_file_path)
|
|
328
|
+
url = await client.uploadLocalFile(sample_file_path, 'audio');
|
|
329
|
+
if (!url)
|
|
330
|
+
throw new Error('需要 sample_file_path(本地样本自动上传)或 sample_url(已上传的 URL)');
|
|
331
|
+
return jsonResult(await client.producePost('/voice-clones', notes ? { name, sample_url: url, notes } : { name, sample_url: url }));
|
|
332
|
+
});
|
|
333
|
+
server.tool('list_voices', '列出我音色库里的克隆音色(id/名字/状态)。免费。', {}, async () => jsonResult(await client.produceGet('/voice-clones')));
|
|
334
|
+
server.tool('delete_voice', '删除音色库里的一个克隆音色。免费。', { voice_clone_id: z.number().int().positive() }, async ({ voice_clone_id }) => jsonResult(await client.produceDelete(`/voice-clones/${voice_clone_id}`)));
|
|
335
|
+
server.tool('set_character_voice', '把克隆音色绑到某角色(voice_clone_id 来自 clone_voice/list_voices)。绑定后 generate_tts 用它给该角色配音。免费。', { character_id: z.number().int().positive(), voice_clone_id: z.number().int().positive().describe('音色库 id') }, async ({ character_id, voice_clone_id }) => jsonResult(await client.producePost(`/characters/${character_id}/voice`, { library_id: voice_clone_id })));
|
|
317
336
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@starreel/mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.10",
|
|
4
4
|
"mcpName": "ai.starreel/starreel",
|
|
5
5
|
"description": "StarReel MCP server — drive the AI short-drama production pipeline (script → storyboards → frames → video → final cut) from Claude, Cursor, or any MCP client",
|
|
6
6
|
"license": "MIT",
|
package/server.json
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json",
|
|
3
3
|
"name": "ai.starreel/starreel",
|
|
4
4
|
"description": "Turn a script into a finished, downloadable short-drama episode — via MCP or REST.",
|
|
5
|
-
"version": "0.1.
|
|
5
|
+
"version": "0.1.10",
|
|
6
6
|
"websiteUrl": "https://starreel.ai",
|
|
7
7
|
"packages": [
|
|
8
8
|
{
|
|
9
9
|
"registryType": "npm",
|
|
10
10
|
"identifier": "@starreel/mcp",
|
|
11
|
-
"version": "0.1.
|
|
11
|
+
"version": "0.1.10",
|
|
12
12
|
"transport": { "type": "stdio" },
|
|
13
13
|
"environmentVariables": [
|
|
14
14
|
{
|