@productmaker/mcp 2.4.0 → 2.9.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/README.md +35 -2
- package/dist/http.js +1386 -680
- package/dist/stdio.js +1386 -680
- package/dist/ui/meta-upload-app.html +2805 -0
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -85,10 +85,13 @@ Sign up at [productmaker.app](https://productmaker.app) and create a key (prefix
|
|
|
85
85
|
| `list_shopify_shops` | List connected Shopify stores |
|
|
86
86
|
| `list_shopify_products` | Search products in a connected Shopify store before choosing `targetProductId` for `publish_to_shopify` |
|
|
87
87
|
| `list_meta_ad_accounts` | List connected Meta ad accounts |
|
|
88
|
+
| `list_meta_destinations` | List Meta Business portfolios, ad accounts per portfolio, and Facebook Pages; use the returned IDs to choose the exact publication destination |
|
|
89
|
+
| `request_meta_media_upload` | Start secure staging for up to ten mixed image/video files from the user's laptop; accepts an optional `maxFiles` limit, ChatGPT can pass optional top-level `files` references from the same message into the inline App bridge, other MCP App hosts use the inline picker, and the external ProductMaker page remains fallback only |
|
|
90
|
+
| `check_meta_media_upload` | Check whether the user finished the browser upload and return every owner-scoped staged asset with its media kind |
|
|
88
91
|
| `list_tiktok_advertisers` | List connected TikTok Ads advertiser accounts |
|
|
89
92
|
| `publish_to_shopify` | Publish a completed task to a Shopify store (returns markdown with landing + product URLs) |
|
|
90
|
-
| `publish_to_meta` | Create a Meta Ads campaign from a task (always
|
|
91
|
-
| `publish_creatives_to_meta` | Group creatives
|
|
93
|
+
| `publish_to_meta` | Create a Meta Ads campaign from a task (always PAUSED) after selecting exact `portfolioId`, `adAccountId`, and `pageId` with `list_meta_destinations` |
|
|
94
|
+
| `publish_creatives_to_meta` | Group task creatives or user media into ONE paused Meta campaign; user media is staged on ProductMaker's CDN and removed after successful publication or TTL expiry |
|
|
92
95
|
| `publish_to_tiktok` | Create a TikTok Ads campaign from a task (always created PAUSED). Same `angleIndexes` + `campaignConfig` shape as Meta |
|
|
93
96
|
| `get_meta_campaign_status` | Read-only status + lifetime insights (spend/impressions/clicks/reach) of a Meta campaign |
|
|
94
97
|
| `get_tiktok_campaign_status` | Read-only status + lifetime report of a TikTok campaign (requires `advertiserId`) |
|
|
@@ -100,6 +103,36 @@ Sign up at [productmaker.app](https://productmaker.app) and create a key (prefix
|
|
|
100
103
|
| `guide_dropshipping_launch` | Read-only launch guidance: the project's phase and the single computed `nextAction`. Never activates Meta |
|
|
101
104
|
| `list_actors` | List the user's saved personajes (AI-generated people who can star in videos and images). Returns the `id` to pass as `actorId`. Read-only, free |
|
|
102
105
|
|
|
106
|
+
### Uploading personal media from a remote chat
|
|
107
|
+
|
|
108
|
+
When a user says “sube estos archivos de mi Desktop a Meta”, the hosted MCP
|
|
109
|
+
cannot open the laptop filesystem directly. Call `request_meta_media_upload`
|
|
110
|
+
with its default `mediaKind: "mixed"`. The primary path is the inline MCP App:
|
|
111
|
+
in ChatGPT, the same user message may contribute top-level `files` references;
|
|
112
|
+
in other MCP App hosts, the user can still pick the files from the inline
|
|
113
|
+
widget. The inline device picker sends `File` objects directly to ProductMaker's
|
|
114
|
+
private staging CDN; it does not upload them to the host first. ProductMaker
|
|
115
|
+
treats any `files` references only as UI bridge metadata:
|
|
116
|
+
it never downloads those URLs itself, never forwards them to the API, and never
|
|
117
|
+
asks the user for a CDN URL, local path, bytes, or base64.
|
|
118
|
+
|
|
119
|
+
If the host lacks the bridge/picker capabilities, fall back to the external
|
|
120
|
+
ProductMaker upload page returned by the tool. Once the user finishes staging,
|
|
121
|
+
call `check_meta_media_upload` with the returned `sessionId`. For every
|
|
122
|
+
reported entry in `assets[]`, use its `mediaKind` as the creative `type` and
|
|
123
|
+
its `stagingAssetId` as:
|
|
124
|
+
|
|
125
|
+
```json
|
|
126
|
+
{ "type": "staged", "stagingAssetId": "..." }
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
inside `publish_creatives_to_meta`. A partial batch may include only the assets
|
|
130
|
+
that `assets[]` actually reports as uploaded. The browser uploads directly to
|
|
131
|
+
the presigned CDN object; the chat never receives file bytes, base64, or a
|
|
132
|
+
local path, and ProductMaker deletes the staging object after a successful
|
|
133
|
+
paused Meta publication (or via the 24-hour TTL cleanup if the flow is
|
|
134
|
+
abandoned).
|
|
135
|
+
|
|
103
136
|
## Video duration and winner review
|
|
104
137
|
|
|
105
138
|
`create_product_task` and `generate_video_creative` accept `durationSeconds`:
|