Skip to main content
Glama

Update a product

update_product
DestructiveIdempotent

Modify product name, description, image, metadata, license settings, or active status; set active to false to stop selling without deleting the product. Requires a test key.

Instructions

Update a product.

Set active: false to stop selling it; products are never deleted (invoices point at them).

Test keys only: refused with a live key.

Input Schema

NameRequiredDescriptionDefault
idYesThe object's id.
nameNo
activeNo
metadataNoYour own key–value pairs (≤ 50 keys, values ≤ 500 characters). On an update they are merged in; an empty value removes its key.
image_urlNo
descriptionNo
issues_licenseNoIssue a license key with every purchase.
license_activation_limitNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A3.8/5.0
Behavior4/5

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

With destructiveHint=true and openWorldHint=true already declared, the description adds real context the annotations cannot: the no-delete invariant, the reason (invoices reference products), and a test-key-only restriction that will hard-fail on live keys. It doesn't say whether unspecified fields are preserved or whether the call replaces state, which matters for an update tool flagged destructive.

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?

Three short, front-loaded lines with no filler; the deactivation guidance and the key restriction both land immediately. The opening "Update a product." largely restates the title and is the one sentence not earning its place.

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?

The critical operational constraint (test keys only) and the deletion invariant are covered, which is more than most update tools offer. But for an 8-parameter mutation with a nested metadata object and no output schema, the agent still doesn't know whether omitted fields are cleared, what a successful response returns, or how conflicts/validation failures surface.

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 coverage is only 38% across 8 parameters, so the description is expected to compensate, and it only does so for `active` (false = stop selling), the one parameter whose schema entry is bare. `name`, `image_url`, and `description` have no description in the schema or here, and the license-related parameters (issues_license, license_activation_limit) get no explanation of when they apply.

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?

The first sentence names a specific verb and resource ("Update a product"), so an agent knows exactly which object family it acts on. However, it does not distinguish itself from the nearby siblings create_product, list_products, update_price or update_payment_link beyond the verb, so the sibling boundary is inferred rather than stated.

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?

"Set `active: false` to stop selling it; products are never deleted" gives explicit guidance for the common alternative the agent might otherwise reach for (deletion). "Test keys only: refused with a live key" is a hard precondition stated up front. It lacks an explicit "use update_product when X, use create_product when Y" routing sentence, which keeps it below a 5.

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