Skip to main content
Glama

Revise an asset

revise_asset

PAID. Generate a new revision of an asset from feedback text. The previous revision is kept — revisions are additive, never destructive. Environment Kit (terrain) assets also accept the legacy templateId to pull a whole category pack (edges / grounds / props / slopes / textures / structures). Passing sourceItemIndex uses that extracted item as the visual source for a complete new related collection: the source stays untouched and every output is a separate new asset listed in get_job.assetIds. The default dry run returns the exact semantic revision plan and planToken; show the preview to the user, then resend the unchanged request with that token. DEFAULTS TO A PLAN + COST PREVIEW — see dryRun. Returns { jobId } — poll get_job.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dryRunNoDEFAULTS TO TRUE. While true this returns only a cost quote ({ estimatedCredits, balance, spendCapDaily, spentLast24h, capRemaining }) and executes nothing. Show the user estimatedCredits, then ask a normal confirmation question. Prefer the client's native question UI with Approve / Decline / Discuss choices when available; otherwise accept any unambiguous conversational approval. Never require a fixed phrase or ask the user to type a magic word. Only after approval, re-call with dryRun:false to actually spend.
promptNoWhat to change. Required unless templateId is given (terrain).
assetIdYesAsset id or slug.
planTokenNoREQUIRED when dryRun=false. Copy unchanged from the immediately preceding dry-run response.
imageModelNoOverride the image model.
templateIdNoEnvironment Kit (`terrain`) only — legacy focused category pack, not a dashboard prompt-starter ID.
textureKindNoTexture only — 4-way seamless fill, or a directional left-right strip. Defaults to the asset's existing kind.
idempotencyKeyNoOptional Idempotency-Key for the real (dryRun:false) call. Omit and one is minted per call. Reuse the SAME value when retrying a call that failed with ENTITY_BUSY / 402 / 429 so the retry cannot double-dispatch.
sourceItemIndexNoCollection item to seed a related collection. Preserves the source and creates one new asset per output.
sourceIterationIdNoRevise from a specific earlier revision instead of the current one.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / prompt / maxLength
      Added value: +20000
  2. Changed1 schema field changed
    • changedInput schema / properties / dryRun / description
      Previous value: -"DEFAULTS TO TRUE. While true this returns only a cost quote ({ estimatedCredits, balance, spendCapDaily, spentLast24h, capRemaining }) and executes nothing. Show the user estimatedCredits and get an explicit yes for that amount, THEN re-call with dryRun:false to actually spend."New value: +"DEFAULTS TO TRUE. While true this returns only a cost quote ({ estimatedCredits, balance, spendCapDaily, spentLast24h, capRemaining }) and executes nothing. Show the user estimatedCredits, then ask a normal confirmation question. Prefer the client's native question UI with Approve / Decline / Discuss choices when available; otherwise accept any unambiguous conversational approval. Never require a fixed phrase or ask the user to type a magic word. Only after approval, re-call with dryRun:false to actually spend."
  3. Changed1 schema field changed
    • changedInput schema / properties / templateId / description
      Previous value: -"Terrain only — generate a focused category pack."New value: +"Environment Kit (`terrain`) only — legacy focused category pack, not a dashboard prompt-starter ID."
  4. Changed1 schema field changed
    • changedInput schema / properties / sourceItemIndex / description
      Previous value: -"Collection item to use as the source for a full new related grid."New value: +"Collection item to seed a related collection. Preserves the source and creates one new asset per output."
  5. Changed2 schema fields changed
    • addedInput schema / properties / planToken
      Added value: +{
      +  "description": "REQUIRED when dryRun=false. Copy unchanged from the immediately preceding dry-run response.",
      +  "type": "string"
      +}
    • addedInput schema / properties / sourceItemIndex
      Added value: +{
      +  "description": "Collection item to use as the source for a full new related grid.",
      +  "minimum": 0,
      +  "type": "integer"
      +}
  6. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint false, idempotentHint false, destructiveHint false), the description discloses crucial behaviors: it is PAID, revisions are additive and never destructive, the default is a dry run that returns a plan and cost preview, a planToken must be carried over, and the real call returns a jobId to poll. It also clarifies that sourceItemIndex preserves the source and creates new assets. This far exceeds the annotation baseline and provides rich, non-contradictory transparency.

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?

The description is long but every sentence earns its place. It starts with 'PAID.' and the core purpose, then systematically covers additive behavior, terrain templateId, sourceItemIndex semantics, dry-run default and workflow, and the return shape. The structure is logical and front-loaded, with no filler or redundancy. Given the tool's complexity (10 params, confirmation flow), the length is justified and efficient.

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?

The description covers the full lifecycle: purpose, variants, dry-run plan, confirmation requirements, planToken usage, return type, and the need to poll get_job. It even mentions that outputs from sourceItemIndex appear in get_job.assetIds. For a tool with no output schema, it clearly states the return shape and next step. Nothing essential for an agent 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.

Parameters5/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 substantial meaning to multiple parameters. It explains dryRun's default, the exact quote returned, the confirmation UX requirements, and the need to re-call with dryRun:false. It clarifies planToken's mandatory nature when dryRun=false and that it must be copied unchanged. It also elaborates on templateId (terrain-only, legacy category pack) and sourceItemIndex (preserves source, creates per-output assets) and idempotencyKey reuse on retries. This goes well beyond the schema descriptions.

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 clear verb+resource: 'Generate a new revision of an asset from feedback text.' It immediately distinguishes itself from create_asset (new asset) and other revision tools by stating revisions are additive and never destructive. The mention of templateId and sourceItemIndex further clarifies specific variants, making the purpose unmistakable even among a large sibling set.

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?

The description provides concrete guidance on when to use this tool (revising an asset from feedback) and explains the dry-run-to-confirm workflow, which is essential. It also conditions templateId and sourceItemIndex usage. However, it does not explicitly name alternative tools (e.g., 'use create_asset for a new asset') or state exclusions, so it stops short of fully routing the agent. The workflow instructions and variant conditions are strong enough to merit a 4.

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