Loading languages...
SH

ShaderToy_MCP

@wilsonchenghy43

用于 ShaderToy 的 mcp servers,ShaderToy 是一个用于创建、运行和共享 GLSL 着色器的网站 (https://www.shadertoy.com/)。它通过模型上下文协议 (MCP) 将 Claude 等大语言模型与 ShaderToy 连接起来,使大语言模型能够查询和读取整个网页,从而能够编写其原本无法完成的日益复杂的着色器。

ShaderToy
GLSL
LLM
AI
shader generation

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.

Example of the complex shader it generates:

IMG_9029


Ocean (https://www.shadertoy.com/view/tXs3Wf)

Screenshot 2025-04-02 at 1 58 17 AM

Mountains (https://www.shadertoy.com/view/W3l3Df)

Screenshot 2025-04-02 at 5 44 12 PM

Matrix Digital Rain (https://www.shadertoy.com/view/33l3Df)

Features

  • Retriving info on any shader on ShaderToy
  • Search for shader available on ShaderToy through a search prompt
  • Generate complex shaders by learning from existing shaders on ShaderToy

MCP Tools

  • get_shader_info()
  • search_shader()

Installation

On Mac, please install uv as

brew install uv

On Windows

powershell -c "irm https://astral.sh/uv/install.ps1 | iex" 

and then

set Path=C:\\Users\\nntra\\.local\\bin;%Path%

Otherwise installation instructions are on their website: Install uv

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.

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 ) {}

# mcpServer Config

{
  "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"
      }
    }
  }
}

# stdio

uv run --with mcp[cli] mcp run src/ShaderToy-MCP/server.py
Transport:
stdio
Language:
Python
Created: 4/2/2025
Updated: 5/6/2026