@post-ripple/mcp 0.5.0 → 0.6.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 +6 -5
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -45,7 +45,7 @@ function toEpochMs(value, field) {
|
|
|
45
45
|
}
|
|
46
46
|
return parsed;
|
|
47
47
|
}
|
|
48
|
-
const server = new McpServer({ name: "postripple", version: "0.
|
|
48
|
+
const server = new McpServer({ name: "postripple", version: "0.6.0" });
|
|
49
49
|
function register(name, description, shape, transform) {
|
|
50
50
|
server.tool(name, description, shape, async (args) => {
|
|
51
51
|
try {
|
|
@@ -184,19 +184,20 @@ register("list_videos", "List videos in the workspace library, newest first. Vid
|
|
|
184
184
|
});
|
|
185
185
|
register("list_video_groups", "List video groups (rotation playlists that auto-post on a schedule) with video/account counts and status.", { ...orgParam });
|
|
186
186
|
register("get_video_group", "Get one video group in detail: its videos and the per-account posting rules (posts per day, posting windows, next scheduled post).", { ...orgParam, groupId: z.string() });
|
|
187
|
-
register("list_images", "List
|
|
187
|
+
register("list_images", "List or search the workspace's image library. Every image ever uploaded, imported, or generated lives here until deleted, and each is auto-captioned + tagged by AI on ingest — CHECK THIS BEFORE generating or re-uploading images; reusing an existing image is free and instant. Passing `text` runs hybrid SEMANTIC search (natural-language meaning + keyword), so 'cozy sunlit gym' finds matching photos even if those words aren't in the metadata — describe what you want. Without `text`, it lists newest-first and honors tags/source filters. Each result has an imageId (pass to create_slideshow slides), raw fileId, a signed preview url (~1h), and title/description/tags/aiCaption/prompt metadata.", {
|
|
188
188
|
...orgParam,
|
|
189
189
|
text: z
|
|
190
190
|
.string()
|
|
191
191
|
.optional()
|
|
192
|
-
.describe("
|
|
192
|
+
.describe("Natural-language / keyword query — runs hybrid semantic search over the image's caption, tags, description, and prompt. When set, tags/source filters are ignored."),
|
|
193
193
|
tags: z
|
|
194
194
|
.array(z.string())
|
|
195
195
|
.optional()
|
|
196
|
-
.describe("Only images carrying ALL of these tags"),
|
|
196
|
+
.describe("Only images carrying ALL of these tags (ignored when text is set)"),
|
|
197
197
|
source: z
|
|
198
198
|
.enum(["upload", "agent_upload", "agent_import", "generated"])
|
|
199
|
-
.optional()
|
|
199
|
+
.optional()
|
|
200
|
+
.describe("Filter by origin (ignored when text is set)"),
|
|
200
201
|
limit: z.number().min(1).max(200).optional().describe("Default 100, max 200"),
|
|
201
202
|
});
|
|
202
203
|
register("list_slideshows", "List photo-carousel slideshows with status ('draft' = still being composed, 'ready' = publishable) and a signed coverUrl thumbnail (first rendered slide, or a background for drafts).", { ...orgParam, limit: z.number().min(1).max(200).optional() });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@post-ripple/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.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": {
|