Skip to main content
Glama

Rendreal

Pick a design candidate

design_pick_candidate
Destructive

Pick one of the candidates from design_generate_candidates.

Pass the design_id the USER chose. It binds that design as the active one and drops the rest; the next design_chat continues refining it. Returns the picked design's design_url + thumbnails — share them verbatim. With thumbnails_pending: true the preview is still rendering and may not become available: say so, give the design_url so the user can see the design in the editor, and call design_status for the preview later. Do not say that the preview will appear.

The picked design is ALREADY resolved (design_resolved: true) and stays bound to order_id and its item. Do NOT call order_attach_design: the payment link attaches the design of each item. The pick fails with DesignAttachedError when the candidates' item already holds an attached design, and with UploadMappingSubmittedError when that item's uploaded file has a submitted page mapping. Do not call order_create_payment_link unless the customer asked to pay: the payment link attaches the design and locks the order to it for good. If they did not ask, show the customer the design and ask whether they want changes; call design_chat if they do.

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": {
      "session_id": "<session_id>",
      "design_id": "<design_id>"
    },
    "name": "design_pick_candidate"
  }
}

Input Schema

NameRequiredDescriptionDefault
design_idYes
session_idYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the destructive/non-idempotent annotations it discloses consequences the annotations cannot: the other candidates are dropped, the design becomes bound to the order item, and it is already resolved. It also names the failure modes (`DesignAttachedError`, `UploadMappingSubmittedError`) with the conditions that trigger them, plus the `thumbnails_pending` caveat and how to phrase it to the user.

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 the action and the selection rule, then progressively the return handling, then the sequencing warnings. It is dense but nearly every sentence adds operational instruction; the only mild redundancy is restating the binding/attachment rule in two places.

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 a state-changing pick tool with error branches, the description covers selection rules, side effects, return values (`design_url`, `thumbnails`), the pending-thumbnail edge case, and the downstream tool sequencing. Output schema exists, yet the extra guidance on what to do with the returned URL adds real value rather than repeating field names.

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 0%, so the description must carry parameter meaning. It explains `design_id` well (the candidate the USER picked, which becomes the bound active design) but says nothing about `session_id`, leaving one of two parameters undocumented anywhere.

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?

The description opens with a specific verb and resource ('Pick one of the candidates from `design_generate_candidates`') and immediately explains the effect: the chosen design becomes the active one and the rest are dropped. An agent can distinguish it from design_generate_candidates or design_chat without opening any schema.

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?

It states the precondition (only one of the candidates from the generate step, and the design_id the USER chose), names the alternative path for revisions ('call `design_chat` if they do'), and gives explicit exclusions ('Do NOT call `order_attach_design`', 'Do not call `order_create_payment_link` unless the customer asked to pay'). When-to-use and when-not-to-use are both covered.

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