Skip to main content
Glama

Generate PBR textures for a mesh you already have

texture_existing_asset

Replace missing or wrong PBR materials on an existing mesh without altering its geometry. Provide a local model or prior job ID, plus a text prompt or style reference, to get a cheaper, targeted retexture.

Instructions

SPENDS 3D CREDITS. Applies newly generated PBR materials to an EXISTING mesh, keeping its geometry untouched. Use this when you already own a model and only the materials are missing or wrong — it is cheaper than regenerating and preserves the mesh exactly. Provide the mesh as either modelPath (local .glb/.gltf/.fbx/.obj/.stl) or originalAssetJobId (a previous job from this server whose 3D task produced a model). Direct the material with EITHER prompt OR styleImagePath, not both. ASYNCHRONOUS: poll get_asset_job until "ready", then download_asset. NOTE: providers may only support retexturing meshes that originated from their own prior task; if a provider rejects an uploaded mesh, use originalAssetJobId instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pbrNo
specNoRequired with modelPath, so the result has a name and provenance.
promptNoText direction for the material.
modelPathNoAbsolute path to a local mesh file.
textureSeedNo
modelVersionNo
styleImagePathNoLocal image whose look should be transferred onto the mesh.
textureQualityNo"detailed" is the HD tier and costs more credits.detailed
textureAlignmentNo"geometry" aligns to the mesh shape; "original_image" to the reference image.
originalAssetJobIdNoA previous asset job from this server whose 3D task produced a model.
Behavior5/5

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

The description is richly transparent. It discloses cost ('SPENDS 3D CREDITS'), non-destructive behavior ('keeping its geometry untouched'), asynchronous operation with explicit polling instructions ('poll get_asset_job until "ready", then download_asset'), and a critical provider limitation with a fallback. These details go well beyond the annotations (readOnlyHint=false, destructiveHint=false, etc.) and give the agent a clear behavioral model.

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?

The description is substantial but every sentence serves a purpose: cost warning, function, use-case justification, input methods, material direction rule, async flow, and provider caveat. It is front-loaded with the cost and core purpose, and while it is longer than average, the information density justifies the length. The structure is logical and scannable.

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 tool with 10 parameters and nested objects but no output schema, the description covers the essential operational flow: how to provide the mesh, how to direct the material, how to handle the async result, and a failure case. It does not detail output structure, but that is handled by the referenced job flow. The description is complete enough for an agent to invoke correctly without reading the entire schema.

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?

The description clarifies the most important parameter interactions: the mutual exclusivity of prompt and styleImagePath ('EITHER prompt OR styleImagePath, not both') and the two valid inputs for the mesh (modelPath or originalAssetJobId). With 70% schema coverage, this adds critical value beyond the schema, though it does not explain every parameter (e.g., textureSeed, modelVersion), which is acceptable given their optional nature.

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 clearly states the tool's function: applying newly generated PBR materials to an existing mesh while preserving geometry. It specifies the resource (existing mesh) and the action (apply materials), and distinguishes itself from sibling tools like create_3d_asset by explicitly framing the use case as 'when you already own a model and only the materials are missing or wrong.' This makes the purpose unambiguous.

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 gives explicit instructions on when to use the tool (existing mesh, missing/wrong materials) and why it's preferable (cheaper, preserves geometry). It also explains two ways to provide the mesh and a fallback for provider limitations. However, it does not explicitly name alternative tools (e.g., create_3d_asset for new meshes) or state when NOT to use it beyond the implied existing-asset condition, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/theisegoria/game-asset-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server