MCP.so
登录

Blender MCP Server已精选

@ahujasid

基本信息

分类

其他

许可证

MIT

传输方式

stdio

作者

ahujasid

提交者

idoubi

关于 Blender MCP Server

让任意 LLM 都能使用 Blender 的开源 MCP

连接前先了解

文档核对日期:2026-10-25

适合什么场景

这个集成通过本地插件操作真实的 Blender 场景,与远程图片生成 API 不同。

配置与限制

当前 README 使用 mcp-for-blender,并说明旧 blender-mcp 命令仍兼容。需要同时配置 Blender 插件与 MCP 进程。若工具已连接但场景操作失败,先检查 Blender 和插件服务是否运行。

本说明依据所列文档核对,未代表通过账户认证的实际连接测试;建议检查项需要在你的环境执行。

Blender MCP Server 配置

使用下面的配置,将此服务器添加到你的 MCP 客户端。

{
  "mcpServers": {
    "blender": {
      "command": "uvx",
      "args": [
        "blender-mcp"
      ]
    }
  }
}

Blender MCP Server 工具

9

Check the connected Blender: its version, whether the addon matches this server, and which asset libraries and 3D generators are switched on. Call it once at the start. `libraries` are the search_assets sources and `generators` the generate_3d providers, each on or off for this user. "(Premium)" ones come with MCP for Blender Premium and don't use the user's own API keys. When pointing the user to Premium, link https://mcp-for-blender.com/premium?ref=mcp-status If outdated, tells the user how to update via `uvx mcp-for-blender install-addon` (then restart or re-enable the addon in Blender). `telemetry_consent` reports whether data collection is on, off, or null if Blender could not be reached. Use it to answer telemetry status questions.

Turn OFF collection of prompts, code, screenshots and scene data. Use this whenever the user asks to stop data collection, opt out of telemetry, or stop sharing their data. Takes effect immediately. This tool can only turn collection OFF. Turning it back on is done by the user in Blender under Preferences > Add-ons > Blender MCP.

Facts about the scene as text: what's there, where, how big, and how healthy meshes and rigs are. No image; to see the scene, use look. One header line (object counts, active, selection, mode), then one line per object with the fields you ask for. Top-level objects by default; root="Name" lists that object's hierarchy, query="chair" lists every object whose name contains the text. For anything else about an object, read it with execute_blender_code. Parameters: - fields: What to show per object (default: location, size, children, hidden). placement: location (world), size (world bounding box), ground (on ground, floating or below by), rotation (degrees), scale, parent contents: children (count), hidden, details (faces, bones or light power), materials, modifiers, animation health: topology (quads, tris, ngons, non-manifold and boundary edges, loose verts, poles), weights (vertices no deform bone moves, deform bones with no vertex group) settings: adds a line with the file, engine, frame range, resolution, camera, HDRI and unit scale - query: Name filter across all objects. - root: Object whose hierarchy to list. - limit: Maximum object lines (default 20). - user_prompt: The user's own words describing what they want, quoted verbatim.

Run Python in the user's live Blender (bpy, bmesh, mathutils). Whatever it prints is returned. Work in small steps and print what you need to know. Parameters: - code: The Python code to execute - user_prompt: The user's own words describing what they want, quoted verbatim (do not paraphrase or summarise). Pass the same goal on every call in a multi-step task so each action is linked to the intent behind it. Never substitute your own sub-goal, plan step, or status text; if the user has given no new instruction, repeat their previous words unchanged.

Record evaluation feedback for a captured trajectory step. Call it when the user reacts to a result: "accept" when they keep it ("looks good"), "reject" or "undo" when they reject it or ask to undo, and "correction" with their words as correction_text when they correct you ("too dark", "make it taller"). Parameters: - feedback: One of accept | reject | undo | correction - correction_text: Optional free-text correction or follow-up (especially for correction) - step_index: Optional 0-based step index; defaults to the last recorded step - user_prompt: Optional goal/prompt context for the feedback row

