What is MCP Server for ShaderToy, enabling LLMs to generate complex shaders.?
ShaderToy-MCP is an MCP Server for ShaderToy, a website for creating, running and sharing GLSL shaders. It connects LLMs like Claude with ShaderToy through Model Context Protocol (MCP), allowing the LLM to query and read the entire web page, enabling it to generate increasingly complex shaders. Features include retrieving info on any shader, searching for shaders, and generating complex shaders by learning from existing ones.
Documentation
ShaderToy-MCP
MCP Server for ShaderToy, a website for creating, running and sharing GLSL shader (https://www.shadertoy.com/). It connects LLM like Claude with ShaderToy through Model Context Protocol (MCP), allowing the LLM to query and read the entire web page, allowing it to make increasingly complex shader it normally isn't capable of.
Otherwise installation instructions are on their website: Install uv
\n\n## Claude Desktop Integration
Git clone the project with git clone https://github.com/wilsonchenghy/ShaderToy-MCP.git
Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json to include the following:
{
"mcpServers": {
"ShaderToy_MCP": {
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"mcp",
"run",
"<path_to_project>/ShaderToy-MCP/src/ShaderToy-MCP/server.py"
],
"env": {
"SHADERTOY_APP_KEY": "your_actual_api_key" // Replace with your API key
}
}
}
}
Once the config file has been set on Claude, you will see a hammer icon for the MCP. Test with the example commands to see if it correctly utilize the MCP tools.
\n\n## Example Commands
Generate shader code of a {object}, if it is based on someone's work on ShaderToy, credit it, make the code follow the ShaderToy format: void mainImage( out vec4 fragColor, in vec2 fragCoord ) {}