Skip to content

asset_display

Display

Display Asset

Display a Scenario asset inline. ALWAYS use this tool to show images, textures, panoramas, videos, audio, 3D models, Gaussian splats, and text outputs to the user instead of pasting raw asset URLs. Pass the asset_id returned by model_run or other asset-producing tools. Args: - asset_id: required — asset to display - format: 'display' (default), 'viewer', 'json', or 'markdown' - team_id, project_id: required for OAuth callers Returns: asset_id + app_url (dashboard deep link); no signed CDN URLs — use asset_download when the user needs a file URL. display returns inline image content for images plus viewer structuredContent; viewer returns a lightweight response for MCP App-capable hosts; json and markdown return metadata and links. If this host rendered the interactive viewer widget on a previous asset_display call, prefer format 'viewer' — it is lighter and avoids showing the same asset twice (inline image + widget). If the host renders the interactive widget, do not restate the visual in text — just provide the app_url link. The app automatically highlights JSON, YAML, Markdown and Mustache text. It previews GLB/OBJ/FBX/VOX meshes and skeleton-only animations, SPLAT/SPZ/Gaussian PLY/SOG splats, tiled textures and 360° panoramas. Unsupported files offer an app link. Binary previews are limited to 50 MB; dense splats use a sampled preview. Examples: - "Display this asset_xxx" -> asset_id="asset_xxx" - "Show the result of model_run" -> asset_id="asset_xxx" - "Render only the interactive viewer" -> asset_id="asset_xxx", format="viewer" Don't use when: You need to edit metadata, tags, or other asset records, or when you were about to call asset_get just to show the asset. Prefer asset_get for reads (asset_update is catalog-only — scenario_tool_execute_write) and asset_display for rendering.
read-onlyidempotentopen-world

Parameters

NameTypeRequiredDescription
asset_idstring✓The asset ID to display (e.g. 'asset_xxx'). Can display images, videos, audio, and 3D models.
formatenum(display | json | markdown | viewer)displayOutput format. 'display': inline image + clickable links (default, best for showing to user). 'viewer': lightweight response for MCP App-capable hosts (no inline image, viewer renders the visual) — prefer it when this host rendered the interactive viewer widget on a previous call; lighter, and avoids showing the asset twice. 'json': structured metadata. 'markdown': human-readable text with links.
team_idstring—Team ID. Required with project_id for OAuth callers; an API key is scoped by the key.
project_idstring—Project ID. Required with team_id for OAuth callers; an API key is scoped by the key.
response_formatenum(json | markdown)jsonOutput format: 'json' for structured data, 'markdown' for human-readable text.

Example Request

JSON
{
  "asset_id": "asset_img001",
  "format": "display",
  "team_id": "team_abc123",
  "project_id": "proj_xyz789"
}

Example Response

JSON
{
  "asset_id": "asset_img001",
  "mimeType": "image/png",
  "app_url": "https://app.scenario.com/assets/asset_img001"
}

Common Use Cases

  • Show generated images inline in the chat after a model_run call
  • Get the dashboard link for an asset to share or open in the browser
  • Display video or 3D asset links when inline rendering is not supported
  • Get structured JSON metadata about an asset for programmatic use