Skip to main content
Glama

Inspect scene

scene_inspect
Read-onlyIdempotent

Read a revision's scene from its stored structured summary — synchronous, no container. detail: summary | objects | materials | render | cameras | lights | stats | full. Use "cameras" to get camera ids for render_create cameraId, "lights" for the rig with energies, and "stats" for per-object vertex/face counts, UV presence and modifier stacks. Filter with objectIds, or with namePattern/excludeNamePattern — namePattern is how you turn the namePattern a copying operation reports (object.radial_array, object.array_along_curve) back into the full list of ids it created. limit/cursor page the requested entity type. In full mode each included collection uses the same offset/limit; nextCursor continues while any collection has more rows. Object filters affect objects, cameras and lights; materialIds independently filters materials. For exact node names, links and packed image bindings request includeNodeGraphs with detail=materials/full and one materialId or limit=1. Graphs are omitted by default; legacy or partial summaries explicitly report availability. All positions and sizes are metres (1 unit = 1000 mm). Scenes holding imported glTF/GLB animation clips also report them (names, frame ranges, which clip is active) in the summary, render and full details.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "projectId": "<projectId>"
    },
    "name": "scene_inspect"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum entries returned per requested scene section.
cursorNoRow offset from nextCursor, e.g. "100". Keep the same revision, detail and filters when paging.
detailNoScene section to read; full combines all sections.summary
objectIdsNoFilter by platform id ("obj_…"/"cam_…"/"lgt_…")
projectIdYesStable project ID returned by project_create or projects_list.
revisionIdNo"HEAD" (default) uses the project's current headHEAD
materialIdsNoFilter materials by stable mat_ IDs before pagination, independently of object filters.
namePatternNoFilter by Blender object NAME with * wildcards, e.g. "Tick_*". This is how you resolve the namePattern a copying operation reports back into ids.
includeNodeGraphsNoRead stored node graphs with detail=materials/full and exactly one materialId or limit=1. Includes counts and complete/truncated/unavailable status.
excludeNamePatternNoDrop objects whose name matches, e.g. "Studio_*". Applied after namePattern.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / includeNodeGraphs
      Added value: +{
      +  "default": false,
      +  "description": "Read stored node graphs with detail=materials/full and exactly one materialId or limit=1. Includes counts and complete/truncated/unavailable status.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / materialIds
      Added value: +{
      +  "description": "Filter materials by stable mat_ IDs before pagination, independently of object filters.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "maxItems": 16,
      +  "minItems": 1,
      +  "type": "array"
      +}
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already cover readOnly/idempotent/non-destructive/closed-world, yet the description adds substantial behavior: no container spin-up, pagination semantics for limit/cursor and nextCursor in full mode, default omission of node graphs, explicit availability reporting for legacy or partial summaries, and the metres-to-mm unit convention. These are non-obvious traits an agent could not infer from the annotations.

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?

The core purpose and detail-mode contract are front-loaded, and nearly every sentence carries actionable content. It is dense to the point of being run-on in places (the namePattern and pagination clauses use stacked dashes), and secondary facts such as units and animation-clip reporting are tacked onto the end rather than grouped with the relevant detail modes.

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?

For a 10-parameter read tool with no output schema, the description does the heavy lifting: it explains what each detail mode returns, how paging continues, what is omitted by default, and what units to expect. Remaining gaps are minor — error behavior for invalid revisionId and any size limits on 'full' responses are unstated.

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?

With 100% schema coverage the baseline is 3, but the description adds real cross-parameter meaning: that object filters apply to objects/cameras/lights while materialIds filters materials independently, that in full mode every included collection shares the same offset/limit, and that includeNodeGraphs requires detail=materials/full plus exactly one materialId or limit=1. That constraint pairing is not expressible in the flat 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?

The opening states a specific verb and resource: read a revision's scene from its stored structured summary, and it immediately bounds the scope with 'synchronous, no container.' It then enumerates the exact detail modes (summary | objects | materials | render | cameras | lights | stats | full), so an agent knows precisely what surface this tool exposes.

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

Usage Guidelines4/5

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

It gives concrete selection guidance tied to real tasks: use 'cameras' to get camera ids for render_create's cameraId, 'lights' for the rig with energies, 'stats' for vertex/face counts, and namePattern to resolve ids a copying operation reported. What it lacks is any statement of when to prefer a sibling over this tool (e.g. scene_snapshot or scene_validate), so guidance is strong within the tool but not across alternatives.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources