shopify-collection-ensure

POST /api/v1/shopify-collection-ensure 1 credits/call shopify catalog

Ensure a vendor has a published brand smart collection and a Main Menu link to it. Idempotent on the vendor name.

Sign in + create an API key on the keys page to authenticate calls.

curl -X POST https://api.fulcrumgo.com/api/v1/shopify-collection-ensure \
  -H "Authorization: Bearer mcpsk_<your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{
  "vendor": "",
  "publish": true,
  "add_to_menu": true
}'

Add this server to Claude Desktop's claude_desktop_config.json. The endpoint becomes a callable tool inside Claude. See the MCP setup guide for the full walk-through.

{
  "mcpServers": {
    "this-api": {
      "url": "https://api.fulcrumgo.com/mcp",
      "transport": "http",
      "auth": {
        "type": "bearer",
        "token": "mcpsk_<your_api_key>"
      }
    }
  }
}

Inside Claude this endpoint surfaces as the tool shopify-collection-ensure.

Standard requests — no custom SDK needed. pip install requests first.

import requests

r = requests.post(
    "https://api.fulcrumgo.com/api/v1/shopify-collection-ensure",
    headers={"Authorization": "Bearer mcpsk_<your_api_key>"},
    json={
  "vendor": "",
  "publish": true,
  "add_to_menu": true
},
)
r.raise_for_status()
print(r.json())

Plain fetch. Works in Node 18+, Deno, Bun, and any modern browser.

const r = await fetch("https://api.fulcrumgo.com/api/v1/shopify-collection-ensure", {
  method: "POST",
  headers: {
    "Authorization": "Bearer mcpsk_<your_api_key>",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "vendor": "",
  "publish": true,
  "add_to_menu": true
}),
});
if (!r.ok) throw new Error(`HTTP ${r.status}`);
console.log(await r.json());

Input

Field Type Required Default Description
vendor string required Vendor name exactly as it is spelled on the products. This is the collection title and the menu entry, so a typo here is visible on the storefront.
maxLength=255
publish boolean optional True Publish the collection to every sales channel.
add_to_menu boolean optional True Add a link under Main Menu > Brands > the matching letter range. Turn off to create the collection without touching navigation.

Output

Field Type Required Default Description
collection_id string required
handle string required
admin_url string required
created boolean required False when the collection already existed.
published boolean required
published_to array<string> optional
menu_status string required added = a new link is live. already_present = it was there. skipped = add_to_menu was false. no_bucket = the vendor's first letter matched no range, place it by hand. no_brands_menu / refused = the menu was not what we expected and was NOT written.
storefront_url string optional Where the collection will appear once it has stock.
warnings array<string> optional Non-fatal problems. A collection can land unpublished or unlinked; never report the brand as browsable when this is non-empty.

Try it

Fires a real POST /api/v1/shopify-collection-ensure from your browser. Charges 1 credit per call against your account.

Sign in to use Try it. You'll need an API key from the keys page to authenticate the call.