Skip to main content
Glama

Set per-product field values (custom labels, new fields, fixes)

update_product_fields
DestructiveIdempotent

Writes field values onto individual products, the same per-product overrides the web UI's product editor writes. The served XML puts each value into the item (a tag the item lacks is added, g: prefixed, e.g. custom_label_0 → <g:custom_label_0>), and image templates read it as {{field}}. Use it to enrich a catalog: custom_label_0–4 for product sets in Meta or Google, a new field such as irradiance shown on the image, or a fix for one product. Merges with what the product already has: a string sets the field, null or "" removes the value set here (the source value shows again). Take values from the product data (get_product rawData) or a source the user names, never guess. Up to 100 products and 20 fields per product per call; all or nothing — an unknown product or a bad field name saves nothing. The id field cannot be changed.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "feedId": "<feedId>",
      "items": "<items>"
    },
    "name": "update_product_fields"
  }
}

Input Schema

NameRequiredDescriptionDefault
itemsYes
feedIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and idempotentHint=true, and the description does not contradict them — it explains exactly what the destruction means (null or "" removes the value set here so the source value shows again). It adds material behavior beyond annotations: g: prefixing and tag insertion in the served XML, {{field}} consumption by image templates, merge-with-existing semantics, atomic all-or-nothing failure on an unknown product or bad field name, and the id immutability constraint.

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?

Front-loaded with purpose, then mechanics, then constraints, with no filler sentences. It is a dense single paragraph of roughly 150 words; the XML/template-rendering detail and the sourcing warning are both load-bearing, but the paragraph could be broken into structure for faster scanning.

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

Completeness5/5

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

For a destructive mutation tool with no output schema, the definition covers effect on served output, merge and removal semantics, atomicity, sourcing rules, and the id exclusion. An agent has everything needed to call it correctly and knows what a partial-looking failure implies.

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

Parameters5/5

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

With 0% schema description coverage measured at the top level, the description carries the load: field names are rawData names without the g: prefix, illustrated by custom_label_0 → <g:custom_label_0>; the value/removal convention (string sets, null or "" removes); and hard limits of 100 products and 20 fields per product per call, the latter not encoded in the schema at all.

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

Purpose5/5

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

States a specific verb and resource ("Writes field values onto individual products") plus the exact equivalence class: the same per-product overrides the web UI's product editor writes. That distinguishes it cleanly from siblings like update_field_rules or update_output_schema, which operate on feed-wide configuration rather than per-product values.

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

Usage Guidelines4/5

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

Gives concrete when-to-use scenarios: custom_label_0–4 for Meta/Google product sets, a new field such as irradiance consumed by an image template, or a one-off fix. It also constrains sourcing ("Take values from the product data (get_product rawData) or a source the user names, never guess") and names an immutable field. It stops short of routing the agent to a sibling for bulk/rule-based changes, so there is no explicit alternative.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources