blender-python-api-verification
Verifique propriedades Python do Blender, enums, operadores, APIs de animação e interfaces de add-ons em relação à compilação do Blender em execução antes de escrever ou executar…
npx skills add https://github.com/nvidia/nemoclaw-community --skill blender-python-api-verificationVerify Blender Python APIs
The visible host Blender process is the source of truth. This installation also provides the official Blender 5.1 Python API under:
/sandbox/reference/blender-python-api-5.1
Use scripts/search_blender_api.py with sandbox terminal tools to find relevant
official documentation. The docs cover Blender itself, not OVRTX, OVPhysX, or
other add-ons.
Required workflow
Before an uncertain Blender mutation:
- Search the version-matched reference for the type or operator.
- Make a separate, non-mutating
mcp_blender_execute_blender_codecall to inspect the running object, RNA properties, enum items, or operator RNA. - Check every uncertain property and enum value. Do not infer API availability from an older Blender example.
- Only then make the mutation in a second Blender MCP call.
- Return a compact receipt. Do not dump complete RNA schemas into chat.
Do not import bpy with sandbox Python. Blender MCP code runs inside Blender on
the host; sandbox code does not.
Runtime inspection patterns
Inspect an RNA object:
target = bpy.context.scene.display.shading
props = target.bl_rna.properties
name = "type"
result = {
"blender": bpy.app.version_string,
"rna_type": target.bl_rna.identifier,
"property_exists": name in props,
"readonly": props[name].is_readonly if name in props else None,
"enum_values": [item.identifier for item in props[name].enum_items]
if name in props and props[name].type == "ENUM" else [],
}
print(result)
Inspect an operator before calling it:
operator = bpy.ops.wm.usd_import
rna = operator.get_rna_type()
print({
"operator": rna.identifier,
"properties": [p.identifier for p in rna.properties if p.identifier != "rna_type"],
"poll": operator.poll(),
})
For non-RNA Python objects, use narrowly filtered dir() or hasattr().
Prefer direct data API operations over context-sensitive bpy.ops calls. If an
operator is required, inspect poll() and establish its context explicitly.
Failure behavior
If the requested API is absent, read-only, has different enum values, or fails operator polling, stop before mutation and report the observed Blender version and API shape. Do not retry guessed property names or execute a long script that mixes discovery with destructive changes.