Skip to main content
Glama

Propose an editable procedural or hybrid material

material_recipe
Read-onlyIdempotent

Return deterministic editable scene_apply operations for weathered wood, brushed/painted metal, stone, fabric or image weathering, plus enhanced material/image prompts and validation checks. Control scale, seed, finish and tint; hybrid graphs reuse existing image nodes and can blend an explicitly aligned color variant. Proposals only: no scene mutation, image-provider call, baking or Blender compute.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNo
seedNo
tintNoLinear RGB surface tint; for image weathering this is the deposit/wear tint.
briefNoAppearance intent used in bounded prompt enhancement; never sent to an image provider by this tool.
recipeYes
targetNoproduct
uvLayerNoRequired for image_weathering: existing authored UV layer, verified from the source material.
uvScaleNo
fineBumpNoProcedural fine bump; defaults on for procedural recipes and off for image weathering to avoid adding relief accidentally.
strengthNoWear and relief amount; zero removes procedural weathering and relief.
uvOffsetNo
roughnessNo
variationNoColor and finish variation, independent of the deterministic seed.
assignmentsNo
imageSourceNo
variantMaskNonoise
normalSourceNoOptional authored tangent-space OpenGL normal image; use a verified linear/non-color source.
preserveAlphaNoReuse the approved source alpha. A variant changes color only, not the approved silhouette.
variantFactorNoVariant blend amount; with noise masking this is the maximum variant contribution.
variantSourceNoOptional second base-color image registered to the approved source; never an independently generated companion PBR map.
imageExtensionNoREPEAT
roughnessSourceNoOptional dedicated scalar roughness image, not a packed ORM image. Its existing data color treatment is preserved; select packed channels with a custom graph.
uvRotationRadiansNo
featureScaleMetersNoNominal main feature size in meters, assuming applied object scale and one Blender unit per meter. Fine detail is smaller; verify against the object.
variantAlignmentConfirmedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changed
    • addedInput schema / properties / tint / items
      Added value: +{
      +  "maximum": 1,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / tint / maxItems
      Added value: +3
    • addedInput schema / properties / tint / minItems
      Added value: +3
    • removedInput schema / properties / tint / prefixItems
      Removed value: -[
      -  {
      -    "maximum": 1,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "maximum": 1,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "maximum": 1,
      -    "minimum": 0,
      -    "type": "number"
      -  }
      -]
    • addedInput schema / properties / uvOffset / items
      Added value: +{
      +  "maximum": 10000,
      +  "minimum": -10000,
      +  "type": "number"
      +}
    • addedInput schema / properties / uvOffset / maxItems
      Added value: +2
    • addedInput schema / properties / uvOffset / minItems
      Added value: +2
    • removedInput schema / properties / uvOffset / prefixItems
      Removed value: -[
      -  {
      -    "maximum": 10000,
      -    "minimum": -10000,
      -    "type": "number"
      -  },
      -  {
      -    "maximum": 10000,
      -    "minimum": -10000,
      -    "type": "number"
      -  }
      -]
    • addedInput schema / properties / uvScale / items
      Added value: +{
      +  "exclusiveMinimum": 0,
      +  "maximum": 10000,
      +  "type": "number"
      +}
    • addedInput schema / properties / uvScale / maxItems
      Added value: +2
    • addedInput schema / properties / uvScale / minItems
      Added value: +2
    • removedInput schema / properties / uvScale / prefixItems
      Removed value: -[
      -  {
      -    "exclusiveMinimum": 0,
      -    "maximum": 10000,
      -    "type": "number"
      -  },
      -  {
      -    "exclusiveMinimum": 0,
      -    "maximum": 10000,
      -    "type": "number"
      -  }
      -]
  2. Added

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, and the description is consistent with all of them. It adds genuinely new behavior: the output is a proposal of scene_apply operations rather than applied mutation, prompts are enhanced but never sent to an image provider, and validation checks are included. This is meaningful disclosure beyond the annotation set.

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?

Two dense sentences, front-loaded with the return type and material families, followed by controls and then the read-only constraint. No filler, though the middle sentence packs a lot of capabilities into one clause chain.

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?

For a 25-parameter tool with nested source objects and no output schema, the description establishes the return shape (scene_apply operations), the proposal-only nature and the main control axes. Remaining gaps are minor given the schema carries the per-field detail and no output schema exists to explain.

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?

With 25 parameters at only 48% schema description coverage, the description must compensate, and it does so at a high level by naming the control axes (scale, seed, finish, tint) and the hybrid-graph sources (existing image nodes, explicitly aligned color variant). It maps well onto featureScaleMeters, seed, roughness, tint, the *_Source objects and variantAlignmentConfirmed, though it leaves many individual parameters to 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+resource: it returns deterministic editable scene_apply operations for named material families (weathered wood, brushed/painted metal, stone, fabric, image weathering). It also exposes the hybrid-graph capability, which helps distinguish it from the material_from_image/material_from_maps siblings, though it never names those alternatives explicitly.

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?

The 'Proposals only: no scene mutation, image-provider call, baking or Blender compute' sentence tells the agent the boundary of the tool, and hybrid graphs are framed as reusing existing image nodes. However, no sibling is named and no condition is given for choosing this over material_from_image, material_from_maps or material_nodes, so the when-to-use guidance is implied rather than stated.

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