Agent Cam MCP Tool
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_statusA | Use this any time you need to see the physical hardware: while debugging, after reboots, during serial output, mid-process. Do not wait until the end of a task. Returns daemon version, uptime, camera states, pause flag, buffer fill, adapters, and system warnings. Always call this first. |
| list_camerasA | List all detected physical USB webcams and IP cameras with their ID, name, resolution, fps, and state. |
| capture_imageA | Use this any time you need to visually inspect the hardware. Captures a live frame directly as an MCP image result. Never saves to disk by default. Can crop to a defined region and annotate existing regions. |
| capture_sequenceA | Captures a sequence of frames over time and returns a single token-efficient contact sheet with timestamps. Use to observe physical motions, LED blink patterns, or mechanical movements. |
| get_timelineA | Returns a contact sheet of buffered history frames plus timestamp-aligned event lines from serial or log adapters. Use to correlate hardware events (e.g. crash, reset, button press) with visual frames. |
| measureA | Compute quantitative measurements on the camera frame or region without returning heavy images. Returns mean brightness, contrast, lit-pixel percentage, dominant colors, edge density, sharpness (Laplacian variance), and motion level. |
| watchB | Asynchronously monitor the camera until a physical condition is met or timeout expires. Conditions: 'change', 'motion_start', 'motion_stop', 'brightness_above', 'brightness_below', 'color_present'. Returns fired status, timing, and before/after evidence images. |
| define_regionB | Define and save a named region of interest (e.g. 'status_led', 'oled_screen', 'pixgen32') using normalized coordinates (0.0 to 1.0) or 4 corner points for perspective homography. |
| list_regionsA | List all saved named hardware regions of interest. |
| delete_regionB | Delete a saved named region. |
| request_region_from_userA | Ask the user in the Dashboard UI to interactively draw a region on the camera preview. Blocks until user finishes drawing or timeout. |
| save_baselineA | Capture and persist a golden reference image for subsequent comparison. Use to establish a known-good baseline before running experiments or flashing firmware. |
| compare_to_baselineA | Compare the current physical camera state against a saved baseline. Returns SSIM structural similarity score, percent of changed pixels, and a visual difference heatmap image. |
| read_textA | Perform OCR to extract printed text or seven-segment display digits from the camera frame or region. Returns extracted text and confidence. |
| rectify_regionA | Capture and perspective-correct (unwarp/rectify) an angled hardware region or screen into a flat, orthogonal top-down image. Returns the rectified image for high-precision inspection or OCR. |
| analyze_ledA | Sample high-speed frames of an LED or indicator to detect state (solid_on, blinking, off), blink frequency in Hz, duty cycle, and exact perceived color (red, green, blue, amber, etc.). |
| set_camera_settingsA | Adjust hardware camera parameters: exposure, focus, brightness, contrast, gain, white balance, or lock auto settings. Reports exactly which parameters were accepted vs rejected by the driver. |
| read_eventsA | Read timestamped lines from an active event adapter (serial, log file, MQTT). Can block until specific text appears or until timeout. |
| run_actionB | Execute a configured allowlist action (e.g. 'reset_board', 'pause_print'). Subject to approval policy. If observe_seconds is configured, returns post-action timeline sheet. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| verify_hardware | Recommended systematic workflow for verifying physical hardware state with Agent Cam. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Agent Cam System Status | Current camera states, daemon status, and buffer metrics |
| Agent Cam Named Regions | Defined hardware regions of interest (LEDs, displays, zones) |
TDQS
Scored across 19 tools
Most tools target distinct purposes (capture vs analysis vs monitoring vs region management). Some overlap exists between capture_image, capture_sequence, and get_timeline, which all return frames but at different time semantics; descriptions differentiate them reasonably well. analyze_led and measure also stay distinct (LED state vs general quantitative metrics).
Nearly all tools use snake_case, most following a verb_noun pattern (list_cameras, capture_image, define_region, save_baseline). A few use bare verbs without a noun (measure, watch), which is a minor deviation but still readable and consistent in casing style.
19 tools is slightly heavy but each covers a genuine capability in a rich domain (capture, camera settings, region lifecycle, analysis, monitoring, baseline comparison, actions). No obvious redundancies, though the set sits at the upper end of the comfortable range.
The surface covers the full lifecycle: camera discovery, capture, settings, region define/list/delete/request, analysis (OCR, LED, measure), monitoring (watch, timeline, events, sequence), baseline save/compare, actions, and status. No significant gaps for the stated physical-inspection purpose.