返回市场
混合器-MCP

混合器-MCP

作者:cwahlfeldt9 星标更新:2025-03-05

项目介绍

Blender MCP 服务器

一个用于管理和执行Blender脚本的模型上下文协议(MCP)服务器。

功能

  • 添加、编辑、执行和移除Blender Python脚本
  • 在无头Blender环境中执行脚本
  • 查看执行结果和错误
  • 跟踪脚本元数据(创建日期、最后修改日期、执行次数)

需求

  • Python 3.7+
  • 已安装并可访问的Blender
  • MCP库 (pip install mcp)

使用方法

  1. 启动服务器:

    python server.py
    
  2. 使用MCP客户端(如Claude Desktop)连接到服务器

  3. 使用提供的工具管理脚本:

    • add_script(name, content) - 添加新脚本
    • edit_script(name, content) - 编辑现有脚本
    • execute_script(name, blend_file=None) - 在Blender中执行脚本,可选指定.blend文件
    • remove_script(name) - 移除脚本
  4. 访问资源以获取信息:

    • scripts://list - 获取可用脚本列表
    • script://{name} - 获取特定脚本的内容
    • result://{name} - 获取脚本的执行结果

示例

基础示例

# 添加一个简单的脚本
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文件

# 添加一个处理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

工作原理

  1. 当添加脚本时,它会被存储在script_files/scripts目录下
  2. 当执行时,脚本会在无头Blender实例中运行
    • 如果指定了blend文件,Blender会先打开该文件再运行脚本
    • 否则,使用默认的空Blender场景
  3. 输出和错误被捕获并存储在script_files/results目录下
  4. 脚本的元数据被跟踪在script_files/metadata.json

安装

  1. 克隆此仓库
  2. 安装MCP库:pip install mcp
  3. 确保Blender已安装并可以从PATH访问

许可证

MIT