Blender Python协议服务器

一个提供Blender Python工具的模型上下文协议服务器,用于3D建模和渲染操作,支持通过标准化协议程序化控制3D场景、对象、材质和渲染。

  • by V-Sekai-archive
  • Elixir
  • 本地部署
  • 更新于
在 GitHub 查看 V-Sekai-fire/aria-forge-mcp

使用说明

BpyMcp

一个模型上下文协议(MCP)服务器,提供Blender Python(bpy)工具用于3D建模和渲染操作。此服务器允许MCP客户端通过标准化协议与Blender交互,从而实现对3D场景、对象、材质和渲染的程序化控制。

特性

  • 对象创建:创建具有可自定义参数的立方体和球体
  • 物料管理:将具有自定义颜色的材质应用于对象
  • 场景渲染:将场景渲染为具有可配置分辨率的图像文件
  • 场景信息:查询当前场景详细信息,包括对象和设置
  • 模拟模式:Python/Blender不可用时的回退功能

MCP工具

  • bpy_create_cube:在Blender场景中创建立方体对象
  • bpy_create_sphere:在Blender场景中创建球体对象
  • bpy_set_material:将材质应用于现有对象
  • bpy_render_image:将当前场景渲染为图像文件
  • bpy_get_scene_info:检索有关当前场景的信息

安装

如果 可用十六进制,该软件包可以安装 通过添加 bpy_mcp 到中的依赖项列表 mix.exs:

def deps do
  [
    {:bpy_mcp, "~> 0.1.0"}
  ]
end

Docker设置

该项目包括对开发和生产环境的Docker支持。

先决条件

  • Docker和Docker Compose
  • 至少4GB的可用RAM用于Blender操作

快速开始

# Clone the repository
git clone <repository-url>
cd bpy-mcp

# Start development environment
./docker-run.sh dev

# Or start production environment
./docker-run.sh prod

发展

# Start development server with hot reload
./docker-run.sh dev

# View logs
./docker-run.sh logs -f

# Open shell in container
./docker-run.sh shell

# Stop development server
./docker-run.sh stop

生产

# Build and start production server
./docker-run.sh prod

# View production logs
./docker-run.sh logs

# Stop production server
docker-compose -f docker-compose.prod.yml down

手动Docker命令

# Development
docker-compose up --build

# Production
docker-compose -f docker-compose.prod.yml up -d --build

# Clean up
docker-compose down -v

建筑

Docker设置使用多阶段构建:

  • 基础:常见依赖项(Erlang、Elixir、Blender)
  • 建造者 (sidecar):构建Elixir版本(构建后丢弃)
  • 运行时:仅发布最小生产映像

这种方法在确保可重复构建的同时,最大限度地减小了最终图像的大小。

发展

此项目包括用于一致开发环境的开发容器配置。

使用开发容器

  1. 确保您安装了Docker和VS Code的Dev Containers扩展
  2. 在VS Code中打开项目
  3. 出现提示时,选择“在容器中重新打开”或使用命令面板: Dev Containers: Reopen in Container
  4. 容器将自动设置完整的开发环境

dev容器包括:

  • 含OTP 26的灵丹妙药1.17.3
  • 预安装的依赖关系和Hex包管理器
  • Elixir开发的VS代码扩展
  • 使用uv进行Blender集成的适当Python环境

手动设置

如果你不想使用dev容器,你可以手动构建和运行Docker容器:

# Build the container
docker build --platform linux/amd64 -t bpy-mcp .

# Run with source mounting
docker run --rm -it --platform linux/amd64 -v $(pwd):/workspace -w /workspace bpy-mcp bash

容器内部:

mix deps.get
mix compile

# Start HTTP server (recommended for testing)
mix mcp.server

# Or start with stdio transport (recommended for IDEs)
mix mcp.stdio

HTTP服务器将在以下位置可用:

  • MCP端点: http://localhost:4000 (POST请求)
  • 健康检查: http://localhost:4000/.well-known/health (通过ex_mcp)

注: 用于IDE集成(VS代码/光标),stdio传输(mix mcp.stdio)是推荐的。

与MCP客户端连接

AI代理设置(VS代码和光标)

安装指南:参见 代理商.md 有关配置VS Code和Cursor以使用此MCP服务器的详细说明。

快速入门:

  1. 打开编辑器→ 命令面板(Shift + Cmd/Ctrl + P) → “打开MCP设置”
  2. 添加到 mcp.json:
{
  "mcpServers": {
    "bpy-mcp": {
      "command": "mix",
      "args": ["mcp.stdio"],
      "cwd": "/path/to/bpy-mcp"
    }
  }
}
  1. 保存并重新启动编辑器

看 代理商.md 有关详细的设置说明。

HTTP传输

要使用HTTP传输与MCP客户端连接,请使用以下配置客户端:

  • 服务器URL: http://localhost:4000
  • 协议:MCP JSON-RPC 2.0

客户端配置示例(适用于Claude Desktop或其他MCP客户端):

{
  "mcpServers": {
    "bpy-mcp": {
      "command": "mix",
      "args": ["mcp.server", "--transport", "http"],
      "env": {
        "PORT": "4000"
      }
    }
  }
}

标准运输

对于基于stdio的客户端:

{
  "mcpServers": {
    "bpy-mcp": {
      "command": "mix",
      "args": ["mcp.stdio"]
    }
  }
}

文档可以通过以下方式生成 ExDoc 并发表于 HexDocs。一旦发布,文档可以 在找到 https://hexdocs.pm/bpy_mcp.