SuperCheap

Search products, manage a customer cart, and request current checkout quotes.

Should I use this

Quality & Safety

A
Description quality
97%
Schema completeness
85%
Naming quality
77%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'catalog_report_product_impressions' name length outside 3-30 rangein catalog_report_product_impressions

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,670Tokens (tool definitions)
~4.0 KBTypical response size
Significant attention impact (2.87% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "supercheap-shopping": {
      "url": "https://supercheap.market/mcp"
    }
  }
}

Remote endpoints

https://supercheap.market/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢market_list(availability, limit, query)

Find supported SuperCheap country, language, currency, and checkout availability combinations.

Input Schema

{
  "type": "object",
  "properties": {
    "availability": {
      "type": "string",
      "enum": [
        "checkout-enabled",
        "discoverable"
      ],
      "description": "discoverable includes markets where checkout is enabled"
    },
    "limit": {
      "default": 50,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "query": {
      "type": "string",
      "maxLength": 80
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "currencies": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "markets": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "schemaVersion": {
      "type": "number",
      "const": 1
    }
  },
  "required": [
    "currencies",
    "markets",
    "schemaVersion"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢category_search(countryCode, languageCode, limit, query)

Find canonical SuperCheap categories using lexical and semantic matching.

Input Schema

{
  "type": "object",
  "properties": {
    "countryCode": {
      "type": "string",
      "pattern": "^[A-Z]{2}$",
      "description": "ISO 3166-1 alpha-2 country code"
    },
    "languageCode": {
      "type": "string",
      "pattern": "^[a-z]{2}$",
      "description": "Lowercase two-letter language code"
    },
    "limit": {
      "default": 20,
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 160
    }
  },
  "required": [
    "countryCode",
    "languageCode",
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    }
  },
  "required": [
    "categories"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢category_get_tree(countryCode, languageCode, maxDepth, maxNodes, rootCategoryId)

Return a bounded category subtree. Use rootCategoryId and maxDepth to avoid loading the entire taxonomy.

Input Schema

{
  "type": "object",
  "properties": {
    "countryCode": {
      "type": "string",
      "pattern": "^[A-Z]{2}$",
      "description": "ISO 3166-1 alpha-2 country code"
    },
    "languageCode": {
      "type": "string",
      "pattern": "^[a-z]{2}$",
      "description": "Lowercase two-letter language code"
    },
    "maxDepth": {
      "default": 2,
      "type": "integer",
      "minimum": 1,
      "maximum": 5
    },
    "maxNodes": {
      "default": 200,
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "rootCategoryId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    }
  },
  "required": [
    "countryCode",
    "languageCode"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "truncated": {
      "type": "boolean"
    }
  },
  "required": [
    "categories",
    "truncated"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟡catalog_search_products(countryCode, languageCode, attributes, categoryIds, compact, ...)

Search canonical products with category, attribute, price, provider, vendor, sorting, and bounded pagination filters. Attribute pairs are forwarded to supplier discovery as provider Pid/Vid filters when expansion is needed, so keep the exact attributeId/valueId returned by facets. When the shopper requests N products, set limit=N (1–48); leave it unset to use the default of 12 when no count is specified. Set compact=true when limit exceeds 24; compact changes card payload size, not card selection. The product-card UI displays every returned item and supplier preview, up to 24 cards per result. Do not fetch a larger page and then select fewer only in prose: those returned cards still appear in the UI. If the shopper wants only the existing catalog or says not to search suppliers, set expandSuppliers=false so previews are not added. When product-card UI is attached, do not claim product photos are unavailable solely because the text response lacks inline images; refer to the rendered cards. Set freshOnly=true to exclude products already opened or explicitly exposed to this shopper. Use nextCursor for stable exploration pages, or nextOffset when nextCursor is unavailable; keep using the same query and filters. If status is pending, wait until retryAfter and resume with nextCursor as cursor, or nextOffset as offset when no cursor is returned; never restart a pending search from the first page. Supplier discovery automatically runs in the background for missing, weak, or exhausted results unless expandSuppliers=false. A broad result withholds unconfirmed canonical cards and describes only the current page. Continue with nextCursor when present, otherwise nextOffset; zero supplier previews on a page does not mean the search is exhausted. If supplierExpansion is queued, running, or throttled, wait until supplierRetryAt and repeat the same search. Set waitForSupplierResults=true to have the server poll a queued supplier expansion for up to maxWaitMs before returning.

Input Schema

{
  "type": "object",
  "properties": {
    "countryCode": {
      "type": "string",
      "pattern": "^[A-Z]{2}$",
      "description": "ISO 3166-1 alpha-2 country code"
    },
    "languageCode": {
      "type": "string",
      "pattern": "^[a-z]{2}$",
      "description": "Lowercase two-letter language code"
    },
    "attributes": {
      "maxItems": 30,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "attributeId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "valueId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          }
        },
        "required": [
          "attributeId",
          "valueId"
        ]
      }
    },
    "categoryIds": {
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 160
      }
    },
    "compact": {
      "default": false,
      "type": "boolean"
    },
    "cursor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512
    },
    "expandSuppliers": {
      "default": true,
      "type": "boolean"
    },
    "freshOnly": {
      "default": false,
      "type": "boolean"
    },
    "limit": {
      "default": 12,
      "description": "Number of canonical results in this page. Match an explicit shopper request for N products with limit=N (1–48); leave unset to keep the default of 12 when no count is specified. Use compact=true above 24. The native card UI displays returned items and supplier previews (up to 24 total per result), so do not request a larger page and claim that only a smaller subset was shown.",
      "type": "integer",
      "minimum": 1,
      "maximum": 48
    },
    "maxWaitMs": {
      "default": 15000,
      "type": "integer",
      "minimum": 0,
      "maximum": 15000
    },
    "maxAmountMinor": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "minAmountMinor": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "offset": {
      "default": 0,
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "query": {
      "type": "string",
      "maxLength": 160
    },
    "sort": {
      "default": "relevance",
      "type": "string",
      "enum": [
        "relevance",
        "price-asc",
        "price-desc"
      ]
    },
    "sourceProvider": {
      "type": "string",
      "enum": [
        "alibaba1688",
        "aliexpress",
        "taobao"
      ]
    },
    "vendorId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    },
    "waitForSupplierResults": {
      "default": false,
      "type": "boolean"
    }
  },
  "required": [
    "countryCode",
    "languageCode"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "attributeFacets": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "canonicalTotal": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "categoryFacets": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "matchQuality": {
      "type": "string",
      "enum": [
        "broad"
      ]
    },
    "nextCursor": {
      "type": "string"
    },
    "nextOffset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "retryAfter": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
    },
    "status": {
      "type": "string",
      "const": "pending"
    },
    "supplierExpansion": {
      "type": "string",
      "enum": [
        "cached",
        "not-needed",
        "queued",
        "running",
        "throttled"
      ]
    },
    "supplierDiscoveryRequestIds": {
      "maxItems": 16,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[a-f\\d]{64}$"
      }
    },
    "supplierPreviews": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "supplierRetryAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
    },
    "total": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "attributeFacets",
    "canonicalTotal",
    "categoryFacets",
    "items",
    "total"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
⚪catalog_report_product_impressions(cursor, itemIds)

Record only products that were actually presented to the shopper. Searching alone does not mark products as viewed. This idempotent impression signal is used to demote or exclude products in later searches.

Input Schema

{
  "type": "object",
  "properties": {
    "cursor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512
    },
    "itemIds": {
      "minItems": 1,
      "maxItems": 48,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[a-z0-9-]+$"
      }
    }
  },
  "required": [
    "itemIds"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "accepted": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "accepted"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢catalog_get_product(countryCode, languageCode, detailLevel, itemId)

Get product details, offer, attributes, variants, media, and a SuperCheap deep link. If the item is a supplier preview, this may request background supplier-detail hydration and returns its current status; retry while pending until full product details are available before choosing a configuration or adding it to a cart.

Input Schema

{
  "type": "object",
  "properties": {
    "countryCode": {
      "type": "string",
      "pattern": "^[A-Z]{2}$",
      "description": "ISO 3166-1 alpha-2 country code"
    },
    "languageCode": {
      "type": "string",
      "pattern": "^[a-z]{2}$",
      "description": "Lowercase two-letter language code"
    },
    "detailLevel": {
      "default": "standard",
      "type": "string",
      "enum": [
        "summary",
        "standard",
        "full"
      ]
    },
    "itemId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    }
  },
  "required": [
    "countryCode",
    "languageCode",
    "itemId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "item": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "item"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢catalog_get_similar_products(countryCode, languageCode, cursor, expandSuppliers, itemId, ...)

Find similar products with stable continuation across catalog and supplier sources. Use nextCursor with the same item and market for subsequent pages. A short page is not exhaustion when continuation is present. If status is pending or supplierExpansion is queued, running, or throttled, retry at retryAfter or supplierRetryAt. Supplier previews must be hydrated with catalog_get_product before choosing a configuration or adding to cart. Present only buyer-market offer prices, never supplier costs.

Input Schema

{
  "type": "object",
  "properties": {
    "countryCode": {
      "type": "string",
      "pattern": "^[A-Z]{2}$",
      "description": "ISO 3166-1 alpha-2 country code"
    },
    "languageCode": {
      "type": "string",
      "pattern": "^[a-z]{2}$",
      "description": "Lowercase two-letter language code"
    },
    "cursor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512
    },
    "expandSuppliers": {
      "default": true,
      "type": "boolean"
    },
    "itemId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    },
    "limit": {
      "default": 12,
      "type": "integer",
      "minimum": 1,
      "maximum": 24
    },
    "offset": {
      "default": 0,
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "countryCode",
    "languageCode",
    "itemId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Output Schema

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "nextCursor": {
      "type": "string"
    },
    "nextOffset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "status": {
      "type": "string",
      "const": "pending"
    },
    "retryAfter": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
    },
    "supplierExpansion": {
      "type": "string",
      "enum": [
        "cached",
        "not-needed",
        "queued",
        "running",
        "throttled"
      ]
    },
    "supplierPreviews": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "supplierRetryAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
    },
    "total": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "items",
    "total"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools
auth requiredversion not recorded—