ShaderToy-MCP
Consulta e interactúa con shaders de ShaderToy usando modelos de lenguaje grandes.
Documentación
ShaderToy-MCP
Servidor MCP para ShaderToy, un sitio web para crear, ejecutar y compartir shaders GLSL (https://www.shadertoy.com/). Conecta LLMs como Claude con ShaderToy a través del Protocolo de Contexto de Modelo (MCP), permitiendo que el LLM consulte y lea la página web completa, lo que le permite crear shaders cada vez más complejos que normalmente no sería capaz de hacer.
Ejemplo del shader complejo que genera:
Océano (https://www.shadertoy.com/view/tXs3Wf)
Montañas (https://www.shadertoy.com/view/W3l3Df)
Lluvia Digital Matrix (https://www.shadertoy.com/view/33l3Df)
Características
- Obtener información sobre cualquier shader en ShaderToy
- Buscar shaders disponibles en ShaderToy mediante un prompt de búsqueda
- Generar shaders complejos aprendiendo de shaders existentes en ShaderToy
Herramientas MCP
- get_shader_info()
- search_shader()
Instalación
En Mac, instale uv como
brew install uv
En Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
y luego
set Path=C:\Users\nntra\.local\bin;%Path%
De lo contrario, las instrucciones de instalación están en su sitio web: Instalar uv
Integración con Claude Desktop
Clone el proyecto con git clone https://github.com/wilsonchenghy/ShaderToy-MCP.git
Vaya a Claude > Configuración > Desarrollador > Editar Configuración > claude_desktop_config.json para incluir lo siguiente:
{
"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
}
}
}
}
Una vez que el archivo de configuración se haya establecido en Claude, verá un ícono de martillo para el MCP. Pruebe con los comandos de ejemplo para ver si utiliza correctamente las herramientas MCP.
Comandos de Ejemplo
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 ) {}