Blender Pose MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Blender Pose MCPSet the head bone rotation to 30 degrees on X."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Blender Pose MCP
一个极简、专用的 Blender Pose MCP,只操作当前场景中唯一一个已存在的 Armature 的 Pose。它不提供建模、材质、权重、骨骼编辑、对象创建/删除或任意 Python 执行能力。
Codex -> MCP stdio server -> 127.0.0.1:8766 JSON/TCP -> Blender add-on组件
blender_pose_bridge/:安装到 Blender 的独立 Add-on。启用后自动监听127.0.0.1:8766,禁用时关闭 socket、后台线程和 timer。blender_pose_mcp/:在uv管理的 Python 环境中运行的官方 MCP Python SDK v2 stdio Server。reference/main.py:原始且不修改的SMPLest-X Loader参考实现。
Bridge 网络线程只收发 JSON 并把请求放入线程安全队列。所有 bpy 操作由
bpy.app.timers 回到 Blender 主线程执行。场景中没有 Armature 或存在多个
Armature 时,调用会明确失败;多个对象时错误中包含全部 Armature 名称。
Related MCP server: blender-mcp
安装 Blender Add-on
可直接压缩 blender_pose_bridge 文件夹:
ditto -c -k --sequesterRsrc --keepParent blender_pose_bridge blender_pose_bridge.zip在 Blender 中打开 Edit > Preferences > Add-ons > Install from Disk,选择
blender_pose_bridge.zip,然后启用 Blender Pose Bridge。它与原有
SMPLest-X Loader (Simplified) 使用不同的类名、Panel、PropertyGroup 和
Operator ID,可以同时启用。3D View 侧栏的 Pose Bridge 页会显示在线状态。
安装 MCP Python 环境(macOS + uv)
MCP Server 要在普通 Python 中运行,不使用 Blender 自带 Python。先安装 uv,
再同步项目环境:
brew install uv
uv sync其他安装方式见 uv 官方安装说明。
uv sync 会依据 pyproject.toml 创建 .venv、解析依赖并以 editable 模式安装
当前项目。依赖只有官方 mcp 包及其运行时依赖;不需要 PyTorch、Transformers、
sentence-transformers、LaBSE、Ollama、embedding/vector database 或本地 LLM,
也不需要手动激活虚拟环境。
添加到 Codex
把 /ABSOLUTE/PATH/blender-pose-tools 替换成仓库绝对路径:
codex mcp add blender-pose -- uv --directory /ABSOLUTE/PATH/blender-pose-tools run blender-pose-mcp也可以写入 ~/.codex/config.toml 或可信项目的 .codex/config.toml:
[mcp_servers.blender-pose]
command = "uv"
args = ["--directory", "/ABSOLUTE/PATH/blender-pose-tools", "run", "blender-pose-mcp"]
cwd = "/ABSOLUTE/PATH/blender-pose-tools"
startup_timeout_sec = 10
tool_timeout_sec = 60重启 Codex 后使用 /mcp,应看到 blender-pose 和下列工具:ping、
get_rig、get_pose、set_bone_pose、set_pose_batch、apply_smplx_pose、
reset_pose、undo、get_viewport、save_blend。
工具语义
set_bone_pose/set_pose_batch接收本地 Pose Bone 的 XYZ degree。absolute替换当前本地 rotation,delta将增量 quaternion 右乘到当前本地 rotation;两者都不会重置其他骨骼。一个 batch 只创建一个 Blender Undo step。apply_smplx_pose会像原脚本一样先重置 Pose,再完整导入 SMPL-X JSON。 它保留原脚本的 rotvec、Root、Hand、坐标系和matrix_localbasis 转换。reset_pose当前只接受{"scope": "all"},用matrix_basis恢复基础 Pose, 不修改 Rest Pose。get_pose返回每根骨骼的语义、父级、本地旋转,以及 Pose 后 head/tail 在 Armature 空间和世界空间中的坐标。get_viewport一次返回上述结构化 Pose 快照和固定的前、左、右、后四张正交 视图。PNG 既以内嵌 MCP 图片交给 Codex 视觉检查,也在系统临时目录中提供路径; 图片保持原纵横比且高度不超过 768px,截图完成后会恢复原来的视口方向,不污染 项目。save_blend永不自动调用。未曾保存过、没有文件路径的项目会返回错误。
完整 SMPL-X 参数形状与原脚本一致,例如:
{
"body_root_pose": [[0.0, 0.0, 0.0]],
"body_pose": [[0.0, 0.0, 0.0]],
"lhand_pose": [],
"rhand_pose": []
}测试
普通 Python 自动测试覆盖 tools/list、ping、参数校验、Blender 离线、无 Armature 和多个 Armature 错误:
uv run python -m unittest discover -s tests -p 'test_*.py' -v真实 Blender 后台测试只创建测试 Armature,不创建或修改 Mesh:
blender --background --factory-startup --python tests/blender_automated_test.py
blender --background --factory-startup --python tests/blender_conversion_test.py
blender --background --factory-startup --python tests/blender_tcp_test.py可选的前台 VIEW_3D 截图测试会短暂打开 Blender、删除测试 PNG 后自动退出:
blender --factory-startup --python-exit-code 1 --python tests/blender_viewport_test.py手动 smoke test:在一个包含唯一目标 Armature(且含 head)的 Blender 中,
从 Text Editor 打开并运行 tests/blender_smoke_test.py。它依次执行 ping、
get_rig、get_pose、修改 head、undo、reset。最后一步会重置当前 Pose,但脚本
不会保存 .blend。
卸载
codex mcp remove blender-pose然后在 Blender Preferences 中禁用并移除 Blender Pose Bridge。需要彻底删除
Python 环境时,可删除仓库内 .venv/;项目或 .blend 不受影响。
原始 main.py 与转换复用
不需要修改 reference/main.py。blender_pose_bridge/smplx.py 直接保留其
ROOT_BONE、BODY_BONES、HAND_BONES、BODY_OFFSETS、
rotvec_to_quaternion、set_bone_rot、Root 180° 修正、Hand rotvec 符号反转、
SMPL-X 到 Blender 的 X 轴 90° quaternion 转换,以及
bone.matrix_local.to_quaternion() basis 转换。交互式 degree 接口是独立逻辑,
不会改变完整 JSON 导入行为。
Available Tools
10 toolsapply_smplx_poseC
Reset then import one full SMPL-X pose using the verified main.py rules.
| Name | Required | Description | Default |
|---|---|---|---|
| body_pose | No | ||
| lhand_pose | No | ||
| rhand_pose | No | ||
| body_root_pose | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It does disclose a key behavioral trait: the tool resets the current state before importing, and it references 'verified main.py rules' as a source of truth. However, it does not explain side effects, reversibility, permissions, or how partial/null pose inputs behave.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with the reset behavior front-loaded. There is no redundant wording, but the vague reference to 'verified main.py rules' is not fully self-contained.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema exists, the tool has four undocumented optional parameters and no annotations. The description does not explain when to use this tool, what happens when parameters are null, or how it differs from set_pose_batch and reset_pose, leaving important context missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain how body_pose, lhand_pose, rhand_pose, or body_root_pose relate to the 'full SMPL-X pose' claim. The phrase 'full pose' hints that all parts are involved but provides no concrete parameter guidance, leaving the schema's bare names to carry the meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('import'), a resource ('one full SMPL-X pose'), and an initial action ('Reset'). It is more informative than the tool name and implicitly distinguishes from reset-only or single-bone siblings, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus siblings like set_pose_batch, set_bone_pose, or reset_pose. 'Reset then import' implies a use case, but there is no 'use when' or 'instead of' direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_poseA
Read all current local Pose Bone rotations in degrees and quaternions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It clearly states this is a read operation, that it returns current data, that the data is local, and that both degrees and quaternions are involved. It does not discuss return structure, but the presence of an output schema helps cover that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence with no filler. The action, scope, frame of reference, and units are all front-loaded, making it immediately scannable for an agent deciding whether to invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read tool with an output schema available, the description covers the essential operational details. It could be slightly more explicit about whether the returned data includes both degrees and quaternions simultaneously, but the output schema likely resolves that; overall the definition is sufficiently complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema confirms this, so there is nothing for the description to elaborate on parameter semantics. The baseline for a zero-parameter tool is 4, and the description appropriately focuses on the operation and output rather than adding nonexistent parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read') and a clear resource ('all current local Pose Bone rotations'), and it specifies units ('degrees and quaternions'). This cleanly distinguishes it from write-oriented siblings like set_bone_pose and set_pose_batch, and from get_rig, which likely targets rig structure rather than pose rotations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: whenever you need the complete current local pose rotation data. However, it gives no explicit guidance about when not to use it or which sibling alternative might be better for a more specific need, such as reading a single bone or retrieving rig-level transforms.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rigA
Read the existing Armature hierarchy, rest basis, constraints, and roles.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral transparency burden. The verb 'Read' and the word 'existing' clearly signal a non-destructive, read-only operation, and the description enumerates exactly which rig aspects are returned. This provides meaningful behavioral context beyond the bare tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to the meaning, listing the resource components efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no parameters and an output schema, so the description doesn't need to explain return values. However, it leaves unclear which armature is being read (e.g., selected object, current scene, or a default rig), which could matter for correct invocation. A bit more context about the implicit target would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema description coverage, so there is nothing to document. The baseline for zero-parameter tools is 4, and the description appropriately avoids fabricating parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Read') and names a specific resource ('existing Armature hierarchy, rest basis, constraints, and roles'). This clearly distinguishes it from pose-related siblings like get_pose and set_bone_pose, though it does not explicitly mention those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to choose this tool over sibling tools such as get_pose or get_viewport. There is no mention of typical scenarios, prerequisites, or exclusions, so the agent is left to infer usage from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_viewportA
Return structured Pose data and fixed front/left/right/back PNG views.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It usefully indicates that the tool returns structured data plus fixed PNG views, implying a read-only, deterministic operation, but it does not explicitly state that the tool has no side effects or clarify what the structured Pose data contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. It is front-loaded with the action ('Return') and every clause adds specific, useful detail about the output contents.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless getter with no output schema, the description is nearly complete: it names the two output categories and specifies the fixed camera directions. A more detailed pose schema would improve it, but the zero-parameter interface keeps the risk of incorrect invocation low.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there is no parameter-semantic burden on the description. The baseline of 4 applies because no parameter documentation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and resource ('viewport'), and clearly enumerates two concrete outputs: structured Pose data and fixed front/left/right/back PNG views. This distinguishes it from pose-only or rig-related siblings, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use get_viewport versus related sibling tools such as get_pose or get_rig. The agent must infer the intended use case from the tool name and output description, with no when-to-use or when-not-to-use guidance provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingA
Test Codex -> MCP -> Blender and report file, version, and Armature.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the disclosure burden. It discloses that the tool reports file, version, and Armature, implying a read-only status operation, but it does not explicitly confirm that no mutations occur or describe failure behavior. This is adequate for a diagnostic tool but not especially rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the testing behavior and then lists the reported outputs. Every word earns its place, and there is no filler or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless diagnostic tool with an output schema available, the description is complete: it states what the tool does and what it reports. The output schema covers the return details, so the description does not need to enumerate response fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing for the description to add beyond the schema. The no-parameter baseline of 4 applies, and the description introduces no confusing or misleading parameter expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Test' and the chain 'Codex -> MCP -> Blender' clearly identify this as a connectivity/diagnostic tool, which separates it from the action-oriented siblings like get_pose or reset_pose. It also names what is reported (file, version, and Armature), making the purpose concrete and operational.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: to verify that Codex can reach MCP and Blender. However, it does not explicitly contrast it with alternative tools or state when not to use it, though for a ping-style tool the intended trigger is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reset_poseA
Reset the existing Armature to its base pose. Only scope='all' is valid.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | all |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly indicates that this is a mutating operation that resets the Armature, and it limits scope to 'all'. However, it does not mention undo behavior, preconditions, or side effects, which would be useful for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The action is front-loaded and the critical constraint on the parameter follows immediately. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a very simple tool with one constrained parameter and an output schema present. The description covers the operation and the only valid scope, which is likely enough for an agent to invoke it correctly. It could still benefit from a note on when to choose reset_pose over the set_* siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does state that only scope='all' is valid, which matches the schema's const: 'all'. However, it adds no further meaning about what scope represents beyond that single constraint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Reset'), a specific resource ('Armature'), and the target state ('base pose'). This clearly distinguishes it from sibling tools like set_bone_pose, get_pose, or apply_smplx_pose, which all do different things.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when the existing Armature should be returned to its base pose. It also states a hard constraint, 'Only scope='all' is valid,' but it does not explicitly name alternatives or explain when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_blendA
Save the current .blend; call only after an explicit user save request.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the behavioral burden. It discloses that this is a save operation and adds a guardrail against unsolicited saves, but it does not explicitly state that the current file is overwritten on disk or note any irreversibility. The behavior is mostly inferable, but the side effect is not fully spelled out.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action and then states the usage constraint, with no filler or redundancy. It is concise while conveying both what and when.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter operation, the action and invocation condition are covered, and an output schema exists to document the return value. The only minor gap is the lack of explicit overwrite/destructive warning, which the absence of annotations makes more relevant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema is complete and no parameter documentation could be expected. The description adds no parameter-specific meaning, but none is required; per baseline, a zero-parameter tool earns a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'save' with a concrete resource, 'the current .blend', which exactly and unambiguously identifies the operation. It also distinguishes this tool from the sibling tools, none of which perform a file save.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit call condition: 'call only after an explicit user save request.' This tells the agent when to invoke the tool and implicitly when not to, and no alternative save tool exists among the siblings, so no further routing is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_bone_poseA
Set or locally delta-rotate one Pose Bone without resetting other bones.
| Name | Required | Description | Default |
|---|---|---|---|
| bone | Yes | ||
| mode | No | absolute | |
| rotation_degrees | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It does disclose an important side-effect boundary: other bones are not reset, and it hints at local-space delta behavior. However, it does not explain whether the change is undoable, how absolute vs delta mode affects the existing pose, or what prerequisites exist, leaving the behavioral picture incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every phrase contributes either the action, the target resource, the scope, or a safety guarantee.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers return values, and the description covers the core purpose and a key behavioral guarantee. Still, for a mutating tool with no annotations and 0% parameter-documentation coverage, the description does not fully explain mode semantics, prerequisites, or when another sibling should be preferred.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needed to clarify bone addressing, the 3-number rotation_degrees format, and the absolute/delta distinction. It only weakly implies delta mode via 'delta-rotate' and adds no real meaning beyond what the schema's property names and enum already provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Set or locally delta-rotate one Pose Bone') and adds a scope constraint ('without resetting other bones') that distinguishes it from reset_pose and set_pose_batch. An agent can tell what this tool does and roughly what it is not for without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'One Pose Bone' and 'without resetting other bones' give clear contextual signals about when to choose this tool over batch or reset operations. It does not explicitly name sibling tools or state when-not-to-use rules, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_pose_batchA
Apply multiple local Pose Bone edits together as one Blender undo step.
| Name | Required | Description | Default |
|---|---|---|---|
| changes | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that edits are 'local' (bone-local space) and that the entire batch is grouped into one undo step, which is meaningful behavioral context. It does not mention error handling or exactly what happens on invalid input, but the key mutation and undo semantics are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. It front-loads the action and resource, then adds the key atomicity detail. Every word contributes to the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool involves a nested BoneChange object with a mode enum, so more semantic context would help. The description gives the core purpose and undo behavior, and an output schema exists, but it omits the absolute/delta distinction and does not guide the agent on when to choose this over set_bone_pose. It is adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needs to compensate for parameter meaning. While 'local Pose Bone edits' hints at the coordinate space, it does not explain the 'changes' array structure, the 'absolute' vs 'delta' modes, or how 'rotation_degrees' is applied. The schema's names and enums help, but the description adds little semantic value beyond what the schema already shows.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific action ('Apply'), a specific resource ('multiple local Pose Bone edits'), and a distinguishing behavior ('as one Blender undo step'). This clearly separates it from siblings like set_bone_pose, which implies a single-bone operation, and reset_pose, which clears poses rather than applying edits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'multiple' implies the batch tool is for applying several pose edits at once, but the description never explicitly says to prefer set_bone_pose for single edits or mentions any alternatives. Usage context is implied rather than stated, and no when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
undoA
Use Blender's undo system to undo the most recent operation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure, but it only states the obvious action. It does not mention what happens when the undo stack is empty, whether undo reverts only the most recent operation or can be called repeatedly to step back further, or how errors are reported. The phrase 'most recent operation' gives a hint of scope, but many behavioral details are left undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with zero filler. It front-loads the system context ('Blender's undo system') and immediately states the action. No unnecessary information is included, making it an appropriately sized definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's trivial complexity (no parameters, clear action, output schema present), the description is nearly sufficient for an agent to invoke it correctly. The only missing context is edge-case behavior (e.g., empty undo stack), but these are minor and unlikely to cause incorrect invocation. The presence of an output schema relieves the description from explaining return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, and the input schema shows an empty object (100% schema coverage, trivially). The description therefore has no parameter meanings to clarify, and the baseline score of 4 applies. There is nothing missing on the parameter front.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('undo') and a clear resource ('Blender's undo system'), making the tool's function unmistakable. It also distinguishes the tool from its siblings, which are pose, rig, and viewport operations, since 'undo' is a general state-reversal action rather than a domain-specific edit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the obvious use case (call after a previous operation to reverse it) but gives no explicit guidance on when not to use it or how it compares to alternatives like reset_pose or set_pose_batch. The usage context is inferable from the name and description, but the tool does not articulate edge cases such as multiple undo steps or interactions with other Blender operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
10 tool updates
v0.1.0- First observed
apply_smplx_pose - First observed
get_pose - First observed
get_rig - First observed
get_viewport - First observed
ping - First observed
reset_pose - First observed
save_blend - First observed
set_bone_pose - First observed
set_pose_batch - First observed
undo
TDQS
Each tool has a clearly distinct function: health check, rig structure read, pose read, single/batch edits, SMPL-X import, reset, undo, viewport, and save. The only nearby pairs are separated by scope or output, so an agent should not misselect.
Tool names uniformly use lowercase snake_case and mostly follow a verb-first pattern like get_*, set_*, reset_pose, and save_blend. The single-word ping and undo are minor deviations from the verb_noun convention, so the set is consistent but not perfectly patterned.
With 10 tools, the set is well-scoped for a pose-editing assistant: read, edit, batch, apply/reset, undo, view, and save operations are each represented exactly once. No tool feels redundant or unnecessary.
The core pose workflow is well covered: query state, mutate individual bones, batch changes, apply a full SMPL-X pose, reset, undo, render viewport, and save. The main gaps are generic custom pose import/export and rig constraint editing, but these are not necessarily required for the server's stated posing purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Cloud Blender for AI agents: scenes, assets, renders, MP4, STL, GLB — over hosted remote MCP.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
MCP server for Wan AI video generation
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI agents to control Blender through natural language for 3D scene creation, animation, and rendering. It provides over 550 actions and direct Python execution via a bridge to a live local Blender session.3MIT
- AlicenseCqualityDmaintenanceMCP server that enables AI to control Blender 3D, providing 175 typed tools for objects, materials, animation, compositing, and more via the Model Context Protocol.1002MIT
- FlicenseBqualityCmaintenanceMCP server that controls Blender via HTTP bridge, enabling 3D modeling, animation, and export operations from Cursor agent.321-
- AlicenseNot gradedqualityCmaintenanceMCP server for Blender that connects to the official Blender Lab add-on, exposing 27 tools for scene manipulation, object editing, materials, rendering, and Python execution through the add-on's actual wire protocol.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nar-oah/pose-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server