
Shadertoy Mcp
ShaderToy 的 MCP 服务器,这是一个供人们分享 GLSL 着色器的网站。该 MCP 服务器使得 LLMs 能够制作通常无法实现的复杂着色器。
概述
ShaderToy-MCP
ShaderToy的MCP服务器,这是一个用于创建、运行和分享GLSL着色器的网站(https://www.shadertoy.com/)。它通过模型上下文协议(MCP)将Claude等LLM与ShaderToy连接起来,使LLM能够查询和读取整个网页内容,从而生成它通常无法实现的复杂着色器。
生成的复杂着色器示例:
海洋(https://www.shadertoy.com/view/tXs3Wf)
山脉(https://www.shadertoy.com/view/W3l3Df)
矩阵数字雨(https://www.shadertoy.com/view/33l3Df)
功能
- 获取ShaderToy上任意着色器的信息
- 通过搜索提示查找ShaderToy上可用的着色器
- 通过学习ShaderToy上现有着色器生成复杂着色器
MCP工具
- get_shader_info()
- search_shader()
安装
在Mac上,请安装uv
bash
brew install uv
在Windows上
bash
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
然后
bash
set Path=C:\Users\nntra\.local\bin;%Path%
其他安装说明请见其官网:安装uv
Claude桌面集成
使用git clone https://github.com/wilsonchenghy/ShaderToy-MCP.git
克隆项目
进入Claude > 设置 > 开发者 > 编辑配置 > claude_desktop_config.json添加以下内容:
json
{
"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" // 替换为你的API密钥
}
}
}
}
在Claude上设置好配置文件后,你会看到一个MCP的锤子图标。使用示例命令测试是否能正确使用MCP工具。
示例命令
生成一个{对象}的着色器代码,如果基于ShaderToy上某人的作品,请注明出处,代码遵循ShaderToy格式:void mainImage( out vec4 fragColor, in vec2 fragCoord ) {}