Skip to main content
Glama

Update Access Customizations

update_access_customizations
Destructive

Partially update a Wistia video's password-protection settings by sending only fields to change; null removes fields and confirm=true is required.

Instructions

Applies a partial update to a video's password-protection settings. Only the fields supplied are changed; sending a field as null deletes it.

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.
privateNo
media_idYesThe hashed ID of the video to be customized.
encryptedNo
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. Changed18 schema fields changedv3.0.0
    • addedInput schema / $defs
      Added value: +{
      +  "encrypted": {
      +    "properties": {
      +      "password_protect_password": {
      +        "description": "The password viewers must enter. Stored encrypted; also returned by the show endpoint.",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object",
      +    "unevaluatedProperties": false
      +  },
      +  "plugin": {
      +    "properties": {
      +      "passwordProtectedVideo": {
      +        "properties": {
      +          "async": {
      +            "description": "Whether the password check is performed asynchronously.",
      +            "type": "boolean"
      +          },
      +          "challenge": {
      +            "description": "Optional challenge/prompt text shown to viewers.",
      +            "type": "string"
      +          },
      +          "on": {
      +            "description": "Whether the password-protection plugin is enabled.",
      +            "type": "boolean"
      +          },
      +          "src": {
      +            "description": "Internal source marker for the protection plugin.",
      +            "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 / encrypted / $ref
      Added value: +"#/$defs/encrypted"
    • removedInput schema / properties / encrypted / properties
      Removed value: -{
      -  "password_protect_password": {
      -    "description": "The password viewers must enter. Stored encrypted; also returned by the show endpoint.",
      -    "type": "string"
      -  }
      -}
    • removedInput schema / properties / encrypted / type
      Removed value: -"object"
    • removedInput schema / properties / encrypted / unevaluatedProperties
      Removed value: -false
    • addedInput schema / properties / payload / properties / encrypted / $ref
      Added value: +"#/$defs/encrypted"
    • removedInput schema / properties / payload / properties / encrypted / properties
      Removed value: -{
      -  "password_protect_password": {
      -    "description": "The password viewers must enter. Stored encrypted; also returned by the show endpoint.",
      -    "type": "string"
      -  }
      -}
    • removedInput schema / properties / payload / properties / encrypted / type
      Removed value: -"object"
    • removedInput schema / properties / payload / properties / encrypted / unevaluatedProperties
      Removed value: -false
    • addedInput schema / properties / payload / properties / plugin / $ref
      Added value: +"#/$defs/plugin"
    • removedInput schema / properties / payload / properties / plugin / properties
      Removed value: -{
      -  "passwordProtectedVideo": {
      -    "properties": {
      -      "async": {
      -        "description": "Whether the password check is performed asynchronously.",
      -        "type": "boolean"
      -      },
      -      "challenge": {
      -        "description": "Optional challenge/prompt text shown to viewers.",
      -        "type": "string"
      -      },
      -      "on": {
      -        "description": "Whether the password-protection plugin is enabled.",
      -        "type": "boolean"
      -      },
      -      "src": {
      -        "description": "Internal source marker for the protection plugin.",
      -        "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: -{
      -  "passwordProtectedVideo": {
      -    "properties": {
      -      "async": {
      -        "description": "Whether the password check is performed asynchronously.",
      -        "type": "boolean"
      -      },
      -      "challenge": {
      -        "description": "Optional challenge/prompt text shown to viewers.",
      -        "type": "string"
      -      },
      -      "on": {
      -        "description": "Whether the password-protection plugin is enabled.",
      -        "type": "boolean"
      -      },
      -      "src": {
      -        "description": "Internal source marker for the protection plugin.",
      -        "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 discloses partial-update semantics, the null-deletes-field behavior, the exact permission scopes required, the delegate-to-contact authorization path, and the confirm=true gate, plus the warning that the action may share access, notify people, or incur charges. The annotations only flag destructive/openWorld/non-idempotent; the description adds the operational detail an agent needs.

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?

Lead sentence front-loads the core behavior and the critical null/partial semantics before the auth boilerplate, so an agent gets the essentials first. The permission block is verbose but is required operational context rather than filler.

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 mutation with no output schema, 8 params and nested objects, it covers auth, confirmation, mutation semantics, and side-effect risk well. The main gap is the unexplained relationship between the top-level flags and the payload/payload_file alternatives, which an agent must resolve from the schema alone.

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?

At 63% schema coverage, the description usefully adds the null-deletes semantics that govern how the supplied fields should be treated, which the schema does not state. It does not clarify the distinction between the body-flag params and the payload/payload_file alternatives, so the meaning of those alternates is only inferable from the schema.

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 specific verb and resource: 'partial update to a video's password-protection settings.' This differentiates it from the generic update_customizations and the other update_*_customizations siblings by naming the exact concern. It stops short of 5 because it never references its read counterpart get_access_customizations, so the pairing must be inferred.

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?

Provides clear operating context: only supplied fields change, null deletes a field, and confirm=true is required. However it gives no explicit routing versus the many sibling mutation tools (update_customizations, update_sharing_customizations, create/delete_customizations), leaving the agent to infer when this tool is the right choice.

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