Skip to main content
Glama

camera_stream_start

Idempotent

Starts or renews a persistent printer camera connection for live viewing, then closes it after an idle timeout; snapshots reuse the latest frame.

Instructions

Start or renew one persistent camera connection for this printer. Call only while watched; it closes automatically after idle_timeout_ms without a viewer request. camera_snapshot then reuses its latest frame. No printer motion or print commands.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "camera_stream_start"
  }
}

Input Schema

NameRequiredDescriptionDefault
fpsNoMaximum processed frames per second. The first viewer sets the rate until the stream closes.
hostNoPrinter LAN host or IP; defaults to the configured Bambu host.
bambu_modelNoBambu model used to select the camera transport; defaults to BAMBU_MODEL.
bambu_tokenNoPrinter LAN access code; defaults to the configured access code.
bambu_serialNoPrinter serial number; defaults to the configured serial and identifies its shared stream.
idle_timeout_msNoClose the shared connection after this many milliseconds without a viewer request.

Output Schema

NameRequiredDescriptionDefault
fpsYes
statusYes
startedAtYes
transportYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.1.61

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare idempotent=true, destructiveHint=false, and readOnlyHint=false; the description adds the important clarification that despite being non-read-only it involves 'No printer motion or print commands'. It also discloses the idle-timeout lifecycle and the renew semantics of the persistent connection, though it doesn't mention auth requirements or resource costs of holding the stream.

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?

Three short sentences, front-loaded with the action and the critical 'only while watched' constraint. Every sentence carries distinct information (lifecycle, snapshot reuse, safety scope) with no redundancy.

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?

All six optional parameters are fully documented in the schema with defaults and bounds, an output schema exists, and annotations cover the safety profile. The description supplies the lifecycle and safety context an agent needs to call it correctly, leaving nothing material unaddressed.

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

Parameters3/5

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

Schema description coverage is 100% and all six parameters are documented in the schema, including fps rate-setting ownership and the idle_timeout behavior, so the description need not repeat them. The description references idle_timeout_ms but adds no syntax or format meaning beyond what the schema already provides; baseline 3 applies.

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 first sentence gives a specific verb and resource ('Start or renew one persistent camera connection for this printer') and explicitly frames it as a shared/persistent connection. It also distinguishes the outcome from siblings by noting that camera_snapshot reuses its latest frame, so an agent can place it relative to the snapshot/frame tools.

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 states a clear usage condition ('Call only while watched') and the consequence of not doing so (auto-close after idle_timeout_ms). It implies the start-then-snapshot workflow rather than spelling out alternatives, and it doesn't explicitly route to camera_stream_stop, so it falls short of full when/when-not guidance.

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