Skip to main content
Glama

Update Related Media Customizations

update_related_media_customizations
Destructive

Update related-media customizations for a Wistia video, changing only supplied fields; set any field to null to remove it and revert to defaults.

Instructions

Applies a partial update to a video's related-media customizations. Only the fields supplied are changed; sending a field as null deletes it (reverting to the default).

Requires api token with one of the following permissions

Read, update & delete anything

Tokens with the "Act with a team member's permissions" permission (all:delegate_to_contact_permissions scope) can also be used. Requests made with such a token are authorized using the permissions of the contact assigned to the token. Requires confirm=true for the requested mutation. May share access, notify people or incur provider charges.

Input Schema

NameRequiredDescriptionDefault
pluginNo
accountNoNamed private Wistia account; selects credentials, not a remote account ID.
confirmNoSet true only when the user asked for exactly this action.
payloadNoComplete JSON request body instead of body flags. Supports current nested customization, caption and nullable values.
media_idYesThe hashed ID of the video to be customized.
payload_fileNoRegular local JSON body file, at most 5 MB. Cannot be mixed with body flags or payload.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changedv3.0.0
    • addedInput schema / $defs
      Added value: +{
      +  "plugin": {
      +    "properties": {
      +      "relatedMedia": {
      +        "description": "Configuration for the related-media recommendations plugin.",
      +        "properties": {
      +          "hashedIdList": {
      +            "description": "Ordered list of media hashed IDs to recommend.",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "mediaLabelText": {
      +            "description": "Label text displayed above the recommended media.",
      +            "type": "string"
      +          },
      +          "on": {
      +            "description": "Whether related-media recommendations are enabled.",
      +            "type": "boolean"
      +          },
      +          "shouldShowOnEnd": {
      +            "description": "If true, recommendations are shown when the video ends.",
      +            "type": "boolean"
      +          },
      +          "shouldShowOnPause": {
      +            "description": "If true, recommendations are shown when the video is paused.",
      +            "type": "boolean"
      +          },
      +          "watchButtonText": {
      +            "description": "Text shown on the watch button for a recommended media.",
      +            "type": "string"
      +          }
      +        },
      +        "type": "object",
      +        "unevaluatedProperties": false
      +      }
      +    },
      +    "type": "object",
      +    "unevaluatedProperties": false
      +  }
      +}
    • changedInput schema / properties / confirm / description
      Previous value: -"Must be true for the specific user-requested write."New value: +"Set true only when the user asked for exactly this action."
    • addedInput schema / properties / payload / properties / plugin / $ref
      Added value: +"#/$defs/plugin"
    • removedInput schema / properties / payload / properties / plugin / properties
      Removed value: -{
      -  "relatedMedia": {
      -    "description": "Configuration for the related-media recommendations plugin.",
      -    "properties": {
      -      "hashedIdList": {
      -        "description": "Ordered list of media hashed IDs to recommend.",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "mediaLabelText": {
      -        "description": "Label text displayed above the recommended media.",
      -        "type": "string"
      -      },
      -      "on": {
      -        "description": "Whether related-media recommendations are enabled.",
      -        "type": "boolean"
      -      },
      -      "shouldShowOnEnd": {
      -        "description": "If true, recommendations are shown when the video ends.",
      -        "type": "boolean"
      -      },
      -      "shouldShowOnPause": {
      -        "description": "If true, recommendations are shown when the video is paused.",
      -        "type": "boolean"
      -      },
      -      "watchButtonText": {
      -        "description": "Text shown on the watch button for a recommended media.",
      -        "type": "string"
      -      }
      -    },
      -    "type": "object",
      -    "unevaluatedProperties": false
      -  }
      -}
    • removedInput schema / properties / payload / properties / plugin / type
      Removed value: -"object"
    • removedInput schema / properties / payload / properties / plugin / unevaluatedProperties
      Removed value: -false
    • addedInput schema / properties / plugin / $ref
      Added value: +"#/$defs/plugin"
    • removedInput schema / properties / plugin / properties
      Removed value: -{
      -  "relatedMedia": {
      -    "description": "Configuration for the related-media recommendations plugin.",
      -    "properties": {
      -      "hashedIdList": {
      -        "description": "Ordered list of media hashed IDs to recommend.",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "mediaLabelText": {
      -        "description": "Label text displayed above the recommended media.",
      -        "type": "string"
      -      },
      -      "on": {
      -        "description": "Whether related-media recommendations are enabled.",
      -        "type": "boolean"
      -      },
      -      "shouldShowOnEnd": {
      -        "description": "If true, recommendations are shown when the video ends.",
      -        "type": "boolean"
      -      },
      -      "shouldShowOnPause": {
      -        "description": "If true, recommendations are shown when the video is paused.",
      -        "type": "boolean"
      -      },
      -      "watchButtonText": {
      -        "description": "Text shown on the watch button for a recommended media.",
      -        "type": "string"
      -      }
      -    },
      -    "type": "object",
      -    "unevaluatedProperties": false
      -  }
      -}
    • removedInput schema / properties / plugin / type
      Removed value: -"object"
    • removedInput schema / properties / plugin / unevaluatedProperties
      Removed value: -false
  2. First observedv2.0.0

TDQS

A4/5.0
Behavior5/5

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

Goes well beyond the annotations: it explains that only supplied fields change, that sending null deletes a field and reverts it to the default (the actual destructive mechanism), that confirm=true is required, and that the call may share access, notify people, or incur provider charges. Auth requirements and the delegation scope are also spelled out, so the destructiveHint/openWorldHint annotations are substantiated rather than merely restated.

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?

The operative content is front-loaded in two sentences before any boilerplate, and each of those sentences earns its place. The permissions block is long, but it is standard required policy text rather than padding, so the size is largely justified.

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

Completeness4/5

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

For a destructive, non-idempotent mutation with no output schema, the description covers the important ground: what is mutated, how null behaves, confirmation, and side effects. It omits what the response looks like and does not explain the account/payload parameters, leaving small gaps.

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 already 83%, which sets the baseline at 3, and the description earns above that by clarifying the null-value semantics that the schema only gestures at with 'nullable values' — null does not merely set an empty value, it deletes the field. It still says nothing about media_id, account, or the payload/payload_file mutual exclusivity, so it does not fully carry the parameter burden.

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?

States a precise verb and resource: 'Applies a partial update to a video's related-media customizations,' and immediately pins down the partial-update semantics. It does not, however, distinguish itself from the large family of sibling update_*_customizations tools or route the agent to update_customizations for other plugin types.

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?

The description gives real prerequisites (API token permission classes, delegate_to_contact_permissions scope, confirm=true for the mutation), which is genuine usage context. What it never states is when to choose this tool over update_customizations or the other plugin-specific updaters, nor that reading get_related_media_customizations first is advisable before a partial write.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools