Skip to main content
Glama

List media

get_media
Read-onlyIdempotent

Lists the project's media library: mediaRef (the id clips use), name, kind (video/audio/image), durationSeconds, resolution, and sceneSamples — timestamps (seconds) where the visual indexer detected distinct moments. sceneSamples is a ready-made shot map: inspect or cut at those times first. Each asset also carries visualIndex and transcript objects: {phase: 'ready'|'pending'|'queued'|'running'|'failed'|'no-audio'|'disabled', error, attempts, sealed}. Analysis starts by itself and retries a failure a few times before sealing it. If a phase is 'failed', read error and decide: call retry_analysis to run just that one analysis again, or leave it. If 'disabled', call request_ai_models. Video and audio assets also carry beats: {phase: 'ready'|'pending'|'failed'|'none', bpm, confidence}. These come from an ONSET detector (spectral flux): every energy rise — drum hits, plucks, syllables — not bars or downbeats. bpm is the tempo of those onsets, or null when there is no steady pulse (confidence 0–1 below the detector's 0.3, or too few onsets) — speech has onsets and no bpm. 'none' = no audio to analyze. Pass mediaRef to get ONE asset with beats.onsetsSec (source seconds, the first 2000; truncated + onsetCount say when there are more) — map them through the clip's trim and speed yourself.

Input Schema

NameRequiredDescriptionDefault
tokenYesThe session token `connect` returned. Pass it on every call — it says which browser to drive.
mediaRefNoOptional: return only this asset, as {asset}, with its onset times. Omit to list every asset (no onset times).
projectIdYesProject id from get_projects.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / mediaRef
      Added value: +{
      +  "description": "Optional: return only this asset, as {asset}, with its onset times. Omit to list every asset (no onset times).",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Goes well past the readOnly/idempotent annotations: analysis starts automatically and retries a failure a few times before sealing, onset data is truncated to the first 2000 entries with truncated + onsetCount signaling more, and the caller must map onsetsSec through clip trim/speed themselves. It also warns that bpm can be null and that speech has onsets but no bpm — non-obvious behaviors an agent would otherwise get wrong.

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

Conciseness4/5

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

Front-loaded with purpose then field-by-field meaning, and nearly every sentence carries information (phase enum semantics, onset-detector caveats, truncation). It is dense and long for a list tool, and the beats/onsets explanation could be tightened, but there is little outright waste.

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?

With no output schema, the description fully carries the return-value burden: it documents every field, both index phase objects, the beats object and its enum values, and the truncation contract. Nothing material is missing for an agent to call it correctly and interpret the result.

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%, so the baseline is 3, but the description adds real meaning beyond the schema: mediaRef switches to single-asset mode and (only then) returns beats.onsetsSec in source seconds, truncated at 2000. That is a behavioral consequence the schema's one-line mediaRef description does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Lists the project's media library') and enumerates the exact fields returned (mediaRef, name, kind, durationSeconds, resolution, sceneSamples). It also distinguishes its two modes (full list vs. single asset via mediaRef). It never names the adjacent siblings it competes with (inspect_media, search_media, get_analysis_status, get_transcript), so an agent must infer the boundary.

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

Usage Guidelines3/5

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

Guidance is present but aimed at follow-up routing, not tool selection: it tells the agent to call retry_analysis on a 'failed' phase and request_ai_models on 'disabled', and to inspect/cut at sceneSamples first. There is no explicit statement of when to use get_media versus inspect_media, search_media, or get_transcript, so the choice is implied by 'lists' rather than stated.

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.

Resources