{"name":"io.github.hpdkhoa/coatinglab-mcp","slug":"hpdkhoa-coatinglab-mcp","title":"Coating Lab","description":"Real surface finishes for game gun models: sourced finishes, variants, wear baked from use","url":"https://mcp.market/server/hpdkhoa-coatinglab-mcp","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":18,"stars":1,"forks":0,"downloads_week":null,"last_push_at":"2026-10-15T02:32:25.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/hpdkhoa/coatinglab-mcp","website":null,"version":"0.1.0","remotes":[],"packages":[{"registryType":"pypi","identifier":"coatinglab-mcp","version":"0.1.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"The only folder Coating Lab writes to; defaults to ~/.coatinglab","name":"COATINGLAB_OUT"},{"description":"Blender's executable, if it is not on the PATH or in the usual install folder","name":"COATINGLAB_BLENDER"},{"description":"A finishes JSON of your own, merged over the built-in library","name":"COATINGLAB_LIBRARY"},{"description":"Process names that hold the machine (e.g. UnrealEditor.exe); a bake refuses to start while one runs","name":"COATINGLAB_WAIT_FOR"}]}],"tools":[{"name":"bake","description":"Bakes the wear masks into a copy of the model (FBX for an engine, .blend for renders): about a minute.","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_coating","description":"Each variant against its wear level's band, wear kept out of corners, every finish physical.","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_finish","description":"A finish of your own against the rules before you add it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_library","description":"The library against the physical rules: the finishes that break one, and why (empty: all hold).","write_action":false,"price_micros":0,"input_schema":null},{"name":"describe_model","description":"Any model's meshes and material slots (an FBX), to write a coating spec for a model Model Lab did not make.","write_action":false,"price_micros":0,"input_schema":null},{"name":"engine_params","description":"A variant's values by slot for an engine material that follows the shared wear formula.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_finishes","description":"Every finish: name, process, colour (sRGB hex), metallic, roughness, what it wears to, measured or estimated.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_templates","description":"The ready variant sets (e.g. ar15: issued, new_black, fde_two_tone, odg_ceramic, tungsten_stainless, abused_parkerized).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_wear_levels","description":"The wear levels (new, issued, worn, abused): each mask's threshold and what the level looks like.","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_finish","description":"One finish in full, with its notes and sources.","write_action":false,"price_micros":0,"input_schema":null},{"name":"render_variants","description":"Look-dev renders of the variants (labelled: not a game's view) and a sheet of them.","write_action":false,"price_micros":0,"input_schema":null},{"name":"spec_for_modellab","description":"A coating spec for a Model Lab build: a template's variants on the slots it has, the wear zones from its marks.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate_spec","description":"Every problem with a coating spec: a slot without a finish, a finish that does not go on its material.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-10-15T05:08:43.368Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-15T05:08:43.308Z","components":{"code":{"score":25,"max":25,"notes":["15 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"coatinglab-mcp","version":"0.1.0","found":true,"license":"MIT","dependencyCount":2,"publishedAt":"2026-10-15T02:37:45.262394Z","repositoryUrl":"https://github.com/hpdkhoa/coatinglab-mcp"}],"repo":{"found":true,"owner":"hpdkhoa","repo":"coatinglab-mcp","archived":false,"pushedAt":"2026-10-15T02:32:25Z","stars":1,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/56827800?v=4","ownerCreatedAt":"2019-10-21T11:37:12Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/56827800?v=4&s=128","source":"github"},"presence":{"stars":1,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-10-15T02:32:25.000Z","score":18}}}},"grade_history":[],"reviews":[]}