Skip to main content
Glama

inspect_asset

Read-onlyIdempotent

Inspect one source asset, not a timeline instance. Find assets with browse_assets; builtin:* and library:* IDs belong to browse_library.

External MCP frame note: source frames require full projectId and timelineId UUIDs and a connected authenticated browser executor with access to the media. The visible page need not show that project or timeline. No cloud fallback. Frames return as one inline labeled contact sheet, no saved file: judge its pixels, not the metadata.

Browser execution requires the full timelineId UUID, never a shortened ID. Get it from editor state, read_project, or manage_timelines action="list". External calls also require full projectId; internal agents may omit it. Non-execution reads need no browser scope. Never switches the visible timeline or silently falls back to cloud.

Always returns metadata. AI assets add generationRecord with original submit params and FULL prompt/text for reuse; browse_assets/read_project show a short preview. record:"missing" means the job record is gone.

Audio/video metadata includes transcript state, a short preview and segmentCount, not rows. transcript.readyForEditing=true is authoritative for transcript, Script and captions even without a cloud copy or while upload is processing.

Request sourceFrameCount samples, exact sourceTimesMs, or transcriptRangesMs rows in original source-asset time, never timeline time. Samples prove only sampled moments; refine bounded exact timestamps before claiming every occurrence was checked.

Images/SVGs include an inline preview when timelineId is supplied unless includeImagePreview:false. includeImagePreview:true requires timelineId; metadata/transcript-only reads do not. Source assets may be unplaced. Browser inspection never uploads local media. Project-stored motion graphics, effects and transitions return schema/defaults. Pass includeCode:true for source and a Motion Graphic's asset.revision. Motion Graphics and effects return chatcutSpecialEffectUsed.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "assetId": "<assetId>"
    },
    "name": "inspect_asset"
  }
}

Input Schema

NameRequiredDescriptionDefault
assetIdYesExactly one project source asset ID or unambiguous ID prefix. Use browse_assets to find and compare project assets. Library IDs (builtin:* or library:*) belong to browse_library. Template source asset IDs use manage_template action:list_assets with templateId.
projectIdNoFull project UUID. Required for external browser work; internal agents may omit. Execution/explicit-timeline calls never change later calls' target.
timelineIdNoFull timeline UUID, never a shortened ID. Required with sourceFrameCount, sourceTimesMs, or includeImagePreview:true; optional for metadata/transcript-only reads. Copy the full target ID from editor state, read_project, or manage_timelines action="list". The source asset may be unplaced; this timeline scopes the execution and result.
includeCodeNoInclude stored source code for code-backed assets. Motion Graphic source includes asset.revision for guarded inline updates.
sourceTimesMsNoRequires the full timelineId UUID. Exact timestamps in the original source asset, in milliseconds; these are not timeline times. Times before the first video frame use its first valid timestamp, reported in sourceTimesMs alongside requestedSourceTimesMs. Timestamps at or after the known source duration are skipped and listed; the call fails only when none is before it. Cannot be combined with sourceFrameCount.
idempotencyKeyNoStable key for this browser execution. Reuse only with identical scope and parameters after a lost acknowledgement; applies only to this call.
includeTimecodeNoFor source-frame screenshots assembled by the editor, set false to omit the caption strip below each image. Exact source timestamps remain available in the returned metadata. Defaults to true.
browserProfileIdNoOptional browser profile override. Omit to select automatically; do not ask the user to choose.
sourceFrameCountNoRequires the full timelineId UUID. Uniform coarse overview across most of the source duration, up to 25 frames. For a broad visual survey, batch 12-20 frames in one call, then use exact sourceTimesMs for details. It avoids the final 1-5 seconds for decoder safety and cannot prove that short visual events were absent; use exact sourceTimesMs to scan or refine specific intervals. Cannot be combined with sourceTimesMs.
transcriptRangesMsNoRequest transcript text that overlaps these original source-asset ranges. This is the only input that requests transcript rows; omit it to receive only transcript state and, when available, a preview of up to 60 characters plus segmentCount in asset metadata. When provided, pass 1-6 objects, for example [{"startMs":0,"endMs":1000}], not tuples such as [[0,1000]]. Each object defines a half-open range: startMs is inclusive, endMs is exclusive, and startMs must be less than endMs. Ranges past the known source duration are clamped to it, and ranges starting at or after it are dropped; the call fails only when none starts before it. One call reads at most 120 seconds in total, in the given order; the rest is returned under Adjusted as the ranges to pass next. No context is added before or after the ranges. Returned rows keep their own timestamps and may cross a requested boundary when they overlap it.
includeImagePreviewNoFor Web image/SVG pixels, pass the full timelineId UUID; true requires it. Omit both fields for metadata-only reads, or set false to omit the preview even when timelineId is supplied.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover only the read-only/idempotent safety profile, and the description adds substantial operational context beyond them: a connected authenticated browser executor is required with no cloud fallback, visible page need not match the project, frames come back as one inline contact sheet with no saved file, and it never uploads local media. It also discloses result semantics like record:"missing" and transcript.readyForEditing being authoritative even without a cloud copy.

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?

Every sentence carries information, but the layout is a dense wall with an 'External MCP frame note' inserted mid-paragraph and no headings or ordering by task (discovery, execution requirements, return shapes, parameter recipes). An agent has to parse the whole block to find the requirement that matters for its call.

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 an 11-parameter, no-output-schema tool this is broad: return shape (metadata, generationRecord with full prompt, transcript state, inline preview, contact sheet), failure modes, and browser prerequisites are all covered. Minor gaps remain around error surfacing and the source-frame caption strip interaction beyond includeTimecode.

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 100%, so the baseline is 3 and much of the description merely restates schema text. It rises above baseline by adding cross-parameter reasoning the schema cannot express: batch 12-20 frames for a survey then refine with exact timestamps, sampling only proves sampled moments, and pass includeCode:true to get a Motion Graphic's asset.revision.

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 plus an explicit scope boundary: 'Inspect one source asset, not a timeline instance.' That single clause separates it from inspect_item (timeline instance), browse_assets (discovery) and browse_library (builtin:*/library:* IDs), which are all named directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Routing is explicit on every axis: use browse_assets to find asset IDs, browse_library for library IDs, manage_template action:list_assets for template source assets, and timelineId is only required for frames/previews while metadata/transcript reads need no browser scope. It also states what it never does (never switches the visible timeline, never silently falls back to cloud).

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.