Skip to main content
Glama

Add Title

add_title

Adds on-screen titles from plain text using stock Premiere Essential Graphics templates, with multi-line fields and verified text baking for reliable import.

Instructions

Add an on-screen title from plain text using a stock Essential Graphics template that ships with Premiere (default: Basic Title). Pass text for one line, or lines to fill the template's text fields in order (for example a lower third's name and role). Premiere-built templates (kind 'premiere') get the text baked into a verified copy before import, because Premiere exposes no writable text for them (textVerification 'template_verified'; confirm the render with export_frame). The baked copy path is returned as templateFile and saved under the application support premiere-pro-mcp/titles folder (macOS: ~/Library/Application Support/premiere-pro-mcp/titles). The cache keeps the newest 50 baked copies by modification time; export or copy templates elsewhere if a project needs older copies retained. After Effects-built templates (kind 'after_effects') are imported and their text fields written by position and read back from Premiere (textVerification 'verified', 'mismatch', 'missing_property', or 'committed_unverified'). The graphic is trimmed to duration_seconds and its length read back. Optional styling: font_family (PostScript name) and font_size write every text run of each AE text control when the template allows font editing (Premiere 26 fontEditValue/fontSizeEditValue runs, or legacy fontName/fontSize keys); fill_color requires one exposed Fill Color control; position moves the whole graphic through intrinsic normalized Motion Position. Each requested field has styleChecks readback. Premiere-authored font/fill styling and align are refused before import: no reliable writable/readable CEP 26.5.2 contract is established. Tracking is unsupported. Font readback confirms the stored name, not installation or rendered glyphs. Use list_stock_titles to see templates, their kind, and how many lines each takes.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "add_title"
  }
}

Input Schema

NameRequiredDescriptionDefault
textNoTitle text for the first text field. Specify exactly one of text or lines.
alignNoAlignment request. Currently refused before import because a reliable CEP text-alignment setter/readback contract is unavailable.
linesNoText for each of the template's text fields in order (see list_stock_titles). Specify exactly one of text or lines.
positionNoOptional normalized intrinsic Motion Position of the whole graphic, not its internal text-layer anchor.
templateNoStock template name such as "Basic Title", "Bold Title", or "Basic Lower Third", or category/name such as "Titles/Bold Title" (default: Basic Title).
font_sizeNoOptional text size in points for every requested AE text field and every text run in it. Requires a template that allows size editing (Premiere 26 fontSizeEditValue runs, or a legacy fontSize key).
fill_colorNoOptional opaque #RRGGBB fill through exactly one exposed MGT Fill Color control; does not guess private JSON color encodings.
font_familyNoOptional PostScript font name (for example Metropolis-Regular) for every requested AE text field and every text run in it. Requires a template that allows font editing (Premiere 26 fontEditValue runs, or a legacy fontName key). Stored-name readback does not prove the font is installed or rendered.
track_indexNoZero-based video track for the graphic (default: 1, the track above the main footage).
start_secondsNoTimeline start in seconds (default: 0).
idempotency_keyNoOptional client-chosen key (1-128 chars of A-Z a-z 0-9 . _ : -) for this intended edit. Pass a fresh key per edit and reuse it only when retrying that same edit, for example after a client-side timeout. A repeat with the same tool, key and arguments is not run again: while the first call is running it fails with IDEMPOTENCY_IN_PROGRESS (poll get_last_operations); after it finished it returns the original outcome marked replayed. A definite failure with nothing applied (receipt outcome not_applied) may be retried with the same key. Reusing a key with different arguments fails with IDEMPOTENCY_KEY_REUSED. Scoped to this MCP session (the stdio server process, or the HTTP server process when Streamable HTTP is stateless per request) and held in memory only (200 keys, 1 hour); it does not survive a restart or reconnect. Read-only invocations are never deduplicated.
duration_secondsNoHow long the title stays on screen in seconds (default: 5).
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. First observedv1.30.0

TDQS

A4.4/5.0
Behavior5/5

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

The description goes far beyond the annotations by explaining Premiere-built template baking, textVerification outcomes, cache retention, AE template import/readback behavior, duration trimming, styling constraints, refusals for align and Premiere-authored font/fill styling, unsupported tracking, and font readback limitations. It also explains idempotency key replay semantics and the returned templateFile path.

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 description is front-loaded with the core action and then proceeds logically through template kinds, cache behavior, AE handling, styling, refusals, and related tools. It is dense and long, but the detail is largely justified by the tool's complexity and the number of behavioral quirks it must disclose.

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

Completeness5/5

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

Given 14 parameters, nested objects, an output schema, and complex Premiere/AE template behavior, the description is complete enough for an agent to call the tool correctly. It covers verification statuses, refusals, cache limits, styling constraints, and related tools, and the output schema means return values need not be fully restated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all 14 parameters in detail, including text versus lines, align refusal, normalized position, template defaults, styling requirements, idempotency, and CEP identity guards. The description reinforces and contextualizes template-dependent behavior but adds limited parameter meaning beyond the schema.

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?

The description opens with a specific verb and resource: add an on-screen title from plain text using a stock Essential Graphics template, defaulting to Basic Title. It also scopes the tool by template kind and points to list_stock_titles for discovery and export_frame for render confirmation, making its role distinguishable from related siblings.

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?

It gives clear usage context: pass text for one line or lines to fill template fields in order, use list_stock_titles to inspect templates and line counts, and confirm the render with export_frame. It does not explicitly state when not to use this tool or name a direct alternative such as add_text_overlay, so it falls short of full when/when-not guidance.

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