# Add to your Claude Code skills
git clone https://github.com/elliezu/SubstancePainterMCPGuides for using mcp servers skills like SubstancePainterMCP.
Last scanned: 9/13/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-09-13T09:01:48.641Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}SubstancePainterMCP is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by elliezu. Substance Painter MCP Server. It has 29 GitHub stars.
Yes. SubstancePainterMCP passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/elliezu/SubstancePainterMCP" and add it to your Claude Code skills directory (see the Installation section above).
SubstancePainterMCP is primarily written in Python. It is open-source under elliezu on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh SubstancePainterMCP against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
An MCP server that lets AI clients inspect, audit, edit, and export from a local Adobe Substance 3D Painter project.
Version 1.0.0 provides 79 focused MCP tools. It completes the guarded resource workflow with shelf discovery, persistent shelf imports, and event-driven shelf refresh jobs, on top of the planned project lifecycle, production baking, and transactional layer authoring added throughout the 0.x releases. It is live-validated against Substance 3D Painter 12.1.1.
This is an independent community project and is not affiliated with or endorsed by Adobe.
.spp backup before execution.| Component | Supported / validated |
|---|---|
| Adobe Substance 3D Painter | Live-tested with 12.1.1 |
| Painter Python API | Runtime reported 0.3.5 in the validated build |
| Python | 3.10 or newer |
| MCP Python SDK | mcp>=1.28,<2 |
| Transport | MCP stdio to Painter HTTP remote scripting |
| Painter endpoint | localhost:60041 by default |
Painter builds may expose newer features while reporting an older API version string. get_capabilities therefore probes the running application for supported channels, blend modes, OpenPBR behavior, and version-specific features.
| Tool | Purpose |
|---|---|
painter_status |
Check the connection, Painter/API versions, and whether a project is open. |
get_project_info |
Return the project path and Texture Sets. |
plan_project_creation |
Validate all new-project inputs, typed settings, output, backup, and current-context impact. |
get_project_creation_job |
Poll asynchronous project creation, recovery state, and output-file verification. |
get_shelf_refresh_job |
Poll the latest explicit shelf refresh and its crawling state. |
get_capabilities |
Probe channels, blend modes, and version-dependent runtime features. |
audit_project |
Report resolution, channels, layer hygiene, and outdated resources. |
inspect_baking |
Inspect enabled bakers, UV tiles, and mesh-map assignments without baking. |
inspect_baking_parameters |
Inspect typed common properties or one baker, including ranges and enum labels. |
preflight_bake |
Validate project state, mesh inputs, bakers, UV tiles, and expected maps for one or more Texture Sets. |
get_bake_job |
Read progress and terminal status for an asynchronous bake. |
get_mesh_reload_job |
Read completion status and Texture Set changes for a mesh reload. |
list_layers |
Return a recursive UID-based layer tree. |
find_layers |
Search by name, type, or visibility and include parent paths. |
snapshot_layer_tree |
Capture layers, masks, effects, active channels, and a deterministic digest. |
diff_layer_snapshots |
Compare snapshots by UID and report added, removed, or changed nodes. |
get_geometry_mask |
Inspect Mesh/UDIM mask state and available geometry elements. |
get_fill_parameters |
Inspect procedural values, editor metadata, ranges, enums, and presets. |
get_procedural_inputs |
Inspect bitmap, color, or Anchor sources used by procedural image inputs. |
list_anchor_points |
Discover Anchor Points with Texture Set, stack, and owner context. |
list_export_presets |
List built-in and shelf export presets. |
inspect_export_preset |
Resolve a preset and preview its exact map names without writing. |
list_export_profiles |
List curated VRChat, Blender, Unity, Unreal, and generic profiles. |
list_project_resources |
List resources referenced by the current project. |
list_shelves |
List configured shelves, paths, write capability, and current crawling state. |
search_resources |
Search resources by query, usage, URL, or type. |
find_outdated_resources |
Build a read-only replacement plan for outdated project resources. |
| Tool | Purpose |
|---|---|
create_fill_layer |
Create a Fill layer with an optional base color. |
create_paint_layer |
Create a Paint layer. |
create_group |
Create a layer group. |
plan_layer_recipe |
Validate a recipe, resolve channels, and preview backup/mutation scope. |
create_layer_recipe |
Create nested structures atomically, optionally after an .spp backup. |
set_geometry_mask |
Apply inclusion/exclusion masks using mesh names or UDIM numbers. |
insert_smart_material |
Apply a Smart Material at stack top or inside a group. |
apply_smart_mask |
Apply a Smart Mask with transactional cleanup on failure. |
set_fill_base_color |
Convert an sRGB input color into Painter's working color space. |
set_fill_channels |
Set multiple uniform channels, including Roughness, Metallic, and Emission aliases. |
get_fill_projection |
Inspect Fill projection mode and common UV transforms. |
set_fill_projection |
Set Fill, UV, or Triplanar projection and transforms transactionally. |
get_fill_sources |
Inspect material-mode or per-channel Fill sources. |
set_fill_resource |
Assign a resource:// asset to one channel or a complete Fill material. |
set_fill_parameters |
Transactionally update typed procedural Substance parameters. |
set_procedural_input |
Connect a verified resource to a procedural image input or reset its default. |
apply_fill_preset |
Apply a named preset exposed by the current procedural source. |
set_fill_anchor_source |
Bind an Anchor Point to one Fill channel or the complete material. |
set_fill_projection_advanced |
Configure UV, Triplanar, Planar, Spherical, or Cylindrical projection details. |
set_active_channels |
Replace a Fill or Paint layer's active channel set. |
set_layer_mask |
Add, replace, or remove a White/Black mask. |
insert_mask_effect |
Insert procedural or paint effects into a layer's mask stack. |
set_layer_properties |
Set visibility and channel-specific opacity or blend mode. |
rename_layer |
Rename a layer by UID. |
select_layers |
Select one or more layers by UID. |
delete_layer |
Delete a layer by UID. |
Layer names are not unique in Painter. All mutation tools therefore use the UIDs returned by list_layers or find_layers.
| Tool | Purpose |
|---|---|
plan_texture_export |
Resolve expected output files and conflicts without writing anything. |
export_textures |
Export within approved roots and verify every generated file and size. |
plan_profile_export |
Preview a curated engine-profile export. |
export_with_profile |
Export with a curated profile and verify generated files. |
save_project_copy |
Write a verified .spp backup without relocating the current project. |
create_project |
Back up the current context, asynchronously create/save a project, and recover on failure. |
open_project |
Switch to an approved .spp, requiring a backup when the current project is dirty. |
save_project |
Explicitly overwrite |