Skip to main content
Glama

Set Metadata

set_metadata

Updates a Premiere Pro project item's metadata by writing a single field or complete XML, with readback verification and an option to target the source media XMP packet.

Instructions

Update project metadata on a project item. Supply complete metadata_xml plus updated_fields, or field_name and value to read-modify-write one XMP/project property through AdobeXMPScript with field readback. The project packet (default) stays in the project; packet 'xmp' is written by Premiere into the source media file on disk and requires the filesystem capability.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "item_id": "<item_id>"
    },
    "name": "set_metadata"
  }
}

Input Schema

NameRequiredDescriptionDefault
valueNoReplacement value for field_name. Maximum 4096 characters.
packetNoPacket for field_name writes. Default project (Premiere-private metadata).
item_idYesNode ID or name of the project item, or the sequence ID of a sequence
field_nameNoNamed field to update (for example Column.Intrinsic.LogNote). Used with value; cannot be combined with metadata_xml.
metadata_xmlNoComplete Project Metadata XML previously read from get_metadata, with the intended field values applied.
expected_valueNoOptional compare-and-set guard for field_name writes.
updated_fieldsNoExact Project Metadata field paths changed in metadata_xml (for example, Column.Intrinsic.Description).
field_namespaceNoXMP namespace URI or alias (premiere, dc, xmp, exif). Default premiere for project packet; required for xmp.
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.
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

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the description's job is the extra context, and it delivers the most important piece: packet 'xmp' writes into the source media file on disk and needs the filesystem capability, while the default project packet stays internal. That is genuine side-effect disclosure beyond the annotations. However, it says nothing about the idempotency/retry behavior that the schema's idempotency_key implies, nor about partial-failure outcomes, so the behavioral picture is incomplete.

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?

Three sentences, front-loaded with the action and then the two mode rules, with no filler. The middle sentence is long and stacks several ideas (XMP/project property, AdobeXMPScript, readback), but each clause carries information.

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 an 11-parameter mutation tool with a nested identity-guard object and an output schema, the description covers the core decision (which mode, which packet) and the main side effect. The guard parameters and retry semantics are left entirely to the schema, which is acceptable given full schema coverage but leaves the definition slightly thin for a tool with this much safety machinery.

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 baseline is 3 and the schema already documents every parameter including the guard objects and idempotency key. The description adds real value on the mutual exclusivity of the two modes and on the default packet, but it omits the compare-and-set guard (expected_value), field_namespace, and the expected_* identity guards entirely.

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?

The first sentence gives a specific verb and resource ('Update project metadata on a project item'), and the rest distinguishes two distinct write modes (whole-XML replace vs. single-field read-modify-write). It never names or routes against near siblings such as set_xmp_metadata or set_project_panel_metadata, even though the 'packet' discussion overlaps their territory, so sibling differentiation is missing.

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?

Clear internal usage rules: either supply metadata_xml plus updated_fields, or field_name and value; and it states which packet is the default and what the 'xmp' alternative does. It stops short of explicit when-not/exclusion guidance (e.g., when to prefer the dedicated XMP or project-panel tools instead), leaving the agent to infer routing from siblings.

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