Medium Risk

create_track_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. Adds an asset track (for example, subtitles, or an alternate audio track) to an asset. Assets must be in the `ready` state before tra...

Accepts URL/endpoint input (url)

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 create_track_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 create_track_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:
  create_track_video_assets:
    rules:
      - action: allow
        rate_limit:
          max: 30
          window: 60

See the full Mux policy for all 98 tools.

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

View all 98 tools →

Agents calling write-class tools like create_track_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 create_track_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. Adds an asset track (for example, subtitles, or an alternate audio track) to an asset. Assets must be in the `ready` state before tracks can be added. # Response Schema ```json { type: 'object', properties: { data: { $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 create_track_video_assets? +

Add a rule in your Intercept YAML policy under the tools section for create_track_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 create_track_video_assets? +

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

Can I rate-limit create_track_video_assets? +

Yes. Add a rate_limit block to the create_track_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 create_track_video_assets completely? +

Set action: deny in the Intercept policy for create_track_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 create_track_video_assets? +

create_track_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.