MCP混音器编排器
托管多个LLM提供者(Claude、OpenAI等)的模型上下文协议(MCP)服务器,公开以Blender为中心的工具,并编排代理以自动化Blender作业。该项目还提供了一个Blender桥接客户端/插件,用于保存实时场景图并与MCP服务器交换操作。
功能(初始)
- 基于FastAPI的MCP兼容服务器,配备健康检查和虚拟工具
- 可插拔LLM主机和提供程序抽象存根
- Blender桥占位符(插件+脚本)专为无头/背景Blender设计
- 用于建模、着色、FX角色的编排器/代理脚手架
入门指南
需求
- Python 3.10+
- (可选)Blender 4.5+用于插件/桥接部件
安装
python -m venv .venv
.venv\\Scripts\\activate # Windows
pip install -e .[dev]运行MCP服务器(本地)
# optional: export config overrides
set MCP_PORT=8000
set MCP_HOST=127.0.0.1
set MCP_WORKSPACE=D:\MCPBLA
cd D:\MCPBLA
python -m mcpbla.server.mcp_server
# serves FastAPI on http://127.0.0.1:8000 by default入口点: mcpbla.server.mcp_server 自举 create_app(),通过注册所有工具 server.tools.registry.
快速演示(虚拟快照)
# 1) install in dev mode
pip install -e .[dev]
# 2) start MCP server (new terminal)
set MCP_PORT=8000
set MCP_HOST=127.0.0.1
set MCP_WORKSPACE=D:\MCPBLA
cd D:\MCPBLA
python -m mcpbla.server.mcp_server
# 3) send a dummy snapshot from another terminal
python scripts/demo_dummy_snapshot.py您应该看到类似于以下内容的JSON响应:
{
"status": "stored",
"session_id": "demo_session",
"objects_count": 1,
"metadata": {
"source": "blender_addon_stub"
}
}这将在不启动Blender的情况下验证网桥HTTP路径。
演示:连接并发送快照(不需要Blender)
python -m mcpbla.blender.scripts.demo_connect
python -m mcpbla.blender.scripts.demo_scene_snapshot集 MCP_SERVER_URL 如果您的服务器正在其他地方运行(默认 http://127.0.0.1:8000).
运行测试
python -m pytest工作室模式——全工作室测试
- Blender UI按钮 “运行完整工作室测试” 调用服务器端端到端脚本来验证studio工具。
- CLI等效:
cd D:\MCPBLA
python -m mcpbla.server.scripts.e2e_studio_test- 预期成果:打印一系列
OK步骤和退出代码为0;Blender UI显示ok: true. - 脚本位置:
src/mcpbla/server/scripts/e2e_studio_test.py. - 该脚本是自包含的:它加载MCP工具注册表,并在不进行额外设置的情况下执行存根操作/快照。
MCP主机设置(克劳德桌面/Claude代码)
- 复制
mcp/claude_desktop_config.example.json到%APPDATA%/Claude/claude_desktop_config.json(Windows)。 - 复制
mcp/claude_code_config.example.json到%APPDATA%/Code/User/globalStorage/anthropic.claude-dev/config.json(Windows)。 - 启动服务器:VS Code任务 “MCP:启动服务器” 或
python -m mcpbla.server.mcp_server从D:\MCPBLA和MCP_HOST=127.0.0.1,MCP_PORT=8000,MCP_WORKSPACE=D:\MCPBLA,PYTHONPATH=D:\MCPBLA\src. - 打开主机(Claude Desktop或Claude Code),验证工具是否列出,然后运行
studio_full_test(Blender按钮或CLI)确认连接。 - 镜像/公共配置是只读的;保留上面的私人副本作为真相的来源。
文档
- 架构:
docs/ARCHITECTURE_MDCPBLA.md - 搅拌机桥:
docs/BRIDGE_BLENDER_OVERVIEW.md - 测验:
docs/TESTS_MCPBLA.md
编排者和代理
编排器使用MCP工具计划和执行任务。关键MCP工具:
plan_task:根据指令创建计划。execute_plan:执行提供的计划。run_task:在一次通话中计划+执行。
HTTP有效负载示例(FastAPI端点):
POST /tools/plan_task/invoke身体:
{ "arguments": { "instruction": "create a cube and move it up" } }POST /tools/run_task/invoke身体:
{ "arguments": { "instruction": "shade the cube with a red material" } }运行编排器演示
cd D:\MCPBLA
python -m mcpbla.server.mcp_server # terminal 1
# in another terminal:
python -m mcpbla.blender.scripts.demo_run_taskBlender插件(N-panel,MCP类别)还有一个“运行演示任务”按钮,可以触发相同的编排器流。
场景状态(虚拟)
Stub工具现在在MCP服务器上维护一个内存中的逻辑场景(对象、位置、材质、fx)。使用MCP工具 get_scene_state (通过 /tools/get_scene_state/invoke)在运行任务后检查当前状态。
搅拌机侧执行
- 插件面板现在包括 “在Blender中运行演示任务”,它调用
plan_task在MCP服务器上,并在Blender中本地执行生成的步骤(在原点创建一个立方体并将其向上移动2m)。单击之前,请确保MCP服务器正在运行。
打包Blender插件
cd D:\MCPBLA
python scripts/package_addon.py
# output: dist/.zip可选清理旧安装:
python scripts/purge_installed_addon.py --dry-run
python scripts/purge_installed_addon.py在Blender中安装:首选项->附加组件->安装->选择生成的zip。
项目布局
请参阅服务器/、混合器/和脚本/文件夹的存储库树。每个领域都是模块化的,因此我们可以随着时间的推移扩展工具集、提供者和代理。
