Both tools have minimal descriptions (under 100 chars) and lack parameter descriptions entirely. Input schemas are present but bare, only type and description for a single string parameter, no constraints or validation guidance. No output schema documented. Tools expose dangerous capabilities (arbitrary Python execution in Blender) with no error handling guidance, confirmation patterns, or permission gates. Naming is verb-based but descriptions fail to explain WHEN to use each tool or what distinguishes eval from exec. No idempotency, no pagination, no structured output guidance.
eval a Python expression in Blender. The bpy module is available. The result of the eval is returned. If an exception occurs, the backtrace will be returned.
exec Python code, possibly multiple lines, in Blender. The bpy module is available. If an exception occurs, the backtrace will be returned.
No parameter descriptions. 'expression' and 'code' parameters lack guidance on format, constraints, or examples. LLMs cannot infer whether to pass single-line vs multi-line code, or what happens on syntax errors.
No output schema documented. Tools return strings but LLMs don't know if output is JSON, plaintext, traceback, or structured result. Impossible to chain downstream tools or parse results reliably.
Irreversible/destructive operations lack confirmation or dry-run pattern. exec_python can delete Blender scenes, modify files, or corrupt projects with no undo mechanism or user confirmation step.
Tool descriptions do not explain the distinction between eval_python (expression evaluation) and exec_python (statement execution). LLMs will guess wrong and pick the wrong tool.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
No error handling guidance. Descriptions mention 'backtrace will be returned' but don't explain how LLMs should interpret or recover from Python exceptions. No actionable error messages.