ShaderToy-MCP
MCP-Server für ShaderToy, eine Website zum Erstellen, Ausführen und Teilen von GLSL-Shadern ( https://www.shadertoy.com/ ). Er verbindet LLMs wie Claude über das Model Context Protocol (MCP) mit ShaderToy. Dadurch kann LLM die gesamte Webseite abfragen und lesen und so immer komplexere Shader erstellen, die er normalerweise nicht erstellen kann.
Beispiel für den komplexen Shader, den es generiert:
Ozean ( https://www.shadertoy.com/view/tXs3Wf )
Berge ( https://www.shadertoy.com/view/W3l3Df )
Matrix Digital Rain ( https://www.shadertoy.com/view/33l3Df )
Merkmale
Abrufen von Informationen zu jedem Shader auf ShaderToy
Suchen Sie über eine Suchaufforderung nach auf ShaderToy verfügbaren Shadern
Generieren Sie komplexe Shader, indem Sie von vorhandenen Shadern auf ShaderToy lernen
Related MCP server: mcp-graphql-schema
MCP-Werkzeuge
get_shader_info()
search_shader()
Installation
Auf dem Mac installieren Sie uv bitte als
brew install uvUnter Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex" und dann
set Path=C:\Users\nntra\.local\bin;%Path%Ansonsten finden Sie Installationsanweisungen auf der Website: Install uv
Claude Desktop Integration
Klonen Sie das Projekt mit git clone https://github.com/wilsonchenghy/ShaderToy-MCP.git
Gehen Sie zu Claude > Einstellungen > Entwickler > Konfiguration bearbeiten > claude_desktop_config.json, um Folgendes einzuschließen:
{
"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
}
}
}
}Sobald die Konfigurationsdatei auf Claude eingerichtet wurde, wird ein Hammersymbol für das MCP angezeigt. Testen Sie mit den Beispielbefehlen, ob die MCP-Tools korrekt verwendet werden.
Beispielbefehle
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 ) {}