Skip to main content
Glama

grab_frame

Capture a still JPEG frame from an Axis network camera, with configurable resolution, compression, rotation, and channel.

Instructions

Capture one still frame from camera and return it as a JPEG.

If the device refuses the requested resolution, the frame is taken at the closest one it supports instead and the reply says so.

Args: camera: A name from list_cameras. resolution: "WIDTHxHEIGHT", e.g. "1280x720", or a device-specific preset name such as "D1". The camera scales server-side; omit for the camera's configured default. See camera_capabilities. compression: 0-100, where 0 is best quality and the largest file. rotation: 0, 90, 180 or 270 degrees. channel: Which video input to read on a multi-channel encoder, e.g. "3" or "quad". Omit on a single-sensor camera.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cameraYes
channelNo
rotationNo
resolutionNo
compressionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden, and it does so well. It discloses the non-obvious resolution fallback ('If the device refuses the requested resolution, the frame is taken at the closest one it supports instead'), server-side scaling, and the compression semantics (0 = best quality, largest file). The return type (JPEG) is stated. Slight gap: the mechanics of returning the JPEG (inline bytes, URL, base64) are unspecified.

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?

Well-organized: one-line purpose, a fallback note, then a clean Args block. Front-loaded with the main purpose. Slightly prose-heavy in the resolution and channel entries, but each sentence carries information - no padding or repetition.

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 5-parameter tool with 0% schema coverage, no annotations, and no output schema, the description covers all parameters thoroughly, the output type, and the key fallback behavior. The main gap is the response transport format (how the JPEG is delivered), which is left vague as 'return it as a JPEG' - a notable omission given there is no output schema to clarify it.

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 description coverage is 0%, so the description must fully compensate - and it does for all 5 parameters. resolution gets format ('WIDTHxHEIGHT'), examples ('1280x720'), preset names ('D1'), scaling behavior, and default handling. rotation enumerates allowed values, channel explains multi-channel use with examples and omission rules, compression defines range and tradeoff. Every parameter carries semantic weight beyond 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 precise verb-resource-output statement: 'Capture one still frame from `camera` and return it as a JPEG.' This clearly differentiates it from siblings list_cameras, camera_info, and camera_capabilities, which are listing/inspection operations, not capture operations. Purpose is unambiguous.

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?

Cross-references prerequisites well: 'A name from `list_cameras`' routes the agent to the listing tool, and 'See `camera_capabilities`' routes it to the capabilities tool for resolution options. It also gives omission guidance ('omit for the camera's configured default', 'Omit on a single-sensor camera'). Lacks explicit when-not-to-use statements, but the sibling operations are distinct enough that exclusions aren't critical.

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