Skip to main content
Glama

update_product

Update a product owned by the caller. Re-runs analysis if the kernel_version, arch, or referenced .config changed.

    To change the .config, first POST the new file to
    ``/api/configs/uploads`` (see ``create_product`` for the curl recipe)
    and pass the returned ``config_upload_id`` here. Leave
    ``config_upload_id`` as ``None`` to keep the existing .config.
    ``factor_ids=None`` leaves factor selections untouched; an empty
    list clears them. Same tier gates as PUT /api/products/{id}.

    A change that re-runs analysis (``kernel_version``, ``arch``, or the
    ``.config``) spends one unit of the team's shared monthly analysis
    allowance and can fail with the same durable "Monthly analysis limit
    reached … [429]" quota error as ``create_product`` (distinct from the
    transient rate-limit 429 — don't retry it). A rename / description /
    factor-only edit runs no analysis and is free; the product's VEX is re-evaluated
    against the new factors in the background (not metered), so ``get_product`` /
    ``get_product_vex`` show the new verdicts a few seconds later.

    ``kernel_version`` takes the same forms as in ``create_product``: a
    stable version, or a CIP release / full ``uname -r`` such as
    ``4.19.325-cip136-rt50``, whose ``-cipN`` counter decides which CIP
    fixes apply. A changed version string the analysis cannot read fails
    with 400 and changes nothing; re-sending the stored value is always
    accepted. A CIP release must stay on the base its ``.config`` header
    names: whichever of the two the update changes is checked against the
    other ([400], before the upload is consumed).
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
archNo
nameNo
factor_idsNo
product_idYes
descriptionNo
kernel_versionNo
config_upload_idNo

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?

No annotations, so the description carries full behavioral burden — and it does: discloses the metered analysis allowance, distinguishes durable quota 429 from transient rate-limit 429 with retry guidance ('don't retry it'), explains async VEX re-evaluation timing, and that a rename is free. This is rich, actionable context beyond the schema.

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-loads the core purpose then layers side-effects, dependencies, and edge cases. Long but every section earns its place; could tighten slightly, but density is justified by the tool's complexity.

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?

Covers the dependency chain (upload then reference), metering and quota semantics, async side-effects, validation failure modes (400 on unreadable version, CIP base mismatch checked before upload consumed), and cross-sibling behavior. Complete for a 7-param mutation with no annotations or output schema.

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?

Schema coverage is 0%, so the description must compensate — and it does per-parameter: kernel_version accepted forms (stable version, CIP release, uname -r) and that -cipN selects fixes; config_upload_id=None keeps existing; factor_ids=None preserves vs. empty list clears. Each semantic is non-obvious from the schema alone.

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?

States a specific verb and resource ('Update a product owned by the caller') and immediately distinguishes which fields trigger side effects vs. which are free. Does not explicitly contrast with create_product, but the dependency chain (upload config, then pass id) implies the relationship.

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

Usage Guidelines5/5

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

Explicit when/when-not guidance: when to POST a .config to uploads first, when to leave config_upload_id as None, when factor_ids=None vs empty list, and what triggers analysis vs. not. Names the alternative for config upload ('see create_product for the curl recipe').

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