Skip to main content
Glama
mpolinowski

camera-mcp

by mpolinowski

Get Camera Image

get_camera_image

Retrieve the most recently received camera snapshot without triggering a new capture. Use max_age to reject stale images and get confidence metadata for live vs known-but-stale status.

Instructions

Retrieve the most recently received image from camera.

This retrieves a cached periodic snapshot published by the camera. It does NOT trigger a new photograph or snapshot.

INSTAR cameras publish snapshots periodically via MQTT. This tool returns the latest received image if available.

max_age parameter enforces freshness: image rejected if older than max_age seconds. Returns confidence metadata:

  • OBSERVED: live image received after connection

  • KNOWN_BUT_STALE: retained image or downgraded after disconnect

Do not treat stale images as current live images.

Use list_camera_capabilities to find image sources (type=image).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cameraYes
sourceYes
max_ageNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/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 thoroughly. It explains MQTT periodic publishing, cached/non-triggering behavior, max_age freshness rejection, confidence metadata states (OBSERVED and KNOWN_BUT_STALE), and warns against treating stale images as live. This is model transparency beyond the structured fields.

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

Conciseness5/5

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

Although longer than a one-liner, every sentence earns its place: the core action, the cached/no-trigger caveat, MQTT context, max_age semantics, confidence metadata, the stale-image warning, and source discovery. The structure is front-loaded and uses a clear bullet list, making it easy for an agent to parse the essential behavior quickly.

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 camera image retrieval tool with no annotations and zero parameter description in the schema, this definition is highly complete. It covers purpose, behavioral caveats, freshness rules, confidence interpretation, and prerequisite source discovery. An output schema exists, so detailed return field documentation is not required from the description. No significant call-blocking gap remains.

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?

Schema description coverage is 0%, so the description must compensate. It thoroughly explains the max_age parameter including its freshness enforcement, and it tells the agent to use list_camera_capabilities to identify valid image sources. It does not elaborate on the camera identifier or the exact format of source values, which are otherwise undocumented, but the highest-risk parameter is well covered.

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 description states a specific verb and resource: 'Retrieve the most recently received image from camera.' It immediately clarifies that this is a cached periodic snapshot and does NOT trigger a new photograph, clearly distinguishing it from other camera tools. The scope is precise and 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?

The description gives clear context: it returns the latest cached MQTT-published image, and max_age enforces freshness. It also explicitly warns that it does NOT trigger a new capture and points to list_camera_capabilities for finding image sources. However, it does not name a concrete alternative for intentionally triggering a fresh photograph, so it stops slightly short of complete alternative routing.

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