@starreel/mcp 0.1.20 → 0.1.22
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/SKILL.md +20 -0
- package/dist/tools/produce.js +9 -0
- package/package.json +1 -1
package/SKILL.md
CHANGED
|
@@ -49,6 +49,26 @@ big-ticket image/video stages (portraits, storyboards, frames, videos,
|
|
|
49
49
|
scene-images) carry a `quote_*`; the other metered steps have no quote and bill
|
|
50
50
|
by usage — 402 mid-run if the balance can't cover them (never overdraft).
|
|
51
51
|
|
|
52
|
+
## Execution tiers — when to just do it vs. when to ask
|
|
53
|
+
|
|
54
|
+
Don't ask the user at every step. Sort work into three tiers:
|
|
55
|
+
|
|
56
|
+
1. **Project settings — free; do them first; don't ask.** `project_type`,
|
|
57
|
+
`setting_brief` (worldview / ERA LOCK), `ethnicity`, aspect & resolution, and
|
|
58
|
+
the consistency anchors (`cinematography_prompt`, `art_bible`, `visual_lock`,
|
|
59
|
+
`video_style_prompt`) are all free and the foundation that steers every later
|
|
60
|
+
generation. Set them up front via `create_drama` / `update_project_settings`
|
|
61
|
+
— don't build an empty shell, or all downstream generation drifts.
|
|
62
|
+
2. **Pipeline backbone — metered; in order; quote-then-confirm.** portraits →
|
|
63
|
+
frames → videos → TTS → compose. Spending stages follow the normal
|
|
64
|
+
quote → show the user → confirm flow (discipline 2).
|
|
65
|
+
3. **Optional boosts — metered; proactively offer them.** world concept,
|
|
66
|
+
art-bible generation, scene images, scene groups, lipsync, posters/covers,
|
|
67
|
+
SFX, BGM, subtitle translation. These lift consistency/quality but aren't
|
|
68
|
+
required to finish an episode. **Proactively tell the user they're available
|
|
69
|
+
and show a quote, then run on their OK** — neither silently skip them nor
|
|
70
|
+
auto-charge.
|
|
71
|
+
|
|
52
72
|
## The ten disciplines (hard rules)
|
|
53
73
|
|
|
54
74
|
These are not suggestions. Violating them wastes the user's money or produces
|
package/dist/tools/produce.js
CHANGED
|
@@ -166,6 +166,15 @@ export function registerProduceTools(server, client) {
|
|
|
166
166
|
'fail_reason(sensitive/text_sensitive/copyright/face_mismatch/account_overdue/quota_full/authorizing/' +
|
|
167
167
|
'insufficient_credits/transient)、retryable(true=可重试;false=改内容换图,重试无效)、fail_hint(人读文案)。' +
|
|
168
168
|
'照 retryable 判该重试还是该改内容,别解析中文。免费。', { episode_id: z.number().int().positive() }, async ({ episode_id }) => jsonResult(await client.produceGet(`/episodes/${episode_id}/storyboards`)));
|
|
169
|
+
// ---------- 分镜级 AI 操作:2 个免费质量闸 + 3 个 AI 增强(★都在出图前做)----------
|
|
170
|
+
server.tool('run_precheck', '(★推荐·免费质量闸)出图/出视频前跑生成前预检:查合规/敏感/就绪度,把会被厂商拒的镜提前揪出。免费、不扣费。' +
|
|
171
|
+
'强烈建议 generate_frames/generate_videos 前调,防白花钱被拒。', { episode_id: z.number().int().positive() }, async ({ episode_id }) => jsonResult(await client.produceGet(`/episodes/${episode_id}/precheck`)));
|
|
172
|
+
server.tool('get_health_report', '(★推荐·免费诊断)读分镜出体检报告:时长超标/母题覆盖不足/问题镜。纯读、免费。出图前查,识别问题先改再出、别出了片才发现。', { episode_id: z.number().int().positive() }, async ({ episode_id }) => jsonResult(await client.produceGet(`/episodes/${episode_id}/health-report`)));
|
|
173
|
+
server.tool('autofill_storyboards', '(推荐)AI 一键给全集分镜补全空缺字段,默认**只填空缺、不覆盖已有**(overwrite=true 才覆盖)。提升分镜完整性,出图前做。后台异步,文本步后付。', { episode_id: z.number().int().positive(), overwrite: z.boolean().optional().describe('true=覆盖已有字段(默认 false 只填空缺)') }, async ({ episode_id, overwrite }) => jsonResult(await client.producePost(`/episodes/${episode_id}/storyboards/autofill`, overwrite ? { overwrite } : {})));
|
|
174
|
+
server.tool('enhance_shot_prompts', '(可选增强·★非必须·有副作用)AI 批量增强全集 image_prompt。★会**改写已有 prompt**(含手调的);且**务必 generate_frames 之前**做——' +
|
|
175
|
+
'出图后再改 prompt 会让图陈旧、要重生浪费钱。非跑通一部片的必需,客户点名再做。后台异步,文本步后付。', { episode_id: z.number().int().positive() }, async ({ episode_id }) => jsonResult(await client.producePost(`/episodes/${episode_id}/storyboards/enhance-prompts`)));
|
|
176
|
+
server.tool('complete_ending_motifs', '(可选增强·★非必须·条件性)给结尾段补全缺失的视觉母题(嫁接视觉回响到结尾镜)。' +
|
|
177
|
+
'★前置:该剧已设 motifs(没设=空操作);会**改结尾镜 action/描述**,务必出图前做(否则结尾镜已出图会陈旧)。后台异步,文本步后付。', { episode_id: z.number().int().positive() }, async ({ episode_id }) => jsonResult(await client.producePost(`/episodes/${episode_id}/storyboards/complete-motifs`)));
|
|
169
178
|
// ---------- 出首帧(frames) ----------
|
|
170
179
|
server.tool('quote_frames', '报价:给某一集批量出帧要多少点。返回 frames_to_generate、estimated_points、quote_id。零扣费。' +
|
|
171
180
|
'frame_type 默认 first_frame(只给缺首帧的镜出);last_frame 只给「已有首帧且缺尾帧」的镜出;both 两者都补。', {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@starreel/mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.22",
|
|
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",
|