ShaderToy-MCP
Consulte e interaja com shaders do ShaderToy usando modelos de linguagem de grande escala.
Documentação
ShaderToy-MCP
Servidor MCP para ShaderToy, um site para criar, executar e compartilhar shaders GLSL (https://www.shadertoy.com/). Ele conecta LLMs como Claude ao ShaderToy através do Model Context Protocol (MCP), permitindo que o LLM consulte e leia a página web inteira, possibilitando que ele crie shaders cada vez mais complexos que normalmente não seria capaz de fazer.
Exemplo do shader complexo que ele gera:
Oceano (https://www.shadertoy.com/view/tXs3Wf)
Montanhas (https://www.shadertoy.com/view/W3l3Df)
Chuva Digital Matrix (https://www.shadertoy.com/view/33l3Df)
Recursos
- Obter informações sobre qualquer shader no ShaderToy
- Buscar shaders disponíveis no ShaderToy através de um prompt de busca
- Gerar shaders complexos aprendendo com shaders existentes no ShaderToy
Ferramentas MCP
- get_shader_info()
- search_shader()
Instalação
No Mac, instale o uv como
brew install uv
No Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
e depois
set Path=C:\Users\nntra\.local\bin;%Path%
Caso contrário, as instruções de instalação estão no site deles: Instalar uv
Integração com Claude Desktop
Clone o projeto com git clone https://github.com/wilsonchenghy/ShaderToy-MCP.git
Vá para Claude > Configurações > Desenvolvedor > Editar Configuração > claude_desktop_config.json para incluir o seguinte:
{
"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
}
}
}
}
Assim que o arquivo de configuração for definido no Claude, você verá um ícone de martelo para o MCP. Teste com os comandos de exemplo para ver se ele utiliza corretamente as ferramentas do MCP.
Comandos de Exemplo
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 ) {}