article
README
🚀 Blender MCP 服务器
一个用于管理和执行 Blender 脚本的 Model Context Protocol (MCP) 服务器,它可以帮助用户在无头 Blender 环境中轻松管理脚本的添加、编辑、执行和删除等操作,并能查看执行结果和错误,还能跟踪脚本元数据。
🚀 快速开始
- 启动服务器:
python server.py - 使用 MCP 客户端(如 Claude Desktop)连接到服务器
- 使用提供的工具管理脚本:
add_script(name, content)- 添加新脚本edit_script(name, content)- 编辑现有脚本execute_script(name, blend_file=None)- 在 Blender 中执行脚本,可选指定 .blend 文件remove_script(name)- 删除脚本
- 访问资源以获取信息:
scripts://list- 获取可用脚本列表script://{name}- 获取特定脚本的内容result://{name}- 获取脚本的执行结果
✨ 主要特性
- 添加、编辑、执行和删除 Blender Python 脚本
- 在无头 Blender 环境中执行脚本
- 查看执行结果和错误
- 跟踪脚本元数据(创建日期、上次修改日期、执行次数)
📦 安装指南
- 克隆此仓库
- 安装 MCP 库:
pip install mcp - 确保 Blender 已安装并可从 PATH 访问
💻 使用示例
基础用法
# 添加一个简单的脚本
add_script("hello_cube", '''
import bpy
# 删除现有对象
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()
# 创建一个立方体
bpy.ops.mesh.primitive_cube_add(size=2, location=(0, 0, 0))
print("创建了立方体!")
''')
# 执行脚本
execute_script("hello_cube")
# 获取结果
# 使用以下地址访问:result://hello_cube
高级用法
# 添加一个结合_blend文件的脚本
add_script("analyze_scene", '''
import bpy
# 打印当前场景的信息
print(f"当前 Blender 版本: {bpy.app.version_string}")
print(f"当前文件: {bpy.data.filepath}")
# 列出场景中的所有对象
print("\n场景中的对象:")
for obj in bpy.data.objects:
print(f" - {obj.name} ({obj.type})")
''')
# 指定_blend 文件执行脚本
execute_script("analyze_scene", blend_file="/path/to/your/project.blend")
# 获取结果
# 使用以下地址访问:result://analyze_scene
🔧 技术细节
- 添加脚本时,它会被存储在
script_files/scripts目录中 - 执行脚本时,会在无头 Blender 实例中运行
- 如果指定_blend 文件,则 Blender 会先打开该文件再执行脚本
- 否则,将使用默认的空 Blender 场景
- 输出和错误会被捕获并存储在
script_files/results目录中 - 脚本元数据会在
script_files/metadata.json中进行跟踪
📄 许可证
MIT
Scan to contact