See the scene as one image. For counts, sizes and positions, use get_scene_info. Choose where from (mode) and how it's drawn (shading): - mode: viewport (what the user sees; default), camera (through the scene camera, at the render aspect), angles (the target from several sides, auto-framed; default front, right, top, three_quarter), frames (a strip over the animation). - shading: solid, material, rendered (EEVEE and Workbench only), wireframe (edges over a plain surface), xray (see-through, bones in front). Default: the viewport's. - image: Instead of the scene, show this image: "Render Result" after a render, another image in the file, or a file path. Parameters: - target: Object names to frame (children included). Default: every visible object. - views: For angles: up to 6 of front, back, left, right, top, three_quarter, or [x, y, z] directions from the target towards the eye ([0, -1, 0.2] is front, slightly above). - distance: Metres from the target's centre to the eye, for angles and frames views. Default: far enough to fit it; closer for detail or to stand inside a room. - frames / frame_count: For frames: explicit frame numbers, or how many to sample (2-12). - view: For frames: "camera", an angle name or an [x, y, z] direction; default the viewport. - max_size: Longest side in pixels (default 768). Images stay in the conversation, so go smaller for quick checks and larger only to read fine detail. - user_prompt: The user's own words describing what they want, quoted verbatim. Every setting changed to take the picture is restored afterwards.

Make one new textured 3D model from a text prompt or an image, and import it. One object per call: not a whole scene, the ground, or parts to assemble. It arrives at arbitrary scale and facing (meshy: real-world size, origin at the bottom). Each call can cost the user money or a monthly generation, so duplicate a generated object for repeats. Waits up to wait_seconds (at most 45), then imports. Generation usually takes 1-3 minutes: if it isn't done in time you get a job handle; call generate_3d(job=..., name=...) again to keep waiting. Repeating a request whose generation is still unfinished resumes it instead of paying again. Parameters: - prompt: Short English description of one object ("weathered wooden treasure chest"). - image: Instead of a prompt: an absolute image file path or an http(s) URL. Images attached in chat can't be passed: ask the user for a path or URL, don't fall back to text without asking. - name: Object name in the scene. Defaults to one made from the prompt. - provider: auto (default), tripo, hunyuan3d, hyper3d or meshy. Auto prefers the user's MCP for Blender Premium generators, then their own API keys. - quality: "standard" or "high" (Premium, not meshy). Omit for the user's default; "high" only when the user asks for more detail. - bbox_condition: hyper3d only: [length, width, height] proportions. - pose_mode: meshy only: "a-pose" or "t-pose" when the user asks for a character in an A-pose or T-pose (often to rig it). - job: A handle from an earlier call, to resume waiting for it. - user_prompt: The user's own words describing what they want, quoted verbatim.

Search a library of existing assets. The sources: - polyhaven: HDRIs, PBR textures and realistic models, all CC0. Search understands intent and synonyms ("couch" finds sofas). - sketchfab: a large catalogue of user-made models, realistic and specific ones included; licences and face counts vary per model. - polypizza: stylised low-poly models, CC0 or CC-BY (credit the creator). Parameters: - source: polyhaven, sketchfab or polypizza. - query: What you're looking for, in plain words. - asset_type: polyhaven only: hdris, textures, models or all. - category: Optional. polyhaven: a category path ("Metal/Sheet & Corrugated"). sketchfab: comma-separated categories. polypizza: e.g. "Furniture & Decor", "Nature", "Animals". - attributes: polyhaven only: filters like {"weather": "clear"}; an unknown key errors with the valid ones. - min_size_m: polyhaven only: minimum real-world size in metres. Use 2+ for walls, floors and ground so textures don't visibly repeat. - licence: polypizza only: "CC0" or "CC-BY". - animated: polypizza only: animated models only. - limit: Number of results. - previews: Attach thumbnails of the first N results (max 6; polyhaven and sketchfab). Cheaper than importing the wrong asset. - user_prompt: The user's own words describing what they want, quoted verbatim. Results include each asset's id; pass it to import_asset.

Download an asset found with search_assets and bring it into the scene. Parameters: - source: polyhaven, sketchfab or polypizza. - id: The asset's id (UID for sketchfab) from search_assets. - asset_type: polyhaven only, required: hdris (becomes the world lighting), textures (builds a PBR material) or models. - target_size: Size in metres of the model's largest dimension (chair 1.0, car 4.5, cup 0.12). Required for sketchfab, recommended for polypizza; library models come at arbitrary scale. - apply_to: polyhaven textures: object names to put the material on (replaces their materials). Without it the material is created but unused, and is lost if the file is saved. - resolution: polyhaven: 1k, 2k, 4k or 8k. 1k-2k for background, 4k for close-ups. - file_format: polyhaven, optional: hdr/exr for HDRIs, jpg/png/exr for textures. - user_prompt: The user's own words describing what they want, quoted verbatim. Afterwards check the reported bounding box, put the object on the ground, and look at it.

概览

什么是 Blender MCP Server?

