Skip to main content
Glama
RhombusSystems

Rhombus MCP Server

Official

clips-tool

Retrieve saved video clips, expiring clips, shared live streams, and timelapse clips from your Rhombus system. Filter by devices, locations, search text, or time range.

Instructions

Retrieves saved video clips from the Rhombus system. Saved clips can be viewed for up to 2 years and are typically found in the "Clips" tab of the "Saved Video" section of the Rhombus Console. Clips are either manually saved by the user, or automatically by some defined policy. Therefore, this tool is not for looking up the events that have occured.

This tool allows you to:

  • Get saved clips or clips expiring soon (filter by devices, locations, search string, time range).

  • Get all shared live video streams for the organization.

  • Get all timelapse clips for the organization.

Filter options (for saved and expiringSoon only):

  • Specific devices using their UUIDs (deviceUuidFilters).

  • Specific locations using their UUIDs (locationUuidFilters).

  • A simple string search on clip names (searchFilter).

  • A time range: start (timestampISOAfter) and/or end (timestampISOBefore) timestamp in ISO 8601 format.

The tool returns a JSON object with the following structure and important fields:

  • errorMsg (string | null): An error message if the request failed.

  • objecterror (boolean | null): Indicates if an object-level error occurred.

  • pageToken (string | null): A token to be supplied on the next search request to get the next page of results. If this token is null, there is no more data available.

  • savedClips (array of objects | null): An array where each object represents a saved video clip. Each clip object contains the following important fields:

    • uuid (string): The unique identifier for the video clip.

    • title (string): The name given to the video clip.

    • description (string | null): An optional description for the clip.

    • timestampMs (int64): The start time of the video clip in milliseconds since epoch.

    • createdAtMs (int64): The creation timestamp of the clip in milliseconds since epoch.

    • createdAtTimestamp (string): The creation timestamp of the clip in ISO 8601 format.

    • deviceUuid (string): The UUID of the primary device (e.g., camera) that recorded the clip.

    • deviceUuids (array of strings or null): A list of UUIDs for all devices associated with the clip.

    • durationSec (int32): The length of the video clip in seconds.

    • status (string): The current processing status of the clip, with possible values such as INITIATING, UPLOADING, RENDERING, FAILED, COMPLETE, OFFLINE, or UNKNOWN.

    • userUuid (string | null): The UUID of the user associated with the clip, if applicable.

    • sourceAlertUuid (string | null): The UUID of the alert that triggered the creation of this clip, if any.

  • sharedLiveVideoStreams (array): When requestType is sharedLiveStreams, list of shared live video stream objects.

  • timelapseClips (array): When requestType is timelapseClips, list of timelapse clip objects.

Output filtering (all tools):

  • includeFields (string[]): Dot-notation paths to keep in the response (e.g. "vehicleEvents.vehicleLicensePlate"). Omit to return all fields.

  • filterBy (array): Predicates to filter array items. Each entry: {field, op, value} where op is one of = != > >= < <= contains. All conditions are ANDed. Example: [{field:"vehicleLicensePlate", op:"=", value:"ABC123"}] WARNING: some tool responses exceed 400k characters — use these params to request only the data you need.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
requestTypeYesThe type of data to retrieve. Use "saved" for regular saved clips, "expiringSoon" for clips nearing expiration, "sharedLiveStreams" for all shared live video streams, or "timelapseClips" for all timelapse clips.
deviceUuidFiltersYesA list of UUIDs representing specific devices to filter clips by. Only clips emitted by these devices will be returned. Please truncate any facets, such as .v0. It is always 22 characters long.
locationUuidFiltersYesA list of UUIDs representing specific locations to filter clips by. Only clips associated with these locations will be returned. Please truncate any facets, such as .v0. It is always 22 characters long.
searchFilterYesA simple string to search for within the names of the clips.
timestampISOAfterYesThe start of the time range for which to retrieve clips. Only clips that occurred AFTER this timestamp will be returned. Required when requestType is saved or expiringSoon.Time format is in ISO 8601 format. Both UTC ("2025-08-04T20:54:27.123Z") and time zone offsets ("2025-08-04T13:54:27.123-07:00") are accepted to ensure an unambiguous point in time.
timestampISOBeforeYesThe end of the time range for which to retrieve clips. Only clips that occurred BEFORE this timestamp will be returned. Required when requestType is saved or expiringSoon.Time format is in ISO 8601 format. Both UTC ("2025-08-04T20:54:27.123Z") and time zone offsets ("2025-08-04T13:54:27.123-07:00") are accepted to ensure an unambiguous point in time.
clipUuidYesUUID of a clip. Required for 'deleteClip'.
spliceRequestYesRequired for 'createClip'. Specifies the camera and time range for the new clip.
includeFieldsYesDot-notation field paths to include in the response (e.g. "vehicleEvents.vehicleLicensePlate"). Pass null to return all fields. WARNING: some responses can exceed 400k characters — use includeFields to request only the data you need. For high-volume tools this may be required to get a complete answer.
filterByYesFilter array items in the response by field values. All conditions are ANDed. Example: [{field: "vehicleLicensePlate", op: "=", value: "ABC123"}, {field: "confidence", op: ">", value: 0.8}] Use alongside includeFields to get only the specific records and fields you need.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNo
savedClipsNo
expiringClipsNo
sharedLiveVideoStreamsNo
timelapseClipsNo
clipGroupsNoList of clip groups/folders
sharedClipGroupsNoList of shared clip groups
spliceResultNoResult of creating a new clip
deleteResultNoResult of deleting a clip
Behavior2/5

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

No annotations are provided, so the description carries the full burden. The description focuses on retrieving clips but the input schema includes createClip and deleteClip requestTypes, which are not mentioned in the description text. This creates a mismatch; the agent might not know the tool can also create or delete clips. The description does not disclose any destructive behavior or mutations.

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

Conciseness3/5

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

The description is detailed and structured with bullet points and sections, but it is quite lengthy. It front-loads the main purpose, but includes extensive output schema details that could be in the output schema itself. Some redundancy exists (e.g., warning about large responses appears in both description and parameter descriptions). Could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, output schema exists), the description is fairly complete regarding retrieval operations and output filtering. It mentions retention period and warns about large responses. However, it omits the create/delete capabilities, which are part of the tool's functionality, making it incomplete for a full understanding.

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 coverage is 100%, but the description adds significant meaning beyond the schema by explaining filter options, output structure, and output filtering (includeFields, filterBy). It provides context for requestType values and clarifies that timestamps are in ISO 8601 format with examples. This adds value beyond the schema definitions.

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 clearly states it retrieves saved video clips from the Rhombus system, with specific verb and resource. It distinguishes itself from the events-tool by explicitly saying 'This tool is not for looking up the events that have occured.' It also lists multiple request types, making the purpose clear and differentiating from siblings.

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 provides explicit context for when to use the tool (retrieving clips) and when not (events). It explains filter options and output filtering. However, it does not mention alternatives among siblings beyond events-tool, and does not give guidance on when to use different requestTypes like createClip or deleteClip.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/RhombusSystems/rhombus-node-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server