Claude Shader MCP 服务器

使用说明(Markdown 格式)

  • 项目简介
    • 该仓库实现了一个完整的 MCP 服务器端,用于 Unity 的 Shader MCP 场景。它暴露了多种工具、资源和与 AI 相关的查询能力,能够与 Unity Editor 端的 ShaderMCP Server 进行通信,并通过 Claude CLI 等 AI 服务进行文本分析和代码建议。
  • 主要功能点
    • MCP 服务器核心:使用 MCP 标准的 JSON-RPC 风格请求/响应,提供稳定的通信通道和会话管理。
    • 工具集成(Tools):包括 Shader 编译、变体分析、属性读取、代码获取、材质信息、材质日志、LSP 基于的着色器代码智能等工具。
    • 资源定义(Resources):提供管线信息、着色器 Includes、着色器关键字、编辑器平台等资源的读取和渲染。
    • AI 集成(AI / Claude CLI):通过 Claude CLI(Claude Agent/Claude Code 相关接口)实现对着色器的自动分析、解释与优化建议,支持流式输出。
    • Unity 端桥接(UnityBridge):通过 WebSocket 连接 Unity Editor 的 ShaderMCP 服务器,支持自动重连、UUID 匹配和请求/响应关联。
    • LSP 封装(Shader LSP client):将 shader-ls 作为外部进程运行,提供 hover、完成、签名帮助和诊断等功能(按需 lazy 启动)。
    • 安全与稳定性:对并发连接、请求超时、错误处理等做了健壮处理,具备断线重连与自检能力。
  • 安装步骤
    1. 准备环境
      • Node.js 18+(用于 MCP 服务端及 shader-mcp-server 依赖)
      • Unity Editor 2021.3 LTS 及以上(用于 Shader Inspector/Editor 端功能)
      • .NET 7.0+(用于 LSP/着色语言工具,非强制,LSP 功能可选)
    2. 获取 MCP 服务器
      • 通过仓库提供的源码构建,或直接使用 npm 包 unity-shader-mcp 在本地环境中运行(具体请参照 README 中的 npm 包配置信息)。
    3. 启动 MCP 服务器(以 stdio 传输为例)
      • MCP 服务器将通过标准输入输出(stdio)与 MCP 客户端通信。请确保客户端按文档提供的启动命令对接该服务器。
    4. 启动 Unity Editor 端 ShaderMCP 服务
      • 在 Unity 编辑器中打开 Shader MCP 的 Server Window,启动 WebSocket 连接以连接到本服务器。
    5. 使用 AI 与工具
      • 通过 MCP 客户端发起“ai/query”等方法调用,服务器会与 Claude CLI 进行对接并将结果返回 Unity。
  • 服务器配置(MCP 客户端需要的最少字段) 备注:MCP 客户端需要一个 JSON 配置来指向该 MCP 服务器。下面给出一个示例配置的字段含义说明,实际使用时请依据所属工具的具体配置格式进行应用。
    • server: unity-shader
    • command: npx
    • args: ["-y", "unity-shader-mcp"] 说明:
    • 该配置表示本地启动一个 MCP 客户端服务器,名称为 unity-shader,执行命令为 npx,参数为 -y unity-shader-mcp,用以启动 npm 包 unity-shader-mcp 并保持最新版本。 备选(Windows 环境)如需区分,请将 command 替换为 cmd,args 为 ["/c", "npx", "-y", "unity-shader-mcp"],以兼容 Windows 的执行方式。
  • 基本使用方法
    • 启动 Unity 端服务:在 Unity Editor 的 Shader MCP 面板中打开 Server Window,点击“Start Server”。
    • 连接 MCP 客户端:确保 MCP 客户端按上述配置指向本 MCP 服务器(unity-shader),并启动后建立连接。
    • 使用工具/资源:在 Shader Inspector 的 Shader、Materials、Logs、AI Chat 等标签中使用工具进行分析、读取资源和与 AI 互动。
    • AI 使用:在 AI Chat 面板中发起问题,服务器会通过 Claude CLI 进行处理并将结果流式返回至 Unity。
    • 出现连接/执行问题时,查看 Server 窗口日志以获取调试信息,必要时重启服务。

服务器信息