Blender MCP(现名 MCP for Blender)是一个开源服务器,通过 Model Context Protocol 把 Blender 连接到 Claude 及其他 LLM,让 AI 可以根据聊天提示,在你正在运行的 Blender 中创建、查看和修改 3D 场景。

该项目由 GitHub 用户 ahujasid 维护,是第三方集成,并非 Blender 基金会出品。它由两部分组成:在 Blender 内部开启本地 socket 服务器的 Blender 插件,以及把客户端命令转发给插件的 Python MCP 服务器。PyPI 包已从 blender-mcp 更名为 mcp-for-blender,仓库也迁移到了 ahujasid/mcp-for-blender;现有的 uvx blender-mcp 配置仍可继续使用。

如何使用 Blender MCP Server?

前置条件:Blender 3.0+、Python 3.10+,以及 uv 包管理器。请使用 uv 的官方安装程序安装,而不是 pip install uv。

一行安装脚本会在需要时安装 uv,配置它检测到的 MCP 客户端(Claude Desktop、Claude Code、Codex、Cursor、VS Code、Windsurf 等),然后安装并启用 Blender 插件:

# macOS / Linux
curl -LsSf https://www.mcp-for-blender.com/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://www.mcp-for-blender.com/install.ps1 | iex"

如果已经安装了 uv,可以改为运行 uvx mcp-for-blender setup。如果只想安装插件,运行 uvx mcp-for-blender install-addon,然后在 Edit > Preferences > Add-ons 中启用 Interface: MCP for Blender。

Claude Desktop

Claude > Settings > Developer > Edit Config:

{
  "mcpServers": {
    "blender": {
      "command": "uvx",
      "args": ["mcp-for-blender"]
    }
  }
}

Claude Code

claude mcp add blender uvx mcp-for-blender

Cursor

在 Settings > MCP 中添加与上面相同的 mcpServers JSON,或者为单个项目写入 .cursor/mcp.json。在 Windows 上,使用 "command": "cmd" 并设置 "args": ["/c", "uvx", "mcp-for-blender"]。

VS Code

使用 README 中的 “Install in VS Code” 按钮,或注册一个 stdio 服务器,命令为 uvx,参数为 mcp-for-blender。

Codex

codex mcp add blender -- uvx mcp-for-blender

然后打开 Blender,在 3D 视口中按 N,打开 MCP for Blender 标签页;如果服务器尚未运行,点击 Start MCP Server。修改 AI 应用的配置后,请完全退出并重新打开该应用。

Blender MCP Server 的主要功能

  • AI 客户端与 Blender 通过本地 socket(默认 localhost:9876)双向通信。
  • 对象操作:创建、修改和删除对象,应用或更改材质与颜色。
  • 视觉校验:视口、相机、多角度、线框、X 光和动画条视图,以及渲染结果,让 AI 能检查自己的工作。
  • 在正在运行的 Blender 会话中执行 Python 代码。
  • 从 Poly Haven(CC0,无需密钥)、Sketchfab 和 Poly Pizza(二者都需要 API 密钥)搜索并导入素材。
  • 通过 Hyper3D Rodin、Hunyuan3D 或 Tripo 进行 AI 3D 模型生成,可使用你自己的密钥或可选的付费 Premium 服务。
  • 可选的安全模式(BLENDER_MCP_SAFE_MODE=1),会检查脚本并拦截文件、网络或进程访问等高风险操作。

Blender MCP Server 工具

当前版本把功能归并为九个工具:

  • 场景控制:execute_blender_code 在 Blender 中运行 Python;get_scene_info 按对象返回简洁的场景摘要。
  • 视觉反馈:look 从视口、相机、自动取景的多角度或动画帧展示结果,支持 solid、material、rendered、wireframe 或 X 光着色。
  • 素材:search_assets 和 import_asset 覆盖 Poly Haven 的 HDRI、纹理和模型,Sketchfab 模型以及 Poly Pizza 低多边形模型。
  • 生成:generate_3d 一次调用即可用 Tripo、Hunyuan3D 或 Hyper3D Rodin 生成并导入模型。
  • 状态与数据控制:get_addon_status 报告 Blender 与插件版本以及已启用的集成;disable_telemetry 和 record_trajectory_feedback 控制数据收集。

旧版本提供的是 get_viewport_screenshot、search_polyhaven_assets 等独立工具,因此基于旧版本整理的工具列表可能与此不同。

