# asset MCP tool

Project assets.

{/* Generated by landing/scripts/generate-mcp-docs.ts. Do not edit. */}

MCP name `asset` dispatches to renderer `asset`.

List, search, metadata, notes, and captions are local. action transcribe starts a hosted transcription job.

Project assets. action list returns every asset. action search finds assets by filename, description, or transcript. action metadata returns pipeline metadata for one assetId. action notes sets or clears notes on an assetId. action captions returns timed captions for one assetId. action transcribe starts a caption job for one assetId; poll generate_asset kind status with the jobId, then call captions. Editor must be open. List, search, metadata, notes, and captions are local. action transcribe starts a hosted transcription job.

## Advertised MCP input

This tool is registered with **passthrough**. The fields below are what `listTools` advertises. The renderer still validates the child fields for the chosen action or kind. Extra advertised-only values are documented under Reachable behavior.

| Field | Type | Required | Constraints | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `action` | enum("list", "search", "metadata", "notes", "captions", "transcribe") | yes | — | — | action for asset |
| `assetId` | string | no | minLength 1 | — | Required for metadata, notes, captions, and transcribe. |
| `resultStart` | integer | no | min 0; max 9007199254740991 | 0 | First character offset to return. Use 0 for the first call. |
| `resultEnd` | integer | no | min 1; max 9007199254740991 | 8000 | Exclusive end offset. resultEnd - resultStart must be at most 8000. Increment resultStart by 8000 to page through large results. |

## Reachable behavior

Advertised action values match the renderer children: `list`, `search`, `metadata`, `notes`, `captions`, `transcribe`.

## Renderer child fields

These are the authoritative fields for each `action`. Send them on the same MCP call. Grouped MCP tools use passthrough, so these fields are not all listed in the advertised schema.

### `action=list`

Renderer tool: `listAssets`.

Return the uploaded assets currently available in the Assets panel.

_No fields._

### `action=search`

Renderer tool: `searchAssets`.

Search for assets by content - filename, AI description, transcripts, and detected metadata. Use when the user asks to 'find' or 'search' for specific content.

| Field | Type | Required | Constraints | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `query` | string | yes | minLength 1 | — | Search query - can be natural language like 'sunset beach' or 'person talking' |
| `type` | enum("all", "video", "audio", "image", "other") | no | — | — | Filter by asset type |
| `limit` | number | no | min 1; max 50 | 10 | Maximum number of results |

### `action=metadata`

Renderer tool: `getAssetMetadata`.

Get detailed metadata for an asset. For media: face detection, shot detection, labels, transcription, etc. For 3D model assets: returns scenes, meshes, materials, animations, and related structure. For component assets: returns component name, description, inputDefs, and full source code.

| Field | Type | Required | Constraints | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `assetId` | string | yes | minLength 1 | — | — |
| `metadataType` | enum("face-detection", "shot-detection", "label-detection", "person-detection", "transcription", "metadata") | no | — | — | — |

### `action=notes`

Renderer tool: `setAssetNotes`.

Set or update notes on an asset to remember what it is for (e.g. B-roll for intro, voiceover take 2). Use empty notes to clear.

| Field | Type | Required | Constraints | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `assetId` | string | yes | minLength 1 | — | — |
| `notes` | string | yes | — | — | — |

### `action=captions`

Renderer tool: `getAssetCaptions`.

Return timed captions (transcript and segments) for one asset. If captions are missing, call asset action transcribe with the same assetId, then poll generateAsset kind status and call captions again.

| Field | Type | Required | Constraints | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `assetId` | string | yes | minLength 1 | — | — |

### `action=transcribe`

Renderer tool: `transcribeAsset`.

Start a caption job for one audio, video, or screen-recording assetId. Returns a jobId immediately. Poll generateAsset kind status with that jobId, then call asset action captions to read the result. Does not start a second job when captions already exist or a job is already running.

| Field | Type | Required | Constraints | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `assetId` | string | yes | minLength 1 | — | — |

## Result window

Every local MCP tool accepts `resultStart` and `resultEnd` so large payloads can be paged.

- `resultStart` — first character offset. Default `0`.
- `resultEnd` — exclusive end offset. Default `8000`.
- `resultEnd - resultStart` must be at most **8000** characters.
- Increment `resultStart` by 8000 to read the next window.
