Skip to main content
Glama
Premiere Pro MCP Server

Premiere Pro MCP Server

Get Caption Style Guidance

get_caption_style_guidance
Read-onlyIdempotent

Convert caption style presets or custom looks and keyword highlights into step-by-step Premiere 2024+ Track Style, upgrade, and render-verification instructions without altering captions.

Instructions

Read-only caption style guidance: a preset and/or custom_style turned into Premiere 2024+ Properties-panel Track Style steps, plus keyword_highlight per-word steps, manual Upgrade Caption to Graphic steps, and render-verification routes. NEVER modifies captions: Premiere has no caption style, per-word, or upgrade API.

Input Schema

NameRequiredDescriptionDefault
presetNoStyle preset to describe (default clean when custom_style is omitted).
custom_styleNoOptional caption look to translate into concrete Premiere UI steps. Every field is optional; at least one is required. Values are documentation only and are never applied.
keyword_highlightNoOptional words to colour inside captions. Returns manual Program Monitor steps; nothing is applied, because Premiere has no per-word caption styling API.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
expected_project_pathNoOptional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.

Output Schema

NameRequiredDescriptionDefault
okYesWhether the tool completed successfully.
dataNoTool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it.
toolYesThe registered MCP tool name.
errorNoFailure detail when ok is false.
receiptNoVersioned common mutation receipt; success never implies rendered verification.
idempotencyNoPresent when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.28.0
    • addedInput schema / properties / keyword_highlight
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Optional words to colour inside captions. Returns manual Program Monitor steps; nothing is applied, because Premiere has no per-word caption styling API.",
      +  "properties": {
      +    "color": {
      +      "description": "Highlight fill colour as #RRGGBB.",
      +      "pattern": "^#[0-9A-Fa-f]{6}$",
      +      "type": "string"
      +    },
      +    "words": {
      +      "description": "Keywords to highlight, at most 24.",
      +      "items": {
      +        "description": "Keyword exactly as it appears in the captions (case-insensitive duplicates are dropped).",
      +        "maxLength": 64,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "maxItems": 24,
      +      "minItems": 1,
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "words",
      +    "color"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changedv1.25.0
    • addedOutput schema / properties / idempotency
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Present when idempotency_key deduplicated this call: replayed is true when the original outcome was returned instead of running again.",
      +  "type": "object"
      +}
  3. Changed5 schema fields changedv1.24.0
    • addedInput schema / properties / custom_style
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Optional caption look to translate into concrete Premiere UI steps. Every field is optional; at least one is required. Values are documentation only and are never applied.",
      +  "properties": {
      +    "fill_color": {
      +      "description": "Text fill colour as #RRGGBB.",
      +      "pattern": "^#[0-9A-Fa-f]{6}$",
      +      "type": "string"
      +    },
      +    "font_family": {
      +      "description": "Font family name as shown in Premiere, e.g. Source Han Sans TW.",
      +      "maxLength": 128,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "font_size_px": {
      +      "description": "Font size in Premiere's caption units (pixels).",
      +      "maximum": 400,
      +      "minimum": 8,
      +      "type": "integer"
      +    },
      +    "font_weight": {
      +      "description": "Font weight or style name, e.g. Heavy or Bold.",
      +      "maxLength": 64,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "offset_x_px": {
      +      "description": "Horizontal position offset from the zone in pixels.",
      +      "maximum": 2000,
      +      "minimum": -2000,
      +      "type": "integer"
      +    },
      +    "offset_y_px": {
      +      "description": "Vertical position offset from the zone in pixels; negative moves up.",
      +      "maximum": 2000,
      +      "minimum": -2000,
      +      "type": "integer"
      +    },
      +    "shadow": {
      +      "additionalProperties": false,
      +      "description": "Drop shadow; omitted fields use the listed defaults.",
      +      "properties": {
      +        "angle": {
      +          "description": "Shadow angle in degrees (default 135).",
      +          "maximum": 360,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "blur": {
      +          "description": "Shadow blur (default 40).",
      +          "maximum": 100,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "color": {
      +          "description": "Shadow colour as #RRGGBB (default #000000).",
      +          "pattern": "^#[0-9A-Fa-f]{6}$",
      +          "type": "string"
      +        },
      +        "distance": {
      +          "description": "Shadow distance (default 7).",
      +          "maximum": 200,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "opacity": {
      +          "description": "Shadow opacity percent (default 75).",
      +          "maximum": 100,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "size": {
      +          "description": "Shadow size (default 0).",
      +          "maximum": 100,
      +          "minimum": 0,
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "strokes": {
      +      "description": "Up to three strokes in Premiere's Stroke list order; each stroke after the first is added with + next to Stroke. Layered outer strokes need increasing widths.",
      +      "items": {
      +        "additionalProperties": false,
      +        "description": "One stroke.",
      +        "properties": {
      +          "color": {
      +            "description": "Stroke colour as #RRGGBB.",
      +            "pattern": "^#[0-9A-Fa-f]{6}$",
      +            "type": "string"
      +          },
      +          "placement": {
      +            "description": "Stroke placement (default outer).",
      +            "enum": [
      +              "outer",
      +              "inner",
      +              "center"
      +            ],
      +            "type": "string"
      +          },
      +          "width_px": {
      +            "description": "Stroke width.",
      +            "maximum": 100,
      +            "minimum": 0,
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "color",
      +          "width_px"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 3,
      +      "type": "array"
      +    },
      +    "track_style_name": {
      +      "description": "Name for the saved Track Style (default Caption Track Style).",
      +      "maxLength": 80,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "zone": {
      +      "description": "Caption region in Premiere's Align and Transform zone grid.",
      +      "enum": [
      +        "top_left",
      +        "top_center",
      +        "top_right",
      +        "middle_left",
      +        "middle_center",
      +        "middle_right",
      +        "bottom_left",
      +        "bottom_center",
      +        "bottom_right"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / expected_cep_target
      Added value: +{
      +  "additionalProperties": false,
      +  "anyOf": [
      +    {
      +      "required": [
      +        "sequence_id"
      +      ]
      +    },
      +    {
      +      "required": [
      +        "source_item"
      +      ]
      +    }
      +  ],
      +  "description": "Optional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.",
      +  "properties": {
      +    "backend": {
      +      "const": "cep",
      +      "description": "Backend namespace for these IDs.",
      +      "type": "string"
      +    },
      +    "clip": {
      +      "additionalProperties": false,
      +      "description": "Optional exact reviewed timeline clip.",
      +      "properties": {
      +        "effect": {
      +          "additionalProperties": false,
      +          "description": "Reviewed effect and parameter identity checked before mutation.",
      +          "properties": {
      +            "display_name": {
      +              "description": "Optional exact host display name.",
      +              "maxLength": 512,
      +              "minLength": 1,
      +              "type": "string"
      +            },
      +            "match_name": {
      +              "description": "Effect match name from host inspection.",
      +              "maxLength": 512,
      +              "minLength": 1,
      +              "type": "string"
      +            },
      +            "parameter_index": {
      +              "description": "Inspected zero-based parameter index.",
      +              "maximum": 255,
      +              "minimum": 0,
      +              "type": "integer"
      +            },
      +            "parameter_name": {
      +              "description": "Exact inspected parameter name.",
      +              "maxLength": 512,
      +              "minLength": 1,
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "match_name",
      +            "parameter_index",
      +            "parameter_name"
      +          ],
      +          "type": "object"
      +        },
      +        "end_ticks": {
      +          "description": "Exact expected exclusive timeline end ticks.",
      +          "pattern": "^-?\\d{1,30}$",
      +          "type": "string"
      +        },
      +        "in_ticks": {
      +          "description": "Exact expected source In ticks.",
      +          "pattern": "^-?\\d{1,30}$",
      +          "type": "string"
      +        },
      +        "node_id": {
      +          "description": "Stable CEP node ID.",
      +          "maxLength": 512,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "out_ticks": {
      +          "description": "Exact expected exclusive source Out ticks.",
      +          "pattern": "^-?\\d{1,30}$",
      +          "type": "string"
      +        },
      +        "project_item_id": {
      +          "description": "Expected source project-item node ID.",
      +          "maxLength": 512,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "start_ticks": {
      +          "description": "Exact expected timeline start ticks.",
      +          "pattern": "^-?\\d{1,30}$",
      +          "type": "string"
      +        },
      +        "track_index": {
      +          "description": "Expected zero-based track index; identity still checked.",
      +          "maximum": 255,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "track_type": {
      +          "description": "Expected media track group.",
      +          "enum": [
      +            "video",
      +            "audio"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "node_id",
      +        "track_type",
      +        "track_index"
      +      ],
      +      "type": "object"
      +    },
      +    "project_document_id": {
      +      "description": "Exact Premiere project document ID observed during review.",
      +      "maxLength": 512,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "sequence_id": {
      +      "description": "Stable expected active sequence ID.",
      +      "maxLength": 512,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "source_item": {
      +      "additionalProperties": false,
      +      "description": "Reviewed source identity for a source-only operation.",
      +      "properties": {
      +        "media_path": {
      +          "description": "Optional exact source-media path.",
      +          "maxLength": 4096,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "node_id": {
      +          "description": "Exact project-item node ID.",
      +          "maxLength": 512,
      +          "minLength": 1,
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "node_id"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "backend"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / expected_project_path
      Added value: +{
      +  "description": "Optional absolute saved-project path. Every generated CEP command refuses before its body when the active project differs or is unsaved. UXP commands refuse this CEP-only guard; local-only tools do not inspect Premiere. Omit to keep existing behavior.",
      +  "maxLength": 4096,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / properties / preset / description
      Previous value: -"Style preset to describe (default clean)."New value: +"Style preset to describe (default clean when custom_style is omitted)."
    • addedOutput schema / properties / receipt
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
      +  "type": "object"
      +}
  4. Changed1 schema field changedv1.18.6
    • changedOutput schema / properties / data / description
      Previous value: -"Tool-specific result data when ok is true."New value: +"Tool-specific result data when ok is true; on failure, diagnostic detail when the tool provides it."
  5. Addedv1.16.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, but the description adds the non-obvious reason: 'NEVER modifies captions: Premiere has no caption style, per-word, or upgrade API.' It also clarifies that the custom_style values are documentation only and never applied, which is exactly the behavioral fact an agent would otherwise get wrong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both front-loaded with the highest-value fact first (read-only guidance, what steps it emits) and the critical constraint second. No filler, no restating of the title.

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?

With rich annotations, full schema coverage and a declared output schema, the description covers what matters: what it emits and why nothing is mutated. It leaves unstated any version caveats beyond 'Premiere 2024+' and any limits on how many steps/routes are returned, but nothing essential to calling it correctly is missing.

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 100%, so the baseline is 3; the description earns more by explaining how the top-level parameters combine — 'a preset and/or custom_style' as one guidance mode, keyword_highlight as a second, and the remaining rendered verification routes. It does not explain expected_cep_target / expected_project_path, which the schema carries.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read-only caption style guidance'), and enumerates exactly what it produces: Premiere 2024+ Properties-panel Track Style steps, per-word keyword_highlight steps, Upgrade Caption to Graphic steps, and render-verification routes. That output inventory distinguishes it cleanly from siblings like build_caption_artifact, create_caption_track, or check_caption_safe_zone.

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?

The description makes the usage context clear: this is the tool to call when you need manual UI steps rather than an applied edit, and the 'render-verification routes' output hints at the verification follow-ons. It never names a concrete alternative tool (e.g. build_caption_artifact for producing caption files), so routing is implied rather than explicit.

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