Skip to main content
Glama

maya_viewport_capture

Capture Maya's Viewport 2.0 as a PNG/JPG to visually verify scene state, lighting, framing, and detect issues without an Arnold render.

Instructions

Capture the Maya viewport as PNG/JPG image and return it for visual analysis. Does not do Arnold render — it is an instant Viewport 2.0 grab (<1s); for a ray-traced still use maya_session(action='render_still'). Useful for visually verifying scene state, checking lighting, framing, and detecting issues.

NEVER captures the user's focused viewport: it playblasts a throw-away Viewport-2.0 window (its own modelPanel forced to rendererName='vp2Renderer'), so an Arnold IPR / render-override active on the user's panel can never be captured — which would saturate Maya's main thread and hang it (memory feedback_maya_gs_arnold_ipr_hang; same technique as review_turntable).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paramsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.23.0

TDQS

A4.2/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 behavioral burden and largely succeeds: it discloses the <1s latency, that it never touches the user's focused viewport, that it spins up a throw-away modelPanel forced to vp2Renderer, and the failure mode it avoids (Arnold IPR saturation hanging Maya's main thread). It omits return-shape and side-effect details (e.g. whether output_path is written or only returned), which keeps it short of a 5.

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 with the core action and its alternative before any mechanism detail, and the NEVER clause is a deliberate safety disclosure rather than filler. The parenthetical about rendererName='vp2Renderer' and the memory-feedback ID are more verbose than an agent strictly needs, but they justify their length.

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?

No output schema and no annotations, so the description must stand alone, and it covers purpose, alternative, timing, safety behavior, and use cases well enough to call the tool correctly. What it leaves unstated is how the image is returned (inline vs path-only) and whether output_path is always written, which are minor against an otherwise thorough definition.

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

Parameters2/5

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

The description adds no meaning for any of the five underlying parameters (frame, width, height, camera, output_path); a reader would not learn from it that a camera or frame can be selected. Reported schema description coverage is 0%, so the description is expected to compensate and does not, though the nested ViewportCaptureInput properties do carry brief descriptions of their own.

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?

States a specific verb and resource ('Capture the Maya viewport as PNG/JPG image') and immediately scopes it against the nearest sibling, clarifying it is an instant Viewport 2.0 grab rather than an Arnold render. An agent can distinguish it from maya_session(action='render_still') 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?

Explicitly names the alternative and the selecting condition ('for a ray-traced still use maya_session(action='render_still')'), and lists concrete use cases (verifying scene state, lighting, framing). The when-not is stated as strongly as the when.

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