Skip to main content
Glama

List Media Assets

dynamoi_list_media_assets
Read-only

Use this when the user wants to choose from uploaded images or videos that can be reused in a campaign launch. Do not use this when the user only wants campaign status or analytics. Use format=json when you need asset IDs for a follow-up launch. Request includeUrls only when the assistant must display or inspect public-safe asset URLs.

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": {
      "artistId": "<artistId>"
    },
    "name": "dynamoi_list_media_assets"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNo
cursorNo
formatNo
artistIdYes
includeUrlsNo

Output Schema

NameRequiredDescriptionDefault
codeNo
dataNo
kindNo
fieldNo
statusYes
draftIdNo
messageNo
retryableNo
nextActionNo
failureStageNo
prerequisiteNo
screeningResultNo
retryAfterSecondsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added
  2. Removed
  3. Changed5 schema fields changed
    • changedOutput schema / additionalProperties
      Previous value: -{}New value: +false
    • addedOutput schema / properties / data
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "assets": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "aspectRatio": {
      +                "type": "string"
      +              },
      +              "createdAt": {
      +                "type": "string"
      +              },
      +              "fileName": {
      +                "type": "string"
      +              },
      +              "fileType": {
      +                "type": "string"
      +              },
      +              "height": {
      +                "type": "number"
      +              },
      +              "id": {
      +                "type": "string"
      +              },
      +              "url": {
      +                "type": "string"
      +              },
      +              "urlExpiresAt": {
      +                "type": "string"
      +              },
      +              "width": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "createdAt",
      +              "fileType",
      +              "id"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "nextCursor": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "assets"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "nextCursor": {
      +          "type": "string"
      +        },
      +        "summary": {
      +          "type": "string"
      +        },
      +        "totalCount": {
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "summary",
      +        "totalCount"
      +      ],
      +      "type": "object"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / kind
      Added value: +{
      +  "enum": [
      +    "validation",
      +    "business",
      +    "platform",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / message
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / properties / status / enum
      Previous value: -[
      -  "success",
      -  "partial_success",
      -  "error"
      -]New value: +[
      +  "success",
      +  "error"
      +]
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": {},
      +  "properties": {
      +    "status": {
      +      "enum": [
      +        "success",
      +        "partial_success",
      +        "error"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "status"
      +  ],
      +  "type": "object"
      +}
  5. First observed

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered without prose. The description adds one useful behavioral note — that URLs are 'public-safe' and should only be requested when display/inspection is needed — but says nothing about pagination behavior, result size, or what an empty asset library returns.

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?

Four short sentences, no filler, and the primary when-to-use condition is front-loaded ahead of the exclusion and the parameter hints. The sentences are dense with instruction rather than padding, though they read as a flat list rather than a structured hierarchy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be described, and the annotations cover safety. Still, for a paginated list tool with a required artist scoping parameter and an undocumented cursor, the description should clarify pagination and result bounds; that gap leaves an agent unable to reason about large libraries or follow-up pages.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description has to carry the load; it does explain format=json (IDs for a follow-up launch) and includeUrls (only when public-ready URLs are needed), which is real added meaning. But limit and cursor — the pagination contract — are completely unaddressed, and artistId's required/scoping role is never mentioned, leaving two of five parameters undocumented anywhere.

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?

The description names a specific resource (uploaded images or videos reusable in a campaign launch) and frames it around a concrete user intent, which is enough to tell it apart from analytics/campaign siblings. However, it never states the operation plainly (list/retrieve for an artistId), leaving the verb to be inferred from the tool name.

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

Usage Guidelines4/5

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

It gives both a positive trigger ('when the user wants to choose from uploaded images or videos') and an explicit exclusion ('Do not use this when the user only wants campaign status or analytics'), which is stronger guidance than most definitions. It stops short of naming the specific sibling tool to use instead, so the agent must still map 'campaign status/analytics' to the right tool itself.

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.