Skip to main content
Glama

Bake a material

material_bake

Bakes a material (a shipped id, or a whole material document) to its seven channels (albedo, normal, roughness, metallic, height, emissive, ambient occlusion) as PNGs at res pixels square: 64, 128, 256, 512 or 1024 (default 256). 512 or less costs 1 unit; 1024 costs 2.

Input Schema

NameRequiredDescriptionDefault
resNoBake resolution in pixels square: 64, 128, 256, 512 or 1024 (default 256). 1024 costs more.
materialYesA shipped material id (art_materials lists them) or a whole material document written inline.

Output Schema

NameRequiredDescriptionDefault
msNoMilliseconds the run took.
jobYesThe job id; the job tool reads it.
verbNoThe tool that made it.
filesNoFiles made, each with a name, type, size and a signed URL.
unitsNoUnits this call cost.
resultNoThe engine's own answer, a JSON document.
statusNoqueued when the job runs in the background.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / material / description
      Added value: +"A shipped material id (art_materials lists them) or a whole material document written inline."
    • addedInput schema / properties / res / description
      Added value: +"Bake resolution in pixels square: 64, 128, 256, 512 or 1024 (default 256). 1024 costs more."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": true,
      +  "properties": {
      +    "files": {
      +      "description": "Files made, each with a name, type, size and a signed URL.",
      +      "items": {
      +        "additionalProperties": {},
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "job": {
      +      "description": "The job id; the job tool reads it.",
      +      "type": "string"
      +    },
      +    "ms": {
      +      "description": "Milliseconds the run took.",
      +      "type": "number"
      +    },
      +    "result": {
      +      "description": "The engine's own answer, a JSON document."
      +    },
      +    "status": {
      +      "description": "queued when the job runs in the background.",
      +      "type": "string"
      +    },
      +    "units": {
      +      "description": "Units this call cost.",
      +      "type": "number"
      +    },
      +    "verb": {
      +      "description": "The tool that made it.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "job"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations only declare the generic profile (not read-only, not idempotent, not destructive), so the description carries the real burden and does disclose meaningful behavior: the produced artifacts, the fixed set of channels, and a cost model (1 unit at 512 or below, 2 units at 1024). What is still missing is where the PNGs land and whether rebaking overwrites prior output.

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 tightly packed sentences with zero filler: the operation and its outputs come first, then the resolution/cost tradeoff. Every clause earns its place.

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

Completeness4/5

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

With an output schema present, return values need no explanation, and the description covers the operation, output channels, resolution range, and cost. It leaves minor gaps around output destination and interaction with existing baked assets, but nothing that would block a correct call.

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 100%, so both parameters are already documented structurally. The description restates the resolution options and cost and clarifies that 'material' can be a shipped id or an inline document, but adds no syntax or constraints beyond the schema, so the baseline 3 applies.

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?

The description names a specific verb and resource ('Bakes a material') and enumerates the exact output artifacts (seven named channels as PNGs). It is easy to tell apart from material_apply or material_check in practice, but it never explicitly contrasts itself with those siblings, so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus alternatives such as material_apply, material_cost, or material_check, nor any prerequisites (e.g., must the material already exist or be validated). The cost-per-resolution note is useful for choosing an argument, but it is not usage guidance.

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