# generate_asset MCP tool

Start or poll hosted generation.

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

MCP name `generate_asset` dispatches to renderer `generateAsset`.

Image generation uses your image-generation allowance. Speech is included with a usage quota.

Start or poll hosted generation. kind image uses prompt, aspectRatio, imageSize. kind music uses prompt and durationSeconds. kind speech uses text and voice. kind video uses prompt, durationSeconds, aspectRatio, resolution, negativePrompt. kind status polls jobId from those jobs or from asset transcribe. Editor must be open. Image generation uses your image-generation allowance. Speech is included with a usage quota.

## 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 |
| --- | --- | --- | --- | --- | --- |
| `kind` | enum("image", "music", "speech", "video", "status") | yes | — | — | kind for generate_asset |
| `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

MCP advertisement and the renderer child map are not the same. Call only what the renderer wires.

**Advertised but not reachable:** `music`, `video`. The MCP wrapper lists these values. The renderer does not register a child for them, so the call fails.

## Renderer child fields

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

### `kind=image`

Renderer tool: `generateImage`.

Start generating an image from a text prompt. Returns a job ID immediately; poll generationStatus with that job ID until the job is completed to get the resulting image asset.

| Field | Type | Required | Constraints | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `prompt` | string | yes | minLength 1 | — | — |
| `aspectRatio` | enum("1:1", "16:9", "9:16") | no | — | "1:1" | — |
| `imageSize` | enum("1K", "2K", "4K") | no | — | "1K" | — |

### `kind=speech`

Renderer tool: `generateSpeech`.

Start generating speech from text. Included with a usage quota. Returns a job ID immediately; poll generationStatus with that job ID until it is completed to get the audio asset.

| Field | Type | Required | Constraints | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `text` | string | yes | minLength 2; maxLength 5000 | — | — |
| `voice` | enum("asteria", "luna", "stella", "athena", "hera", "orion", "arcas", "perseus", "angus", "orpheus", "helios", "zeus") | no | — | "asteria" | — |

### `kind=status`

Renderer tool: `generationStatus`.

Check the status of an image, speech, or transcription job by its job ID. Returns the result when the job is completed, or the error if it failed. After a transcription job completes, call asset action captions to read the captions.

| Field | Type | Required | Constraints | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `jobId` | 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.
