Skip to main content
Glama

Update billboard deal

update_deal

Replace an existing billboard deal with updated details, or set isEnabled to false to take it down when a promotion ends.

Instructions

Replace an existing deal (same fields as create_deal). Use isEnabled:false to take a deal down when the promotion ends.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latYesLatitude of the business
lngYesLongitude of the business
hoursYes"24/7" or per-day: {monday: "closed" | "24h" | {open:"09:00",close:"17:00"}, ...}
titleYesDeal title, max 18 characters
addressYesStreet address shown as locationDescription
imageIdNoBlob id from upload_media (category billboard-image). The live API requires imageId or videoId.
videoIdNoBlob id from upload_media (category billboard-video)
isEnabledNo
categoryIdNoStorefront category UUID from list_categories; default ce8f8f8f-8f8f-8f8f-8f8f-8f8f8f8f8f8f (Miscellaneous)
billboardIdYes
descriptionYesUse only claims, prices, and hours the business provided
businessNameYesExact business name (confirm with your human)
storefrontIdYes
altitudeMetersNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.1

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden and it does disclose the two most consequential traits: this is a full replace (not a patch) and isEnabled:false is the takedown switch. It omits what happens to fields left unspecified, permission/auth requirements, whether the prior deal is recoverable, and the response shape.

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?

Two short sentences, zero filler, with the replace semantics front-loaded and the takedown case second. Nothing is repeated from the title or schema.

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

Completeness2/5

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

This is a 14-parameter, 9-required mutation with no annotations and no output schema, so the description is the only place behavioral context can live. It is too thin for that: no identification of which arguments select the deal, no warning about the blast radius of a full replace, and no media-requirement guidance.

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 71%, so the schema already documents most parameters; baseline is 3. The description adds real meaning for isEnabled, which has no schema description at all, by defining it as a takedown flag. It adds nothing for the other 13 parameters, including the imageId/videoId requirement noted in the schema.

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 ('Replace an existing deal') and anchors it to a sibling ('same fields as create_deal'), so the agent can distinguish it from create_deal without opening either schema. It stops short of naming the identifying keys (storefrontId/billboardId) that a replace operation hinges on.

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

Usage Guidelines3/5

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

Gives one concrete usage scenario ('use isEnabled:false to take a deal down when the promotion ends'), which is genuinely useful. But it never states when to choose update_deal over create_deal, get_deal, or list_my_deals, and gives no preconditions such as needing an existing deal id.

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