Medium Risk

generate_subtitles_video_assets

When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance. Only omit if you're sure you don't need the data. Generates subtitles (captions) for a given audio track. This API can be used for up to 7 days after an asset is created. # Response ...

Single-target operation

Part of the Mux MCP server. Enforce policies on this tool with Intercept, the open-source MCP proxy.

@mux/mcp Write Risk 2/5

AI agents use generate_subtitles_video_assets to create or modify resources in Mux. Write operations carry medium risk because an autonomous agent could trigger bulk unintended modifications. Rate limits prevent a single agent session from making hundreds of changes in rapid succession. Argument validation ensures the agent passes expected values.

Without a policy, an AI agent could call generate_subtitles_video_assets repeatedly, creating or modifying resources faster than any human could review. Intercept's rate limiting ensures write operations happen at a controlled pace, and argument validation catches malformed or unexpected inputs before they reach Mux.

Write tools can modify data. A rate limit prevents runaway bulk operations from AI agents.

com-mux-mcp.yaml
tools:
  generate_subtitles_video_assets:
    rules:
      - action: allow
        rate_limit:
          max: 30
          window: 60

See the full Mux policy for all 98 tools.

Tool Name generate_subtitles_video_assets
Category Write
MCP Server Mux MCP Server
Risk Level Medium

View all 98 tools →

Agents calling write-class tools like generate_subtitles_video_assets have been implicated in these attack patterns. Read the full case and prevention policy for each:

Browse the full MCP Attack Database →

Other tools in the Write risk category across the catalogue. The same policy patterns (rate-limit, validate) apply to each.

What does the generate_subtitles_video_assets tool do? +

When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance. Only omit if you're sure you don't need the data. Generates subtitles (captions) for a given audio track. This API can be used for up to 7 days after an asset is created. # Response Schema ```json { type: 'object', properties: { data: { type: 'array', items: { $ref: '#/$defs/track' } } }, required: [ 'data' ], $defs: { track: { type: 'object', properties: { id: { type: 'string', description: 'Unique identifier for the Track' }, closed_captions: { type: 'boolean', description: 'Indicates the track provides Subtitles for the Deaf or Hard-of-hearing (SDH). This parameter is only set tracks where `type` is `text` and `text_type` is `subtitles`.' }, duration: { type: 'number', description: 'The duration in seconds of the track media. This parameter is not set for `text` type tracks. This field is optional and may not be set. The top level `duration` field of an asset will always be set.' }, language_code: { type: 'string', description: 'The language code value represents [BCP 47](https://tools.ietf.org/html/bcp47) specification compliant value. For example, `en` for English or `en-US` for the US version of English. This parameter is only set for `text` and `audio` track types.' }, max_channel_layout: { type: 'string', description: 'Only set for the `audio` type track.' }, max_channels: { type: 'integer', description: 'The maximum number of audio channels the track supports. Only set for the `audio` type track.' }, max_frame_rate: { type: 'number', description: 'The maximum frame rate available for the track. Only set for the `video` type track. This field may return `-1` if the frame rate of the input cannot be reliably determined.' }, max_height: { type: 'integer', description: 'The maximum height in pixels available for the track. Only set for the `video` type track.' }, max_width: { type: 'integer', description: 'The maximum width in pixels available for the track. Only set for the `video` type track.' }, name: { type: 'string', description: 'The name of the track containing a human-readable description. The HLS manifest will associate a subtitle `text` or `audio` track with this value. For example, the value should be "English" for a subtitle text track for the `language_code` value of `en-US`. This parameter is only set for `text` and `audio` track types.' }, passthrough: { type: 'string', description: 'Arbitrary user-supplied metadata set for the track either when creating the asset or track. This parameter is only set for `text` type tracks. Max 255 characters.' }, primary: { type: 'boolean', description: 'For an audio track, indicates that this is the primary audio track, ingested from the main input for this asset. The primary audio track cannot be deleted.' }, status: { type: 'string', description: 'The status of the track. This parameter is only set for `text` type tracks.', enum: [ 'preparing', 'ready', 'errored', 'deleted' ] }, text_source: { type: 'string', description: 'The source of the text contained in a Track of type `text`. Valid `text_source`\nvalues are listed below.\n* `uploaded`: Tracks uploaded to Mux as caption or subtitle files using the Create Asset Track API.\n* `embedded`: Tracks extracted from an embedded stream of CEA-608 closed captions.\n* `generated_vod`: Tracks generated by automatic speech recognition on an on-demand asset.\n* `generated_live`: Tracks generated by automatic speech recognition on a live stream configured with `generated_subtitles`. If an Asset has both `generated_live` and `generated_live_final` tracks that are `ready`, then only the `generated_live_final` track will be included during playback.\n* `generated_live_final`: Tracks generated by automatic speech recognition on a live stream using `generated_subtitles`. The accuracy, timing, and formatting of these subtitles is improved compared to the corresponding `generated_live` tracks. However, `generated_live_final` tracks will not be available in `ready` status until the live stream ends. If an Asset has both `generated_live` and `generated_live_final` tracks that are `ready`, then only the `generated_live_final` track will be included during playback.', enum: [ 'uploaded', 'embedded', 'generated_live', 'generated_live_final', 'generated_vod' ] }, text_type: { type: 'string', description: 'This parameter is only set for `text` type tracks.', enum: [ 'subtitles' ] }, type: { type: 'string', description: 'The type of track', enum: [ 'video', 'audio', 'text' ] } } } } } ```. It is categorised as a Write tool in the Mux MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.

How do I enforce a policy on generate_subtitles_video_assets? +

Add a rule in your Intercept YAML policy under the tools section for generate_subtitles_video_assets. You can allow, deny, rate-limit, or validate arguments. Then run Intercept as a proxy in front of the Mux MCP server.

What risk level is generate_subtitles_video_assets? +

generate_subtitles_video_assets is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.

Can I rate-limit generate_subtitles_video_assets? +

Yes. Add a rate_limit block to the generate_subtitles_video_assets rule in your Intercept policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.

How do I block generate_subtitles_video_assets completely? +

Set action: deny in the Intercept policy for generate_subtitles_video_assets. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.

What MCP server provides generate_subtitles_video_assets? +

generate_subtitles_video_assets is provided by the Mux MCP server (@mux/mcp). Intercept sits as a proxy in front of this server to enforce policies before tool calls reach the server.

Enforce policies on Mux

Open source. One binary. Zero dependencies.

npx -y @policylayer/intercept
github.com/policylayer/intercept →
// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.