@productmaker/mcp 1.13.0 → 1.14.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/README.md CHANGED
@@ -78,6 +78,7 @@ Sign up at [productmaker.app](https://productmaker.app) and create a key (prefix
78
78
  | `regenerate_video_script` | Re-roll the pending video script (optionally with a different narrative style) |
79
79
  | `resolve_pending_action` | Resolve a gate the pipeline is waiting on (product-reference confirmation or angle-review approval) when `get_task_status` returns `pendingUserAction` |
80
80
  | `list_shopify_shops` | List connected Shopify stores |
81
+ | `list_shopify_products` | Search products in a connected Shopify store before choosing `targetProductId` for `publish_to_shopify` |
81
82
  | `list_meta_ad_accounts` | List connected Meta ad accounts |
82
83
  | `list_tiktok_advertisers` | List connected TikTok Ads advertiser accounts |
83
84
  | `publish_to_shopify` | Publish a completed task to a Shopify store (returns markdown with landing + product URLs) |
package/dist/http.js CHANGED
@@ -113,7 +113,7 @@ var ApiClient = class {
113
113
  };
114
114
 
115
115
  // src/index.ts
116
- var MCP_VERSION = "1.13.0";
116
+ var MCP_VERSION = "1.14.0";
117
117
 
118
118
  // src/tools/tasks.ts
119
119
  import { z as z2 } from "zod";
@@ -1695,6 +1695,23 @@ function registerConnectionTools(server, api) {
1695
1695
  throw translateError(e);
1696
1696
  }
1697
1697
  });
1698
+ server.tool("list_shopify_products", 'Busca productos en una tienda Shopify conectada para elegir el target de una republicaci\xF3n. Usa el `id` devuelto junto con `publicationMode="existing"` en `publish_to_shopify`. Si `taskId` se proporciona, la respuesta tambi\xE9n indica el producto publicado actualmente para esa tarea y tienda. No modifica Shopify.', z5.object({
1699
+ shopDomain: z5.string().min(3).max(120),
1700
+ query: z5.string().trim().max(120).optional(),
1701
+ taskId: z5.string().uuid().optional()
1702
+ }).shape, async ({ shopDomain, query, taskId }) => {
1703
+ try {
1704
+ const params = new URLSearchParams({
1705
+ shopDomain
1706
+ });
1707
+ if (query) params.set("query", query);
1708
+ if (taskId) params.set("taskId", taskId);
1709
+ const r = await api.getJson(`/v1/shopify/products?${params.toString()}`);
1710
+ return asText(r);
1711
+ } catch (e) {
1712
+ throw translateError(e);
1713
+ }
1714
+ });
1698
1715
  server.tool("list_meta_ad_accounts", "Lista las cuentas publicitarias de Meta conectadas. Si est\xE1 vac\xEDa, ind\xEDcale al usuario conectar Meta en productmaker.app/integrations.", z5.object({}).shape, async () => {
1699
1716
  try {
1700
1717
  const r = await api.getJson("/v1/facebook/ad-accounts");
package/dist/stdio.js CHANGED
@@ -110,7 +110,7 @@ var ApiClient = class {
110
110
  };
111
111
 
112
112
  // src/index.ts
113
- var MCP_VERSION = "1.13.0";
113
+ var MCP_VERSION = "1.14.0";
114
114
 
115
115
  // src/tools/tasks.ts
116
116
  import { z as z2 } from "zod";
@@ -1651,6 +1651,23 @@ function registerConnectionTools(server, api) {
1651
1651
  throw translateError(e);
1652
1652
  }
1653
1653
  });
1654
+ server.tool("list_shopify_products", 'Busca productos en una tienda Shopify conectada para elegir el target de una republicaci\xF3n. Usa el `id` devuelto junto con `publicationMode="existing"` en `publish_to_shopify`. Si `taskId` se proporciona, la respuesta tambi\xE9n indica el producto publicado actualmente para esa tarea y tienda. No modifica Shopify.', z5.object({
1655
+ shopDomain: z5.string().min(3).max(120),
1656
+ query: z5.string().trim().max(120).optional(),
1657
+ taskId: z5.string().uuid().optional()
1658
+ }).shape, async ({ shopDomain, query, taskId }) => {
1659
+ try {
1660
+ const params = new URLSearchParams({
1661
+ shopDomain
1662
+ });
1663
+ if (query) params.set("query", query);
1664
+ if (taskId) params.set("taskId", taskId);
1665
+ const r = await api.getJson(`/v1/shopify/products?${params.toString()}`);
1666
+ return asText(r);
1667
+ } catch (e) {
1668
+ throw translateError(e);
1669
+ }
1670
+ });
1654
1671
  server.tool("list_meta_ad_accounts", "Lista las cuentas publicitarias de Meta conectadas. Si est\xE1 vac\xEDa, ind\xEDcale al usuario conectar Meta en productmaker.app/integrations.", z5.object({}).shape, async () => {
1655
1672
  try {
1656
1673
  const r = await api.getJson("/v1/facebook/ad-accounts");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@productmaker/mcp",
3
- "version": "1.13.0",
3
+ "version": "1.14.0",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "description": "Product Maker MCP server — cost products, generate dropshipping landing pages, UGC videos, and ad creatives, and publish to Shopify and Meta Ads from Claude, ChatGPT, or Gemini.",
@@ -63,8 +63,8 @@
63
63
  "tsx": "^4.16.0",
64
64
  "typescript": "^7.0.2",
65
65
  "vitest": "^2.1.9",
66
- "@packages/product-economics": "0.1.0",
67
- "@packages/types": "0.1.0"
66
+ "@packages/types": "0.1.0",
67
+ "@packages/product-economics": "0.1.0"
68
68
  },
69
69
  "publishConfig": {
70
70
  "access": "public"