An MCP server that gives game gun models real surface finishes, worn where use wears a gun.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
claude mcp add coatinglab-mcp -- python -m coatinglab-mcp{
"mcpServers": {
"coatinglab-mcp": {
"command": "python",
"args": ["-m", "coatinglab-mcp"]
}
}
}MCP Servers overview
<h1 align="center">Coating Lab</h1>
<!-- mcp-name: io.github.hpdkhoa/coatinglab-mcp -->
<p align="center"><strong>Real surface finishes for game gun models, worn where use wears a gun.</strong></p>
<p align="center">
<a href="LICENSE"><img alt="license: MIT" src="https://img.shields.io/badge/license-MIT-blue"></a>
<a href="pyproject.toml"><img alt="Python 3.10+" src="https://img.shields.io/badge/Python-3.10%2B-3776ab?logo=python&logoColor=white"></a>
<a href="https://pypi.org/project/coatinglab-mcp/"><img alt="PyPI: coatinglab-mcp" src="https://img.shields.io/pypi/v/coatinglab-mcp?label=PyPI&logo=pypi&logoColor=white&color=3775a9"></a>
<a href="https://registry.modelcontextprotocol.io/v0/servers?search=coatinglab-mcp"><img alt="MCP Registry: coatinglab-mcp" src="https://img.shields.io/badge/MCP%20Registry-coatinglab--mcp-6f42c1"></a>
<a href="https://www.blender.org/download/"><img alt="Blender: 4.2+" src="https://img.shields.io/badge/Blender-4.2%2B-e87d0d?logo=blender&logoColor=white"></a>
<a href="#tools"><img alt="tools: 13" src="https://img.shields.io/badge/tools-13-orange"></a>
<a href="src/coatinglab/data/finishes.json"><img alt="finishes: 21 sourced" src="https://img.shields.io/badge/finishes-21%20sourced-orange"></a>
</p>
An MCP server that gives game gun models real surface finishes, worn where use wears a gun.
- **A finish library with sources.** Anodized aluminium, manganese and zinc phosphate, blued and nitrided steel,
ceramic coatings (FDE, OD green, tungsten, graphite, coyote), stainless, polymer, rubber, brass, copper, lead,
walnut. Each is a physically based value (linear colour, metallic, roughness) with what shows when it wears through
and the sources of its numbers. Values reasoned from descriptions are marked as estimates.
- **Coating variants.** A spec puts a finish on each material slot of a model, in as many variants as you want (an
issued rifle, a two-tone FDE build, an abused one), each at a wear level: new, issued, worn or abused.
- **Wear from evidence, baked once.** In Blender, into the model's vertex colours: exposed edges, where the hands work
the gun (its grip, the support hand, the controls), where parts slide (a magazine in its well, a stock on its tube),
and dirt where the surface is occluded and round the muzzle and the port. Every variant reads the same masks, so a
new variant costs nothing.
- **Checks.** Every finish against the rules physically based rendering rests on. Every variant's worn share against
its level, and no wear inside corners.
- **One formula everywhere.** The checks, the look-dev renders and an engine's material compute wear the same way
(`coat.py`), so what passes is what the player sees.

Model Lab ([modellab-mcp](https://github.com/hpdkhoa/modellab-mcp)) builds give their own slots (upper, lower,
barrel and more), marks and parts: `spec_for_modellab` makes a coating spec from a build in one call.
## Install
Python 3.10 or later and [Blender](https://www.blender.org/download/) 4.2 or later.
pip install coatinglab-mcp
```json
{"mcpServers": {"coatinglab": {"command": "coatinglab-mcp"}}}
```
| Setting | Meaning |
|---|---|
| `COATINGLAB_OUT` | The only folder Coating Lab writes to. `~/.coatinglab` by default. |
| `COATINGLAB_BLENDER` | Blender, when it is not on the PATH or in the usual install folder. |
| `COATINGLAB_LIBRARY` | A finishes JSON of your own, merged over the built-in library. |
| `COATINGLAB_WAIT_FOR` | Process names that hold the machine. A bake waits for none of them to run. |
## Tools
| Tool | What it does |
|---|---|
| `list_finishes`, `read_finish` | The library, and one finish with its notes and sources. |
| `check_library`, `check_finish` | The library, or a finish of your own, against the physical rules. |
| `list_wear_levels`, `list_templates` | The wear levels, and the ready variant sets. |
| `spec_for_modellab` | A coating spec for a Model Lab build. |
| `validate_spec` | A spec's problems: a slot without a finish, a finish on the wrong material. |
| `bake` | Bakes the wear masks into a copy of the model. |
| `check_coating` | Each variant's wear against its level, and wear kept out of corners. |
| `render_variants` | Look-dev renders and a sheet. |
| `engine_params` | A variant's values by slot for an engine material. |
## The masks and the formula
The bake writes the vertex colour `Col`:
| Channel | Meaning |
|---|---|
| R | Edge: 1 on flat ground, 0 on a sharp exposed edge |
| G | Handling: 1 where the hands work the gun |
| B | Rub: 1 along the lines parts slide on |
| A | Dirt: 1 where the surface is occluded, and round the muzzle and the port |
An engine's material follows the formula in `src/coatinglab/coat.py`. A wear level is a threshold: the higher the
level, the weaker the mask that already wears through. A grunge texture breaks wear up but never makes wear.
## What is estimated
- Every roughness value. No source maps a finish's surface to a rendering roughness.
- The colours of the anodized, phosphate, blued, nitrided and most ceramic finishes. The standards set processes, not
colours. OD green and coyote come from FED-STD-595 colour numbers.
- The wear amounts. Sources say where guns wear, not how fast. Each level is set so Model Lab's M4A1 lands in the
middle of its band.
- A hand's zone is a sphere: on a round handguard the support hand's wear reaches its top as well as its underside.
## License
MIT
What people ask about coatinglab-mcp
What is hpdkhoa/coatinglab-mcp?
+
hpdkhoa/coatinglab-mcp is mcp servers for the Claude AI ecosystem. An MCP server that gives game gun models real surface finishes, worn where use wears a gun. It has 1 GitHub stars and its last recorded update is dated 2026-10-15.
How do I install coatinglab-mcp?
+
You can install coatinglab-mcp by cloning the repository (https://github.com/hpdkhoa/coatinglab-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is hpdkhoa/coatinglab-mcp safe to use?
+
Our security agent has analyzed hpdkhoa/coatinglab-mcp and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains hpdkhoa/coatinglab-mcp?
+
hpdkhoa/coatinglab-mcp is maintained by hpdkhoa. The last recorded GitHub activity is dated 2026-10-15, with 0 open issues.
Are there alternatives to coatinglab-mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy coatinglab-mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/hpdkhoa-coatinglab-mcp)<a href="https://claudewave.com/repo/hpdkhoa-coatinglab-mcp"><img src="https://claudewave.com/api/badge/hpdkhoa-coatinglab-mcp" alt="Featured on ClaudeWave: hpdkhoa/coatinglab-mcp" width="320" height="64" /></a>More MCP Servers
Reverse engineer anything with agents, from app behavior down to native binaries.
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev