ShaderToy-MCP
Query and interact with ShaderToy shaders using large language models.
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:
Ocean (https://www.shadertoy.com/view/tXs3Wf)
<img width="1470" alt="Screenshot 2025-04-02 at 1 58 17 AM" src="https://github.com/user-attachments/assets/40907327-111d-41eb-831e-831d36d7473a" />Mountains (https://www.shadertoy.com/view/W3l3Df)
<img width="1470" alt="Screenshot 2025-04-02 at 5 44 12 PM" src="https://github.com/user-attachments/assets/16e1d078-8443-42e6-a6fe-32046a7d73a3" />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 ) {}
Related Servers
Scout Monitoring MCP
sponsorPut performance and error data directly in the hands of your AI assistant.
Alpha Vantage MCP Server
sponsorAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
ZenML
Interact with your MLOps and LLMOps pipelines through your ZenML MCP server
SolTracker
Access real-time and historical token, wallet, and trading data from the Solana ecosystem via the Solana Tracker API.
ENC Charts MCP Server
Programmatically access and parse NOAA Electronic Navigational Charts (ENC) in S-57 format.
GitHub Workflow Debugger MCP
Diagnose and fix GitHub Actions workflow failures using the GitHub API.
System Diagnostics
An MCP server for system diagnostics and monitoring on Ubuntu using common command-line tools.
Fetter MCP
Get the most-recent Python package without vulnerabilities, and more.
Unimus MCP Server
A read-only server for the Unimus network configuration management system.
MCP-Inscription Server
Interact with Ordinals Inscriptions and display content from transactions.
MCP Proxy Server
Aggregates multiple MCP resource servers into a single interface.
pabal-resource-mcp
MCP server for ASO ↔ Web SEO data conversion.