Coating Lab
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| COATINGLAB_OUT | No | The only folder Coating Lab writes to. `~/.coatinglab` by default. | ~/.coatinglab |
| COATINGLAB_BLENDER | No | Blender, when it is not on the PATH or in the usual install folder. | |
| COATINGLAB_LIBRARY | No | A finishes JSON of your own, merged over the built-in library. | |
| COATINGLAB_WAIT_FOR | No | Process names that hold the machine. A bake waits for none of them to run. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_finishesB | Every finish: name, process, colour (sRGB hex), metallic, roughness, what it wears to, measured or estimated. |
| read_finishC | One finish in full, with its notes and sources. |
| check_libraryC | The library against the physical rules: the finishes that break one, and why (empty: all hold). |
| check_finishC | A finish of your own against the rules before you add it. |
| list_wear_levelsB | The wear levels (new, issued, worn, abused): each mask's threshold and what the level looks like. |
| list_templatesC | The ready variant sets (e.g. ar15: issued, new_black, fde_two_tone, odg_ceramic, tungsten_stainless, abused_parkerized). |
| spec_for_modellabC | A coating spec for a Model Lab build: a template's variants on the slots it has, the wear zones from its marks. |
| describe_modelA | Any model's meshes and material slots (an FBX), to write a coating spec for a model Model Lab did not make. |
| validate_specC | Every problem with a coating spec: a slot without a finish, a finish that does not go on its material. |
| bakeC | Bakes the wear masks into a copy of the model (FBX for an engine, .blend for renders): about a minute. |
| check_coatingD | Each variant against its wear level's band, wear kept out of corners, every finish physical. |
| render_variantsC | Look-dev renders of the variants (labelled: not a game's view) and a sheet of them. |
| engine_paramsD | A variant's values by slot for an engine material that follows the shared wear formula. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Most tools are cleanly separated by resource+action: discovery (list_finishes, read_finish, list_wear_levels, list_templates), production (spec_for_modellab, engine_params, bake, render_variants), and validation. The risk cluster is the four validation tools (check_library, check_finish, check_coating, validate_spec), which all sound like 'check' but operate on different objects; the descriptions mostly disambiguate them, though an agent may still hesitate between check_finish and check_library.
Most names follow verb_noun (read_finish, list_finishes, check_library, validate_spec, render_variants), which is predictable. A few deviate into noun-only forms (engine_params, bake, spec_for_modellab), a minor inconsistency but nothing confusing.
13 tools sit comfortably in the healthy range for a domain with discovery, validation, spec-generation, baking, and rendering stages. Each tool appears to earn its place without redundancy.
The workflow is covered end-to-end: inspect existing finishes/templates/wear levels, describe an external model, generate a spec, validate it, bake masks, and render look-dev sheets. The one gap is library mutation — check_finish validates 'a finish of your own... before you add it' but there is no add/update_finish tool, so that path dead-ends at manual editing.