Skip to main content
Glama

Start shoot

start_shoot
Destructive

Starts a shoot: one new frame of the product in the scene's style, on the scene's model, or the product alone for a placement scene (kind lifestyle). Each call uses one frame (two on a ghost mannequin) from the store's plan, so ask the person before starting shoots they did not ask for, and pass a request_id so a retry does not shoot twice. Pass notes to say how the product is worn or presented; notes never change the model or the scene. Returns at once with the frame queued; call get_shoot with its id to wait for the result.

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": {
      "product_id": "<product_id>",
      "source_image_id": "<source_image_id>",
      "scene_id": "<scene_id>"
    },
    "name": "start_shoot"
  }
}

Input Schema

NameRequiredDescriptionDefault
notesNoA short styling note: how to wear the product on a model, or how to present it in a product shot.
scene_idYesA ready scene id from list_scenes, of a kind the product's shoot_routes allow.
product_idYesThe product id from list_products.
request_idNoAny unique string for this shoot. Repeating a call with the same request_id within 24 hours returns the first result instead of starting and charging a second shoot.
regenerate_ofNoA frame id, to shoot that frame again.
source_image_idYesThe id of one of the product's photos (get_product).
garment_photo_typeNoflat-lay (the default) when the photo shows the product alone, model when someone is wearing it. Ignored for a placement scene.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / garment_photo_type / description
      Previous value: -"flat-lay (the default) when the photo shows the garment alone, model when someone is wearing it."New value: +"flat-lay (the default) when the photo shows the product alone, model when someone is wearing it. Ignored for a placement scene."
    • changedInput schema / properties / notes / description
      Previous value: -"A styling note for the model: how to wear the product (\"sleeves pushed up\", \"tucked in\"). It cannot change the model, the scene or the pose; ask for a different scene for that."New value: +"A short styling note: how to wear the product on a model, or how to present it in a product shot."
    • changedInput schema / properties / scene_id / description
      Previous value: -"A ready scene id from list_scenes."New value: +"A ready scene id from list_scenes, of a kind the product's shoot_routes allow."
  2. Changed1 schema field changed
    • addedInput schema / properties / notes
      Added value: +{
      +  "description": "A styling note for the model: how to wear the product (\"sleeves pushed up\", \"tucked in\"). It cannot change the model, the scene or the pose; ask for a different scene for that.",
      +  "maxLength": 240,
      +  "type": "string"
      +}
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only mark this as destructive/non-idempotent; the description adds the crucial context that each call consumes one frame (two on a ghost mannequin) from the store's plan, that request_id dedupes within 24 hours, and that the call is asynchronous—returning immediately with a queued frame that must be awaited via get_shoot. That is exactly the cost and lifecycle information an agent needs before invoking a chargeable write.

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 what the tool produces, then cost, then safety, then return behavior—good ordering with no filler. Sentences are long and clause-heavy, but each carries a distinct, non-redundant fact.

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 an asynchronous, credit-consuming generation tool with no output schema, the description covers scope, cost, idempotency, styling limits, and the required follow-up call. Nothing an agent needs to invoke it correctly is missing.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds semantics beyond the schema: notes constrain styling only and 'never change the model or the scene,' and request_id is framed as the safeguard against duplicate charges. It does not cover regenerate_of or garment_photo_type, which the schema handles on its own.

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?

Opens with a specific verb and resource ('Starts a shoot') and immediately defines what a shoot produces: one new frame of the product in the scene's style, on the scene's model, or a product-only shot for placement scenes. It is clearly distinguishable from siblings like get_shoot, add_product_image, and request_scene.

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 explicit operating guidance: ask the person before starting shoots they did not request, pass a request_id so retries don't double-charge, and use notes only for styling. It stops short of saying when to prefer regenerate_of over a fresh shoot, which is the one routing decision left 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