Skip to main content
Glama
graysonchalmers

Material Maker MCP

Material Maker MCP

Ein MCP-Server, der es einem KI-Assistenten ermöglicht, Material Maker Node-Graphen aus natürlicher Sprache zu erstellen, sie headless in PBR-Texturkarten zu rendern und bearbeitbare .ptex-Dateien zurückzugeben, die du in der App fertigstellst.

Du beschreibst ein Material in einem Satz. Der Assistent entwirft den Node-Graphen, der Server validiert ihn gegen Material Makers eigenen Node-Katalog und rendert ihn mit Godot, und du bekommst die Texturkarten plus einen bearbeitbaren Graphen zurück. Der Assistent bringt dich fast ans Ziel; den Rest feilst du in Material Maker aus.

️ Super, super, super Alpha. Bitte zuerst lesen.

Ich bin Künstler und Animator in der Spieleindustrie, kein Softwareentwickler. Ich weiß nicht wirklich, was ich auf der Code-Seite tue. Dieses Projekt wurde hauptsächlich von KI-Assistenten gebaut, während ich die Richtung vorgegeben habe, und es befindet sich in einem extrem frühen, groben, experimentellen Stadium.

Was das für dich bedeutet:

  • Erwarte Defekte. Raue Kanten, scharfe Ecken, Dinge, die nur auf der einen Maschine funktionieren, auf der sie gebaut wurden. Es wurde auf genau einem Setup verifiziert (Windows, ein bestimmter Godot-Build, ein bestimmter Material Maker Checkout).

  • Keine Stabilitätsversprechen. Alles kann sich zwischen Versionen ändern oder brechen. Es gibt keine Testabdeckung über einen kleinen Smoke- und Unit-Testsatz hinaus.

  • Nicht produktionsreif. Bitte verlass dich für nichts Wichtiges darauf. Sichere deine Arbeit. Geh davon aus, dass es sich danebenbenimmt.

  • Die „Qualität“-Messlatte für Materialien ist bewusst niedrig angesetzt. Das Ziel ist „bringt dich zu 80 % ans Ziel, damit du in der App fertigstellst“, nicht „fotorealistisch“. Sieh dir die quality/-Auswertung an, um genau zu sehen, wie gut (und wie schlecht) es bei 15 Prompts abschneidet: Aktuell besteht es 11 davon nach einem großzügigen, künstlerischen Augenmaß-Standard.

Ich teile es offen, weil es ein lustiges Experiment ist und jemand es nützlich finden oder darauf aufbauen möch te, nicht weil es ausgereift ist. Feed back, Issues und „du machst das falsch“- Korrekturen von echten Entwicklern sind sehr willkommen.

Related MCP server: Blender MCP

Galerie

Jedes dieser Beispiele wurde vom Server aus dem einzeiligen Prompt daneben erstel t und dann headless gerendert. Vollständige Graphen und Vorschauen findest du in examples/.

rote Backsteinmauer

poliertes graues Granit

gebürstetes Aluminium

„rote Backsteinmauer“

„poliertes graues Granit“

„gebürstetes Aluminium“

verwittertes Kupfer

moosiger Waldboden

braunes Leder

„verwittertes Kupfer“

„moosiger Waldboden“

„braunes Leder“

So funktioniert es

