Skip to main content
Glama

product_update

Destructive

Changes a product (only the passed fields) and returns its updated context; isArchived moves it to the archive with its versions, features and tasks, taking them out of work selection. Changes shared product structure; only at the user's request or with their consent.

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": {
      "productID": "<productID>"
    },
    "name": "product_update"
  }
}

Input Schema

NameRequiredDescriptionDefault
specNoNew product spec in Markdown (no HTML), in the language of the workspace data. Replaces the whole field: existing text, `::: doc` sections and `attach:`, `design:`, `color:` tokens stay only if included.
titleNoNew name
designNoProduct design files (Figma links); passed fields are replaced.
leadUIDNoNew product lead: employee UUID.
analyticNoNew product analyst: employee UUID or "any".
platformNoNew product platform.
productIDYesProduct ID
techStackNoNew technology stack; replaces the previous one.
isArchivedNotrue - archive the product, false - restore it.
isDeployEnabledNoWhether the product's tasks have a deployment stage.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / design / properties / refUrls / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "properties": {
      +            "ID": {
      +              "format": "uuid",
      +              "type": "string"
      +            },
      +            "url": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "url"
      +          ],
      +          "type": "object"
      +        }
      +      ]
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / design / properties / refUrls / description
      Previous value: -"Full list of \"Other files\" links; file names come from Figma."New value: +"Complete list of other design files: URLs or { ID?, url } objects. ID identifies a file when its link changes; file names come from Figma."
  2. Changed1 schema field changed
    • changedInput schema / properties / platform / enum
      Previous value: -[
      -  "webApp",
      -  "backend",
      -  "website",
      -  "ios",
      -  "android",
      -  "ai"
      -]New value: +[
      +  "webApp",
      +  "backend",
      +  "website",
      +  "ios",
      +  "android",
      +  "ai",
      +  "mobile"
      +]
  3. Changed1 schema field changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
  4. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the safety annotations, it discloses that archiving also moves versions, features, and tasks and removes them from work selection—concrete downstream effects an agent must understand. It additionally states partial-update behavior, shared impact, the consent constraint, and that the operation returns updated context.

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

Conciseness5/5

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

The action and patch semantics are front-loaded, followed by the highest-risk side effect and the invocation constraint. Two compact sentences carry substantial information without filler, although the first is somewhat dense.

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

Completeness4/5

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

Together with the exhaustive schema and safety annotations, the description covers mutation scope, archive consequences, authorization, and the broad return type well enough for correct invocation. Because there is no output schema, “updated context” remains unspecific, and the lack of sibling differentiation leaves minor selection gaps for this complex operation.

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

Parameters4/5

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

With 100% schema description coverage, the schema already documents all ten parameters, including formats and field-replacement semantics. The description adds particular value for isArchived by explaining its cascade and work-selection consequences, and reinforces that omitted fields remain unchanged.

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?

“Changes a product (only the passed fields)” provides a clear verb, resource, and patch scope, while the archive clause defines an important mode of the operation. It does not explicitly distinguish this product-level mutation from sibling updates such as feature_update or version_update, so it is clear rather than maximally discriminating.

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?

“Only at the user's request or with their consent” supplies an explicit precondition for invoking this shared-structure mutation. There is no when-not guidance or routing to read-only or more specific sibling tools, leaving some selection guidance implicit.

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