Skip to main content
Glama

List C4D Entities

list_entities
Read-only

Discover Cinema 4D scene entities by kind—objects, materials, takes, shaders—with filters for types, tags, depth, and inline params. Query what exists before editing.

Instructions

Enumerate scene entities of a given kind. Returns compact summaries (name, type_id, type_name, plus kind-specific fields — is_active for take / material / render_data). For kind=object also supports type_ids / tag_types / max_depth filters and include_tags / include_params to read data inline — so you can find 'all cubes with a Ttexture tag and their position in one call' without falling back to exec_python. Use this first to find what exists before describe/set_params. Note: kind=shader walks classical shader chains; for node-material graphs use list_graph_nodes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYesEntity kind to list.
ownerNoOwner handle (required for kind=shader).
objectNoFilter tags to this object name (only for kind=tag). Omit to list tags on all objects.
type_idsNo(kind=object) Keep only objects whose GetType() is in this set (e.g. [5159] for cubes).
max_depthNo(kind=object) Skip objects deeper than this (root=0). Default: unlimited.
tag_typesNo(kind=object) Keep only objects carrying a tag whose type id is in this set (e.g. [5616] for Ttexture).
object_pathNoFilter tags to this object path (only for kind=tag). Use when the name is not unique.
render_dataNoRender data name (required for kind=video_post).
include_tagsNo(kind=object) Attach `tags: [{type_id, type_name, name}, ...]` to each match.
name_patternNoOptional regex to filter results by name (e.g. "^VFX_Shot00[2-9]$").
include_paramsNo(kind=object) Parameter ids to read per match. Returned under `params: {param_id: value}`.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changedv0.4.3
    • changedInput schema / definitions / __schema0 / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "kind": {
      -        "const": "object",
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      },
      -      "path": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "kind"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "kind": {
      -        "const": "render_data",
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "kind",
      -      "name"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "kind": {
      -        "const": "take",
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "kind",
      -      "name"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "kind": {
      -        "const": "material",
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "kind",
      -      "name"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "kind": {
      -        "const": "tag",
      -        "type": "string"
      -      },
      -      "object": {
      -        "type": "string"
      -      },
      -      "object_path": {
      -        "type": "string"
      -      },
      -      "tag_name": {
      -        "type": "string"
      -      },
      -      "type_id": {
      -        "maximum": 9007199254740991,
      -        "minimum": -9007199254740991,
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "kind"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "kind": {
      -        "const": "video_post",
      -        "type": "string"
      -      },
      -      "render_data": {
      -        "type": "string"
      -      },
      -      "type_id": {
      -        "maximum": 9007199254740991,
      -        "minimum": -9007199254740991,
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "kind",
      -      "render_data",
      -      "type_id"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "index": {
      -        "maximum": 9007199254740991,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "kind": {
      -        "const": "shader",
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      },
      -      "owner": {
      -        "$ref": "#/definitions/__schema0"
      -      }
      -    },
      -    "required": [
      -      "kind",
      -      "owner"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "id": {
      -        "type": "string"
      -      },
      -      "kind": {
      -        "const": "gv_node",
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      },
      -      "tag": {
      -        "$ref": "#/definitions/__schema0"
      -      }
      -    },
      -    "required": [
      -      "kind",
      -      "tag"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "kind": {
      -        "const": "plugin_options",
      -        "type": "string"
      -      },
      -      "plugin_id": {
      -        "anyOf": [
      -          {
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "string"
      -          }
      -        ]
      -      },
      -      "plugin_type": {
      -        "enum": [
      -          "command",
      -          "object",
      -          "tag",
      -          "material",
      -          "shader",
      -          "video_post",
      -          "scene_loader",
      -          "scene_saver",
      -          "bitmap_loader",
      -          "bitmap_saver",
      -          "tool",
      -          "preference",
      -          "node",
      -          "sculpt_brush"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "kind",
      -      "plugin_id"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "kind": {
      +        "const": "object",
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "path": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "kind": {
      +        "const": "render_data",
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "name"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "kind": {
      +        "const": "take",
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "name"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "kind": {
      +        "const": "material",
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "name"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "kind": {
      +        "const": "layer",
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "name"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "kind": {
      +        "const": "tag",
      +        "type": "string"
      +      },
      +      "object": {
      +        "type": "string"
      +      },
      +      "object_path": {
      +        "type": "string"
      +      },
      +      "tag_name": {
      +        "type": "string"
      +      },
      +      "type_id": {
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "kind"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "kind": {
      +        "const": "video_post",
      +        "type": "string"
      +      },
      +      "render_data": {
      +        "type": "string"
      +      },
      +      "type_id": {
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "render_data",
      +      "type_id"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "index": {
      +        "maximum": 9007199254740991,
      +        "minimum": 0,
      +        "type": "integer"
      +      },
      +      "kind": {
      +        "const": "shader",
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "owner": {
      +        "$ref": "#/definitions/__schema0"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "owner"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "id": {
      +        "type": "string"
      +      },
      +      "kind": {
      +        "const": "gv_node",
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "tag": {
      +        "$ref": "#/definitions/__schema0"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "tag"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "kind": {
      +        "const": "plugin_options",
      +        "type": "string"
      +      },
      +      "plugin_id": {
      +        "anyOf": [
      +          {
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "string"
      +          }
      +        ]
      +      },
      +      "plugin_type": {
      +        "enum": [
      +          "command",
      +          "object",
      +          "tag",
      +          "material",
      +          "shader",
      +          "video_post",
      +          "scene_loader",
      +          "scene_saver",
      +          "bitmap_loader",
      +          "bitmap_saver",
      +          "tool",
      +          "preference",
      +          "node",
      +          "sculpt_brush"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "plugin_id"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. First observedv0.3.1

TDQS

A4.4/5.0
Behavior4/5

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

THE READ-ONLY NATURE IS CLEARLY INDICATED VIA 'RETURNS' AND 'FETCH DATA INLINE', PLUS THE readOnlyHint=true DEPTH IS CONSISTENT. THE readOnlyHint ABOVE ALREADY PROVIDES A HIGH BASELINE. THE MAIN AREA WHERE THE DESCRIPTION ADDS VALUE BEYOND ANNOTATIONS IS THE DETAILED 'INCLUDE_PARAMS' EXAMPLE ('FIND ALL CUBES WITH A TEXTURE TAG') AND THE WARNING THAT THIS IS THE DEFAULT WITH NO FALLBACK RISK. THAT'S A SMALL GAP: THE DESCRIPTION MENTIONS 'TYPE_SPECIFIC FIELDS' BUT DOESN'T ADDRESS WHAT HAPPENS FOR NON-OBJECT KINDS.

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

Conciseness3/5

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

THE DESCRIPTION IS DENSE AND ATTEMPTS TO CONDENSE INFORMATION, BUT IT PAYS A TAX IN READABILITY WITH EXTENSIVE PARENTHETICALS AND SEMI-COLONS CREATING COMPLEX NESTING. THE 'NOTE:' AT THE END IS A GOOD CHOICE OVER NO SEPARATION FOR TELEGRAPHIC STYLE, BUT THE SEMI-COLON DENSE BLOCKS ARE HARD TO SCAN.

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

Completeness4/5

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

A HIGHLY EFFECTIVE READ-ONLY LISTING TOOL WITH NO OUTPUT SCHEMA AND NO DOCUMENTATION TO DRIFT. WHAT KEEPS IT FROM A '5' IS THE LACK OF DOCUMENTATION FOR THE 'INCLUDE_PARAMS' RETURN FORMAT AND HOW IT INTERACTS WITH THE 'PARAMS' FIELD IN THE OUTPUT. THE BOOLEAN FLAG VERSUS THE 'PARAMETER' ARRAY MENTIONED IN 'INCLUDE_PARAMS' LEAVES A SMALL GAP IN UNDERSTANDING THE EXACT RETURN SHAPE. THAT SAID, THE 'USE FOR PARAMS' IS AN EXCELLENT TOUCH THAT PRE-EMPTS A LIKELY SOURCE OF CONFUSION.

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

Parameters4/5

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

THE SCHEMA ITSELF HAS 100% COVERAGE, SO THE PARAMETER DESCRIPTIONS ARE JUST A BONUS. THE REAL VALUE IS THE SEMANTIC COLOR IT ADDS: TURNING 'TYPE_IDS' INTO A MORE USEFUL CONVERSATION BY GIVING THE EXAMPLE '[5159]' FOR CUBES. SIMILARLY, FOR 'TAG_TYPES' — '[5616]' FOR TEXTURE — MAKES THE INTEGERS INSTANTLY ACTIONABLE. THE 'MAX_DEPTH' PARAMETER IS SELF-EXPLANATORY. IT'S HARD TO COMPLAIN ABOUT A SECOND PARAMETER WHEN THE SCHEMA ALREADY HANDLES THE HEAVY LIFTING. AT BEST THIS IS 'EFFICIENT'.

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?

EXCELLENT OPENING: 'ENUMERATES SCENE ENTITIES OF A GIVEN KIND' IS CRISP, VERB-DRIVEN, AND DISTINGUISHES FROM SIBLINGS BY IMPLYING IT'S A READ-ONLY LOOKUP. THE 'RETURNS COMPACT SUMMARIES...' LINE AND CONTEXTUAL 'USE THIS FIRST TO FIND WHAT EXISTS' MAKE THE PURPOSE UNAMBIGUOUS.

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?

EXCELLENT EXPLICIT GUIDANCE: 'USE THIS FIRST TO FIND WHAT EXISTS BEFORE DESCRIBE/SET_PARAMS' AND THE CALL-OUT 'FOR NODE-MATERIAL GRAPHS, USE LIST_GRAPH_NODES' DIRECTLY MANAGE ALTERNATIVE SELECTION. THE 'KIND=SHADER' WALK SHADER CHAINS VERSUS 'LIST_GRAPH_NODES' DISTINCTION IS CRUCIAL AND UNMISSABLE. ALSO CORRECTLY WARNS 'KIND=VIDEO_POST' IS REQUIRED.

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

Latest Blog Posts

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/kumoproductions/mcp-cinema4d'

If you have feedback or need assistance with the MCP directory API, please join our Discord server