@post-ripple/mcp 0.11.0 → 0.12.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/dist/index.js +19 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -352,7 +352,19 @@ const captionStyleSchema = z
|
|
|
352
352
|
y: z.number().min(0).max(1).optional(),
|
|
353
353
|
})
|
|
354
354
|
.describe("Caption styling; defaults to white TikTok-bold text with a black outline");
|
|
355
|
-
|
|
355
|
+
const clipTrimSchema = z.object({
|
|
356
|
+
startMs: z
|
|
357
|
+
.number()
|
|
358
|
+
.min(0)
|
|
359
|
+
.optional()
|
|
360
|
+
.describe("In-point, ms into the source clip (omit = clip start)"),
|
|
361
|
+
endMs: z
|
|
362
|
+
.number()
|
|
363
|
+
.positive()
|
|
364
|
+
.optional()
|
|
365
|
+
.describe("Out-point, ms into the source clip (omit = clip end)"),
|
|
366
|
+
});
|
|
367
|
+
register("create_video", "Render a short-form (9:16) video from library ingredients. Two types: 'hook_demo' takes a hook clip (list_hooks) and either stitches it in front of your demo/product video (a completed library video via demoVideoId, or a raw upload via demoFileId from get_video_upload_url) or — when BOTH demo params are omitted — renders the hook clip ALONE with the caption and/or hookTrim applied (at least one required in that mode; useful for posting a library clip with on-video text or a shortened cut). Both clips can be trimmed to a window of the source via hookTrim/demoTrim. Optional background music via musicId from list_music. 'green_screen_meme' composites a green-screen clip (list_green_screens) over a background image (list_backgrounds). Both take an optional caption with styling. Rendering is asynchronous — poll get_creation with the returned creationId until 'completed', then publish resultVideoId with schedule_post. Uses one 'creations' credit from the plan.", {
|
|
356
368
|
...orgParam,
|
|
357
369
|
type: z.enum(["hook_demo", "green_screen_meme"]),
|
|
358
370
|
title: z.string().optional().describe("Library title for the finished video"),
|
|
@@ -370,6 +382,12 @@ register("create_video", "Render a short-form (9:16) video from library ingredie
|
|
|
370
382
|
.describe("hook_demo: raw uploaded file key from get_video_upload_url (alternative to demoVideoId)"),
|
|
371
383
|
musicId: z.string().optional().describe("hook_demo: optional background track from list_music"),
|
|
372
384
|
soundId: z.string().optional().describe("hook_demo: optional org-uploaded sound id (alternative to musicId)"),
|
|
385
|
+
hookTrim: clipTrimSchema
|
|
386
|
+
.optional()
|
|
387
|
+
.describe("hook_demo: play only this window of the hook clip (ms into the source; clamped to the real clip length). list_hooks returns durationMs — e.g. last 4s of a 9s hook: {startMs: 5000}"),
|
|
388
|
+
demoTrim: clipTrimSchema
|
|
389
|
+
.optional()
|
|
390
|
+
.describe("hook_demo: play only this window of the demo clip (requires a demo)"),
|
|
373
391
|
greenScreenId: z.string().optional().describe("green_screen_meme: clip id from list_green_screens (required)"),
|
|
374
392
|
backgroundId: z.string().optional().describe("green_screen_meme: image id from list_backgrounds (required)"),
|
|
375
393
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@post-ripple/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "MCP server that lets AI agents (Claude Code, Codex, opencode) manage a Post Ripple workspace: content, scheduling, publishing, and analytics.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|