Blender MCP Server 的使用场景

  • 用一句提示搭建场景:“Create a low poly scene in a dungeon, with a dragon guarding a pot of gold.”
  • 设置灯光和材质:“用阴天午后的 HDRI 照亮场景,并给墙面加上生锈金属纹理。”
  • 把参考图转成 Blender 场景,或生成单个素材:“通过 Hyper3D 生成一个花园地精的 3D 模型。”
  • 用风格化素材布置关卡:“用 Poly Pizza 的低多边形家具把这个房间填满。”
  • 快速调整外观:“把这辆车改成红色金属质感”,或“把相机对准场景并改成等轴视图”。
  • 查看场景并导出结构:“获取当前场景信息,并据此做一个 threejs 草图。”

Blender MCP Server 与替代方案对比

Blender MCP 操控的是完整的 Blender 应用,包括它的 Python API、渲染以及外部素材库。如果面向游戏引擎,可以看看 Unity MCP Server 或 Godot MCP Server;如果在 Blockbench 中做低多边形建模,可参考 Blockbench MCP plugin。Blender 官方并未提供 MCP 服务器;这个社区项目在 GitHub 上有超过 30,000 颗星,是最受欢迎的选择。

Blender MCP Server 常见问题排查

  • spawn uvx ENOENT:图形界面客户端可能不会继承终端的 PATH。把 which uvx(Windows 上为 where uvx)得到的完整路径填为 command,然后完全重启客户端。
  • 连接问题:确认 Blender 中的插件服务器正在运行,并且客户端中已配置 MCP 服务器。不要同时在终端里手动运行 uvx 命令,且只运行一个客户端实例(例如 Cursor 或 Claude Desktop,不要两者同时)。
  • 因 conda 或 pyenv 导致安装失败:用 "args": ["--python", "3.11", "mcp-for-blender"] 固定 Python 版本,并设置 UV_PYTHON_PREFERENCE=only-managed;用 uv cache clean mcp-for-blender blender-mcp 清理过期缓存。
  • 超时:简化请求,或拆分成更小的步骤。
  • 下载 Poly Haven 素材时 Blender 卡住:下载在 Blender 主线程中进行,除非素材离相机很近,否则请选择 1k 或 2k 分辨率。

常见问题

1

Blender MCP 是官方的吗?

不是。README 说明它是第三方集成,并非 Blender 出品,由 GitHub 用户 ahujasid 与社区贡献者共同维护。

2

Blender MCP 免费吗?

免费。服务器和插件采用 MIT 许可证,Poly Haven 素材免费;Sketchfab、Poly Pizza、Hyper3D 和 Hunyuan3D 使用你自己的 API 密钥。另有可选的付费 Premium 服务,无需自备密钥即可进行 AI 模型生成。

3

blender-mcp 和 mcp-for-blender 有什么区别?

它们是同一个项目。PyPI 包已更名为 `mcp-for-blender`,`uvx blender-mcp` 仍可启动服务器。新安装建议使用新名称,`uvx mcp-for-blender setup` 会把旧配置切换过来。

4

Blender MCP 能和 Claude Code、Cursor、VS Code 一起用吗?

可以。README 记录了 Claude Desktop、Claude Code、Codex、Cursor、VS Code、OpenCode 和 Antigravity 的配置方法,setup 命令可以自动配置其中大部分客户端。

5

Sketchfab 或 Hyper3D 的 API 密钥填在哪里?

填在 Edit > Preferences > Add-ons > MCP for Blender 中,重启后仍会保留。无界面环境下,可使用 `BLENDERMCP_SKETCHFAB_API_KEY`、`BLENDERMCP_HYPER3D_API_KEY` 等环境变量。

6

让 AI 在 Blender 中运行代码安全吗?

`execute_blender_code` 可以运行任意 Python,所以请先保存工作。可以启用安全模式拦截高风险脚本,并让插件那个没有认证的 socket 只监听 `localhost`。

7

Blender MCP 会收集遥测数据吗?

默认会收集一条最少量的匿名使用记录;提示词、代码、截图等内容只有在你主动选择加入后才会收集。设置 `DISABLE_TELEMETRY=true` 可完全关闭。

8

Blender MCP 服务器能在 Docker 中运行吗?

可以。你可以用仓库构建镜像,并通过 `docker run -i --rm mcp-for-blender` 运行。Blender 仍在你的电脑上运行,容器通过 `host.docker.internal`(Linux 上使用 host 网络)连接到插件。

评论

其他 分类下的更多 MCP 服务器