@post-ripple/mcp 0.13.0 → 0.15.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 +25 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -255,7 +255,14 @@ register("get_account_metrics", "Get follower/profile growth history (daily snap
|
|
|
255
255
|
.optional()
|
|
256
256
|
.describe("Max series points per account, default 50"),
|
|
257
257
|
});
|
|
258
|
-
register("get_engagement_summary", "Get an
|
|
258
|
+
register("get_engagement_summary", "Get an engagement overview for the last N days: totals, per-platform breakdown, top 5 posts by views, and a per-account breakdown (follower count + posts/views/likes/comments/shares in the window). Pass accountId to scope the whole summary — totals and top posts included — to one connected account. The best starting point for 'how is content performing?' or 'how is this account doing?'", {
|
|
259
|
+
...orgParam,
|
|
260
|
+
days: z.number().min(1).max(90).optional().describe("Window in days, default 30"),
|
|
261
|
+
accountId: z
|
|
262
|
+
.string()
|
|
263
|
+
.optional()
|
|
264
|
+
.describe("Scope the summary to one connected account (from list_social_accounts)"),
|
|
265
|
+
});
|
|
259
266
|
// ---- content:write tools ----
|
|
260
267
|
register("import_video_from_url", "Import a video into the library from a public URL (e.g. a TikTok/Instagram/YouTube link or a direct file URL). Download happens asynchronously — poll list_videos until its status is 'completed' before scheduling it.", {
|
|
261
268
|
...orgParam,
|
|
@@ -364,13 +371,16 @@ const clipTrimSchema = z.object({
|
|
|
364
371
|
.optional()
|
|
365
372
|
.describe("Out-point, ms into the source clip (omit = clip end)"),
|
|
366
373
|
});
|
|
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
|
|
374
|
+
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 via hookTrim/demoTrim, and captionWindow selects exactly when text is visible on the final video (including the whole video). 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.", {
|
|
368
375
|
...orgParam,
|
|
369
376
|
type: z.enum(["hook_demo", "green_screen_meme"]),
|
|
370
377
|
title: z.string().optional().describe("Library title for the finished video"),
|
|
371
|
-
caption: z.string().optional().describe("Text overlaid on the video
|
|
378
|
+
caption: z.string().optional().describe("Text overlaid on the video. For hook_demo, captionWindow controls when it is visible; omitting captionWindow preserves hook-only visibility."),
|
|
372
379
|
captionPosition: z.enum(["top", "middle", "bottom"]).optional(),
|
|
373
380
|
captionStyle: captionStyleSchema.optional(),
|
|
381
|
+
captionWindow: clipTrimSchema
|
|
382
|
+
.optional()
|
|
383
|
+
.describe("hook_demo: visibility window in ms on the FINAL stitched video timeline. Omit for legacy hook-only visibility; use {startMs: 0} for the whole video, or set both bounds for any interval."),
|
|
374
384
|
hookId: z.string().optional().describe("hook_demo: hook clip id from list_hooks (required)"),
|
|
375
385
|
demoVideoId: z
|
|
376
386
|
.string()
|
|
@@ -393,6 +403,18 @@ register("create_video", "Render a short-form (9:16) video from library ingredie
|
|
|
393
403
|
.min(0)
|
|
394
404
|
.optional()
|
|
395
405
|
.describe("hook_demo: start the background track this many ms in (default 0). The played length always equals the video's duration; clamped so the window fits the track."),
|
|
406
|
+
audioVolume: z
|
|
407
|
+
.number()
|
|
408
|
+
.min(0)
|
|
409
|
+
.max(1)
|
|
410
|
+
.optional()
|
|
411
|
+
.describe("hook_demo: mix level of the background track, 0..1 (default 0.3). Requires musicId/soundId."),
|
|
412
|
+
originalVolume: z
|
|
413
|
+
.number()
|
|
414
|
+
.min(0)
|
|
415
|
+
.max(1)
|
|
416
|
+
.optional()
|
|
417
|
+
.describe("hook_demo: mix level of the clips' own audio, 0..1 (default 1). Use 0 to replace the original sound with the background track entirely."),
|
|
396
418
|
greenScreenId: z.string().optional().describe("green_screen_meme: clip id from list_green_screens (required)"),
|
|
397
419
|
backgroundId: z.string().optional().describe("green_screen_meme: image id from list_backgrounds (required)"),
|
|
398
420
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@post-ripple/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.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": {
|