@facelessad/mcp 2.1.0 → 2.1.1
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 +1 -1
- package/index.js +2 -2
- package/package.json +1 -1
package/SKILL.md
CHANGED
|
@@ -165,7 +165,7 @@ Video Banner is a silent loop: no voice, no script, no music, no SFX.
|
|
|
165
165
|
|
|
166
166
|
`voiceover_text` makes the narration spoken **word-for-word** — the AI script
|
|
167
167
|
writer is skipped and not charged. The word limit follows the duration: 15 s
|
|
168
|
-
fits ~
|
|
168
|
+
fits ~45 words, 30 s ~80, 50 s ~130. Over the limit is a clear error, never a
|
|
169
169
|
silent trim, so count before sending. Not on music-video (its script is sung)
|
|
170
170
|
or video-banner.
|
|
171
171
|
|
package/index.js
CHANGED
|
@@ -200,7 +200,7 @@ const createShape = {
|
|
|
200
200
|
badge: z.enum(['none', 'random_face']).optional().describe('video-banner only: "random_face" picks the same AI face the app offers. Ignored when badge_image_url is set.'),
|
|
201
201
|
photo_query: z.string().optional().describe('video-banner only: steer the automatic background photo search, e.g. "nordic office"'),
|
|
202
202
|
// 1.4.0 (§799): oma käsikirjoitus + visuaalinen ohjaus.
|
|
203
|
-
voiceover_text: z.string().optional().describe('Your own voice-over, spoken WORD-FOR-WORD — the AI script writer is skipped entirely (and not charged). Word limit follows duration: 15s fits
|
|
203
|
+
voiceover_text: z.string().optional().describe('Your own voice-over, spoken WORD-FOR-WORD — the AI script writer is skipped entirely (and not charged). Word limit follows duration: 15s fits 45 words, 30s fits 80, 50s fits 130; over the limit is an error, never a silent trim. Single narrator only; not on music-video (its script is sung lyrics) or video-banner (no narration).'),
|
|
204
204
|
visual_direction: z.string().optional().describe('How the video should LOOK and what happens visually (max 600 chars): setting, emotional arc, recurring motif, when the product appears. Steers the storyboard — the art style still comes from style/custom_style.'),
|
|
205
205
|
hook_text: z.string().optional().describe('Your own first-frame hook card text, used as-is (max 120 chars). Omitted, it is derived from the script.'),
|
|
206
206
|
// 1.5.0 (§806): tekstitysten ulkoasu.
|
|
@@ -226,7 +226,7 @@ server.tool(
|
|
|
226
226
|
|
|
227
227
|
server.tool(
|
|
228
228
|
'facelessad_get_video',
|
|
229
|
-
'Status of one video by id. When finished, includes a download URL valid ~
|
|
229
|
+
'Status of one video by id. When finished, includes a download URL valid ~24 hours — call again for a fresh one rather than storing it.',
|
|
230
230
|
{ id: z.union([z.string(), z.number()]).describe('The id returned by facelessad_create_video') },
|
|
231
231
|
async ({ id }) => result(await api('GET', '/api/v1/videos/' + encodeURIComponent(String(id))))
|
|
232
232
|
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@facelessad/mcp",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "FacelessAd as MCP tools \u2014 let your AI assistant create faceless video ads (Claude Desktop, Claude Code, Cursor, Windsurf, OpenClaw).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|