Material Maker Graphen sind einfaches JSON (.ptex), und Material Maker bringt einen headless CLI-Exportmodus mit. Dieser Server setzt auf einem vorhandenen Material Maker Checkout auf:

  1. Ein Katalog-Builder liest Material Makers Node-Definitionen (addons/material_ maker/nodes/*. mmg) in einen maschinenlesbaren Katalog ein, gege den der Assistent seine Graphen entwirft.

  2. Der Assistent entwirft einen Graphen als .ptex-JSON. Der Server validiert ihn gege den Katalog (gibt Fehler als Daten zurück, sodass der Assistent sich selbst korrigieren kann) und rendert ihn dann, indem er Godots --export-material- Modus steuert.

  3. Gerendere Texturkarten kommen als Bilddateien zurück (Albedo, Normal, Rauheit/Metallic, Höhe), und die .ptex wird gespeichert, damit du sie in Material Maker öffnen kannst.

Voraussetzungen

  • Python 3.13+

  • Godot 4.7.x (die Standard-Desktop-Binärdatei; der Server bevorzugt auf Windows, falls vorhanden, den passenden _console.exe- Build, um Render-Logs zu erfassen)

  • Ein Material Maker Projekt-Checkout auf der Platte. Der Server liest die Node-Definitionen und die gebündelten Beispiele dieses Checkouts und steuert dessen headless Export. Klone es von github.com/RodZill4/material-maker. Material Maker benötigt eine steam_appid.txt (mit dem Inhalt 4110830) im Wurzelverzeihnis des Checkouts; andernfalls startet die App sich selbst neu und beendet sich beim headless Rendern. Der Upstream-Klone enthält bereits eine solche Datei.

Installation

git clone https://github.com/graysonchalmers/Tool-MaterialMaker-MCP.git
cd Tool-MaterialMaker-MCP
python -m venv .venv
# Windows:  .\.venv\Scripts\activate
# macOS/Linux:  source .venv/bin/activate
pip install -e .

Kopiere dann die Umgebungsvorlage und richte sie für deine Maschine ein:

cp .env.example .env

Bearbeite .env:

MM_GODOT_BINARY=/path/to/Godot_v4.7.x_console.exe
MM_PROJECT_PATH=/path/to/material-maker
MM_OUTPUT_DIR=/path/to/where/rendered/maps/should/go

.env ist gitignored. Die Konfiguration kann auch über MM_*- Umgebungsvariablen bereitgestellt werden, die Vorrang vor .env haben.

Verifizieren

Zwei Smoke-Skripte belegen, dass der Render-Pfad durchgängig funktioniert:

# Render a bundled example headlessly and confirm PNGs appear
python smoke/smoke_mcp.py

Unter Windows gibt es außerdem einen PowerShell-Smoke-Test, der direkt über Godot rendert:

pwsh smoke/smoke.ps1

Führe die Testsuite aus (der einzige Test, der Godot startet, ist als integration markiert):

pytest -q -m "not integration"   # fast unit + validation tests
pytest -q                        # everything, including a real render

Mit einem MCP-Client verbinden

Der Server spricht MCP über stdio. Nach pip install -e . ist er als mm-mcp in deinem PATH. Richte deinen Client mit den drei gesetzten MM_*- Variablen auf diesen Befehl aus.

Beispiel für Claude Desktop / Claude Code (claude_desktop_config. json oder eine entsprechende MCP-Konfiguration):

{
  "mcpServers": {
    "material-maker": {
      "command": "mm-mcp",
      "env": {
        "MM_GODOT_BINARY": "C:\\path\\to\\Godot_v4.7.1-stable_win64_console.exe",
        "MM_PROJECT_PATH": "C:\\path\\to\\material-maker",
        "MM_OUTPUT_DIR": "C:\\path\\to\\output"
      }
    }
  }
}

Wenn mm-mcp nicht im PATH des Clients liegt, verwende stattdessen das Python der venv: "command": "/abs/path/.venv/bin/python", "args": ["- m", "mm_mcp.server"].

Die Konfiguration wird beim Start validiert, sodass eine fehlende oder falsche MM_GODOT_BINARY / MM_PROJECT_PATH sofort mit einer Meldung fehlschlägt, die dir sagt, was zu tun ist, statt mitten in einem Render-Vorgang zu scheitern.

Werkzeuge

Der Server stellt sieben Werkzeuge und eine Ressource bereit:

Tool

Was es tut

list_node_types

Katalog-Node-Typen auflisten, optional nach Kategorie gefiltert

describe_node

Vollständige typisierte Eingänge/Ausgänge/Parameter für einen Node-Typ

validate

Einen .ptex-Graphen gege den Katalog validieren; gibt Probleme als Daten zurück

render_graph

Einen .ptex-Graphen in PBR-Texturkarten in einer bestimmten Größe rendern

save_graph

Einen .ptex-Graphen in einen Pfad schreiben

list_examples

Die gebündelten Material Maker Beispiele auflisten

load_example

Ein gebündeltes Beispiel als .ptex-Graphen laden

Die Ressource catalog://nodes stellt den vollständigen Node-Katalog bereit.

Hinweise und Stolperfallen

Gelernt beim Versuch, headless Rendering zuverlässig zum Laufen zu bringen (alles auf dem Setup dieses Projekts verifiziert):

  • Verwende --export-material, nicht --export. Godot 4 hat --export für sein eigenes Build-Export-Flag reserviert; das App-Flag von Material Maker ist --export-material.

  • Verwende auf Windows die _console.exe-Binärdatei, um stdout zu erfassen; die GUI-Exe liefert leere Logs.

  • Übergib nicht --headless; das Rendern von Texturen benötigt einen echten Rendering-Kontext.

  • Der Material Maker Checkout benötigt steam_appid.txt (4110830), sonst startet er sich selbst neu und beendet sich sofort.

  • Der normal_map-Node ist ein zusammengesetzter Node: Seine eigentlichen Parameter sind param0 (Puffergröße), param1 (Stärke), param2, param4, nicht amount/size.

Projektstatus

Sehr frühe Alpha (siehe die Warnung oben). Die Phasen 0 bis 3 meines eigenen groben Plans sind abgeschlossen und auf einer Maschine verifiziert. Siehe STATUS.md für das Gate-Protokoll und docs/PLAN.md für den Phasenplan. Die Qualität der erstellten Materialien wird anhand eines eingefrorenen Testsatzes mit 15 Fällen in qality/ gemessen; die aktuelle Auswertung: 11/15 brauchbar nach einem großzügigen, künstlerischen Augenmaß-Standard (siehe qality/scorecards/). „Verifiziert“ bedeutet hier „hat funktioniert, als ich es ausgeführt habe“, nicht „kampferprobt“.

Lizenz und Namensnennung

Dieses Projekt ist unter der MIT-Lizenz lizenziert (siehe LICENSE).

Material Maker ist unter der MIT-Lizenz lizenziert, Copyright (c) Rodolphe Suescun und Mitwirkende. Dieses Projekt steuert ein separates Material Maker Checkout und modifiziert oder verbreitet es nicht weiter.

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI-assisted 3D modeling and scene control in Autodesk Maya through natural language commands, supporting object creation, transformation, material application, and more.
    84
    7
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables conversational control of Adobe Substance 3D Painter for look-dev iteration, including baking, smart materials, and generator parameter tuning.
    MIT

View all related MCP servers

Related MCP Connectors

  • Create, browse, remix, collaborate on, and run durable AI workflow nodes from MCP hosts.

  • Build and run visual creative-production workflows from your AI agent.

  • Generate logos, social posts, app screenshots, comic panels & visual-novel assets from prompts.

View all MCP Connectors

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/graysonchalmers/Tool-MaterialMaker-MCP'

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