Your AI assistant can already write C#. Now it can author shaders.
Shader Graph MCP runs a Model Context Protocol server inside the Unity Editor. Point any MCP client at it (Claude Code, ChatGPT via the Codex CLI, Cursor, Kimi) and describe the shader you want in plain language. It builds the graph node by node, wires it, compiles it, renders it, and looks at the result to correct its own mistakes.
No Node.js. No second process. No npm install—one C# package, running inside the editor.
WHY MOST AI-GENERATED SHADERS LOOK WRONG
A node schema can tell a model that Gradient Noise has a Scale input. It cannot tell it that leaving Scale at its default shatters a low-poly mesh into facets, that Position defaults to World and not Object, or that a Fresnel at Power 1 reads as cheap plastic.
So this package ships the part that is not in any schema: a production craft library of 21 documents and 244 topics, served directly to the assistant. Targets and passes. Custom lighting in URP with working HLSL. Look development, PBR value ranges, vertex displacement limits, transparency and sorting, performance budgets, and a symptom-to-cause diagnostic index.
Alongside it, a node codex covering every node in your project: what it computes as a formula, what it is for, and how it fails.
IT CHECKS ITS OWN WORK
Validation does not stop at "it compiled". The graph is imported, drawn, and measured: mean colour, per-channel variation, clipped fractions. A shader that compiles cleanly and renders as a solid white blob is reported as a problem, because that is exactly what a silently broken shader looks like.
Then it can render the material on any mesh, place it in a scene with lights and post-processing, and read exact pixel values back.
WORKS WITH
Claude Code · Claude Desktop · ChatGPT via the Codex CLI · Cursor · Kimi · anything that speaks MCP over HTTP
Setup is a one-line command in a terminal, shown with a copy button in the editor window.
REQUIREMENTS
Unity 6000.4 or newer · Shader Graph 17.x · Universal Render Pipeline
PRIVACY AND SECURITY
The server binds to 127.0.0.1 only and validates the Origin header on every request, so a web page cannot reach it. Asset paths are confined to your project's Assets folder. Nothing is uploaded anywhere; your project never leaves your machine.