@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.
Files changed (3) hide show
  1. package/SKILL.md +1 -1
  2. package/index.js +2 -2
  3. 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 ~40 words, 30 s ~60, 50 s ~95. Over the limit is a clear error, never a
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 40 words, 30s fits 60, 50s fits 95; 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).'),
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 ~1 hour — call again for a fresh one rather than storing it.',
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.0",
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",