Blender模型上下文协议服务器

一个轻量级的Blender模型上下文协议服务器,用于在Blender中执行命令并与MCP客户端(如Claude Desktop、Amp等)交互。

  • by j4flmao
  • Go
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 j4flmao/go_blender_mcp

使用说明

Blender MCP Go(npm封装)

适用于任何MCP客户端: 克劳德桌面版, 安培 (ampcode.com)、光标、VS代码复制、临床、继续等。stdio上的相同二进制、相同JSON-RPC(protocolVersion: 2024-11-05).

用Go编写的Blender轻量级模型上下文协议服务器,打包用于npm分发。一个二进制、最小上下文、可选集成(Poly Haven、Hyper3D、Sketchfab、Hunyuan),通过UI或env标志控制。

概述

  • 转到MCP服务器: blender-mcp-go
  • Blender桥插件:在Blender中执行命令的简单TCP服务器
  • npm包装器:跨平台二进制文件 dist/,发射器在 npm/bin/blender-mcp-go.js

受BlenderMCP(Python)项目的启发并引用该项目——请参阅“参考文献”。

先决条件

  • 搅拌机≥3.6(按5.0.1测试)
  • Go≥1.22(用于构建二进制文件)
  • Node.js≥18(用于npm包装和发布)

快速设置

  1. 构建二进制文件(或使用CI工件):

    • 窗户: npm run build:win-x64
    • Linux: npm run build:linux-x64
    • macOS ARM: npm run build:darwin-arm64
    • 全部: npm run build:all
  2. 安装Blender桥接插件:

    • 文件: 搅拌机_桥/搅拌机_桥.py 或从以下网址获取:https://github.com/j4flmao/go_blender_mcp.git
    • 搅拌机→ Edit → 偏好→ 附加组件→ 安装→ 选择文件→ 启用
    • N面板→ MCP → 启动网桥(端口9876)
  3. 将MCP服务器添加到Claude Desktop(claude_desktop_config.json)--推荐(npx):

{
  "mcpServers": {
    "blender": {
      "command": "npx",
      "args": ["@j4flmao/go_blender_mcp"],
      "env": { }
    }
  }
}

编辑后重新启动Claude Desktop。

添加到OpenCode

OpenCode使用不同的配置格式 mcp 作为根密钥 command 作为一个数组。

全局配置位置:

  • 窗户: %APPDATA%\opencode\opencode.json
  • macOS/Linux: ~/.config/opencode/opencode.json

推荐(npx):

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "blender": {
      "type": "local",
      "command": ["npx", "-y", "@j4flmao/go_blender_mcp"],
      "enabled": true
    }
  }
}

或者通过项目配置--create opencode.json 在项目根目录中:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "blender": {
      "type": "local",
      "command": ["npx", "-y", "@j4flmao/go_blender_mcp"],
      "enabled": true
    }
  }
}

OpenCode的注意事项:

  • 配置密钥为 mcp (不是 mcpServers)
  • command 必须是数组: ["npx", "-y", "@j4flmao/go_blender_mcp"]
  • 必须包括 "type": "local" 用于stdio服务器
  • 编辑配置后重新启动OpenCode

添加到Amp(ampcode.com)

Amp使用与Claude相同的MCP模式,就在 amp.mcpServers 输入 settings.json.

设置文件位置:

  • 窗户: %APPDATA%\amp\settings.json
  • macOS/Linux: ~/.config/amp/settings.json
  • VS代码:设置→ 扩展→ Amp → MCP服务器(或编辑 settings.json 直接)

推荐(npx):

{
  "amp.mcpServers": {
    "blender": {
      "command": "npx",
      "args": ["-y", "@j4flmao/go_blender_mcp"],
      "env": {}
    }
  }
}

或者通过CLI(无需手动编辑文件):

amp mcp add blender -- npx -y @j4flmao/go_blender_mcp

无需持久配置的一次性测试:

amp --mcp-config "{\"blender\":{\"command\":\"npx\",\"args\":[\"-y\",\"@j4flmao/go_blender_mcp\"]}}" -x "List all objects in the current Blender scene"

Amp注意事项:

  • 中的工作空间级别配置 .amp/settings.json 需要 amp mcp approve blender 在第一次跑步之前。
  • 要限制公开哪些工具(建议保持上下文简洁),请使用 includeTools:
    "blender": {
      "command": "npx",
      "args": ["-y", "@j4flmao/go_blender_mcp"],
      "includeTools": ["get_scene_info", "list_objects", "create_object", "exec_python", "render_scene"]
    }
    
  • 验证Amp是否已拾取: amp mcp doctor → 应列出 blender 工具计数。
  1. 可选集成(UI驱动):

    • 在Blender N面板中,打开“集成”
    • Tick Sketchfab/Hyper3D/浑源/保利天堂
    • 输入API密钥(如适用)
    • 工具将在调用时尊重当前的切换
  2. npm用法(作为CLI):

    • 推荐: npx @j4flmao/go_blender_mcp
    • 可选: npm start (从以下位置启动特定于平台的二进制文件 npm/dist/)

CI/CD

  • GitHub Actions工作流构建Windows/Linux/macOS,并在以下情况下发布npm NPM_TOKEN 已设置
  • 看 .github/works/ci.yml

工具(高级)

  • 核心:场景信息、列表/获取/移动/创建/删除对象、材质、渲染、设置引擎、exec Python
  • 可选:
    • Poly Haven:HDRI/纹理/模型导入
    • Sketchfab:模型搜索(可下载/动画/装配过滤器)
    • Hyper3D:提交作业(罗丹)
    • 浑源:图像占位符→3D

结果预览

参考文献

  • BlenderMCP(Python,官方仓库):https://github.com/ahujasid/blender-mcp

备注

  • Bridge现在通过一个小定时器/队列在Blender主线程上执行操作,以避免崩溃。
  • 工具总是列出选项;调用时间检查确保禁用的集成返回明确的消息。

故障排除

  • 桥接器未运行:打开Blender N面板→ MCP → 启动桥;确保端口9876空闲。
  • Sketchfab返回非字符结果:使用过滤器(animated=true, rigged=true)或细化查询。
  • 渲染速度慢:降低采样率或使用EEVEE进行预览。
  • 安装后缺少二进制文件:运行 npm run build:all 或确保CI工件可用。
  • Claude没有看到工具:验证配置路径是否使用绝对路径;更改后重新启动Claude。

贡献

  • 分叉并创建特征分支。
  • 保持Go代码格式(gofmt -w .)并避免添加严重的依赖关系。
  • 更喜欢简洁的单行工具输出,以尽量减少MCP上下文。
  • Pull Requests应包括简短的描述,并在相关的情况下提供Blender结果的截图。

许可证

MIT许可证。看 许可证 了解详情。

致谢

  • 感谢BlenderMCP社区和Poly Haven、Hyper3D(罗丹)、Sketchfab和浑源等集成。
  • Blender商标归Blender基金会所有。