FD Combined Listings & Variant has an Admin API and an MCP server. Use them to create and update product groups from your PIM, a nightly script, a migration, or an AI client like Claude or Cursor.
Writes publish right away. When the API answers 201, the group is already live on your storefront.
API access is turned on per store. Open the chat in the app and ask us. Then create a token in the app under Settings → Admin API token.
| Action | Endpoint | MCP tool |
|---|---|---|
| List product groups | GET /api/v1/product-groups | ListProductGroups |
| Get a product group | GET /api/v1/product-groups/{id} | GetProductGroup |
| Create a product group | POST /api/v1/product-groups | CreateProductGroup |
| Update a product group | PUT /api/v1/product-groups/{id} | UpdateProductGroup |
| List swatch templates | GET /api/v1/product-group-templates | ListProductGroupTemplates |
| Update a swatch template | PUT /api/v1/product-group-templates/{id} | UpdateProductGroupTemplate |
Full reference, with a "Try it out" button: https://fd-product-groups-app.fly.dev/api/v1/docs
Send two headers:
Authorization: Bearer <token>
X-Shop-Domain: your-shop.myshopify.comThe limit is 60 requests per minute per store. Responses carry RateLimit-* headers.
URL: https://fd-product-groups-app.fly.dev/mcp (Streamable HTTP). Send only the Authorization header; the token already names your store.
Claude Code:
claude mcp add --transport http fd-product-groups \
https://fd-product-groups-app.fly.dev/mcp \
--header "Authorization: Bearer <token>"Cursor (.cursor/mcp.json):
{
"mcpServers": {
"fd-product-groups": {
"url": "https://fd-product-groups-app.fly.dev/mcp",
"headers": { "Authorization": "Bearer <token>" }
}
}
}Then ask, for example: "List my product groups and show which ones are drafts."
Each MCP tool runs the same checks as the REST endpoint: validation, errors, the 60 per minute limit and token expiry.