Skip to main content
Glama

keyframe_property

Key any animatable property—material colors, light power, world strength, modifier settings, camera lens—at a chosen frame and optionally set its value first to animate changes in one call.

Instructions

Keyframe any animatable property: material colours, light power, world strength, modifier settings, camera lens and more.

Optionally sets the value first, so "turn red at frame 24" is one call. For location, rotation and scale, insert_keyframe is simpler.

Args: data_path: Property path from the target, e.g. 'active_material.node_tree.nodes["Principled BSDF"].inputs["Base Color"].default_value', "data.energy" (light power), "data.lens" (camera), 'modifiers["Bend"].angle', 'node_tree.nodes["Background"].inputs["Strength"].default_value' (with target WORLD). frame: Frame to key. value: Value to set before keying: a number, true/false, or a list for colours and vectors. Omit to key the current value. object_name: The object the path starts from (target OBJECT). target: OBJECT, WORLD (the scene's world) or SCENE. index: One component of a vector or colour (0, 1, 2, 3), or -1 for all.

Returns: Dict with the data block keyed, its path, the frame and the value.

Input Schema

NameRequiredDescriptionDefault
frameYes
indexNo
valueNo
targetNoOBJECT
data_pathYes
object_nameNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv3.0.0

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that this is a mutating operation, that value is applied before keying, and that the return is a dict with data block, path, frame and value. It doesn't say what happens if a keyframe already exists at that frame (overwrite vs. duplicate) or any permission/mode prerequisites, which is the remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded summary then structured Args/Returns, with no wasted prose. Slightly redundant that a Returns section is spelled out when an output schema already exists, and the data_path examples are verbose, but both earn most of their space by forestalling likely errors.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter mutation tool with zero annotation coverage, the description supplies everything an agent needs: purpose, alternative routing, optional-value semantics, full parameter guidance with examples, and output shape. Nothing required to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must fully compensate, and it does: every parameter is documented with worked examples, including the tricky data_path format with four realistic strings, the target enum values in context (WORLD = the scene's world), index semantics (-1 for all, 0-3 for a component), and object_name's relationship to target OBJECT. This is meaningfully richer than the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ("Keyframe any animatable property") and enumerates concrete targets: material colours, light power, world strength, modifier settings, camera lens. It also names the sibling (insert_keyframe) that handles the simpler transform cases, so an agent can distinguish the two without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit routing is given: use insert_keyframe instead for location, rotation and scale. The optional-value behavior ("Optionally sets the value first, so 'turn red at frame 24' is one call") tells the agent when to pass value versus omit it. Both the when-to-use and a named alternative are present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools