Skip to main content
Glama
vuluu2k

WebCake Storefront MCP

by vuluu2k

update_product_category

Edit a product category's name, image, description, visibility, or SEO settings by passing its ID plus the fields to change.

Instructions

Update a product category (name, image, description, visibility, SEO). Pass id + fields to change.

Input Schema

NameRequiredDescriptionDefault
idYesCategory id
seoNoSEO settings to change; other existing SEO tags are kept. Pass "" to clear a field.
nameNoNew name
imageNoNew hosted image URL
hiddenNoHide (true) or show (false) the category
descriptionNoNew description

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.34.1
    • addedInput schema / properties / seo
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "SEO settings to change; other existing SEO tags are kept. Pass \"\" to clear a field.",
      +  "properties": {
      +    "canonical": {
      +      "description": "Canonical URL (<link rel=canonical>)",
      +      "type": "string"
      +    },
      +    "custom_tags": {
      +      "description": "Extra tags (\"Thẻ bổ sung\"), e.g. { \"type\": \"meta\", \"props\": { \"name\": \"author\", \"content\": \"Togi\" } }. Replaces a tag with the same name/property/rel.",
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "props": {
      +            "additionalProperties": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "type": {
      +            "default": "meta",
      +            "enum": [
      +              "meta",
      +              "link"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "props"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "meta_description": {
      +      "description": "Meta description (~155 chars)",
      +      "type": "string"
      +    },
      +    "og_description": {
      +      "description": "Social share description (og:description)",
      +      "type": "string"
      +    },
      +    "og_image": {
      +      "description": "Social share image URL (og:image), must be hosted",
      +      "type": "string"
      +    },
      +    "og_site_name": {
      +      "description": "og:site_name",
      +      "type": "string"
      +    },
      +    "og_title": {
      +      "description": "Social share title (og:title)",
      +      "type": "string"
      +    },
      +    "og_type": {
      +      "description": "og:type, e.g. article / product",
      +      "type": "string"
      +    },
      +    "og_url": {
      +      "description": "og:url",
      +      "type": "string"
      +    },
      +    "page_keywords": {
      +      "description": "Comma-separated keywords",
      +      "type": "string"
      +    },
      +    "page_title": {
      +      "description": "Title tag (~60 chars)",
      +      "type": "string"
      +    },
      +    "remove_tags": {
      +      "description": "Remove tags by name/property/rel, e.g. [\"author\", \"og:url\"]",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "robots": {
      +      "description": "Robots meta, comma+space separated, e.g. \"noindex, nofollow\" or \"max-snippet:-1, max-image-preview:large\"",
      +      "type": "string"
      +    },
      +    "structured_data": {
      +      "description": "Structured data markup (JSON-LD). REPLACES all existing markups; [] removes them.",
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "json": {
      +            "description": "JSON-LD object as a string, without <script>",
      +            "type": "string"
      +          },
      +          "name": {
      +            "description": "Display name",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "json"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv1.31.8

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false, so the description carries most of the behavioral burden. 'Pass id + fields to change' conveys a partial-update semantic (unspecified fields are preserved), which is genuinely useful beyond the annotation. However, it does not state permissions required, whether SEO blocks overwrite, or any side effects on catalog visibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the verb and field list. Nothing is padding, though it is arguably a bit too terse for a tool with a large nested SEO object.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate minimum for a mutation tool: it names the resource and the mutable fields. But with a large nested SEO object, no output schema, and only a readOnly annotation, the description should at least note partial-update semantics, permission needs, or how the SEO block interacts with existing tags. The gaps are survivable because the schema is fully documented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including rich nested descriptions for the SEO object (replacement behavior, clearing with ""), so the schema does the heavy lifting. The description lists the same top-level fields but adds no syntax or semantics beyond that. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (update) + resource (product category) with an enumeration of the mutable fields (name, image, description, visibility, SEO). It is clearly distinguishable from update_blog_category and create_product_category by resource. It loses a point only because it does not explicitly call out the sibling it is not (e.g. create vs update for the same resource).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Pass id + fields to change' describes invocation mechanics, not when to choose this tool over update_blog_category, create_product_category, or update_product. There are no stated prerequisites (required permission, whether the category must already exist) and no exclusions. Minimal guidance only.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools