Skip to main content
Glama
leancoderkavy

Premiere Pro MCP Server

Get Metadata

get_metadata
Read-onlyIdempotent

Retrieve parsed, bounded metadata for a Premiere Pro project item, opting in only for raw project/XMP packets, sensitive fields, or source media paths.

Instructions

Get metadata for a project item. Returns bounded parsed fields by default; GPS, serials, and personal contact/author fields are omitted. Raw packets require explicit include_project_metadata/include_xmp_metadata and include_sensitive true. Media paths require include_media_path true. Project metadata XML and file/clip XMP are separate packets; disable either when identity/path is enough. Prefer inspect_project_panel_metadata_uxp item_columns or manage_metadata_uxp inspect_fields for visible columns. This is not the premiere://project/metadata resource. GPS and serials are omitted from parse_fields unless include_sensitive is true.

Input Schema

NameRequiredDescriptionDefault
item_idYesNode ID or name of the project item
parse_fieldsNoParse project metadata and XMP into named fields (default true). Set false for identity-only or explicitly requested raw packets.
include_sensitiveNoOpt in to sensitive GPS, serial, author, and contact fields. Required for any raw packet; default false.
include_media_pathNoOpt in to the full source media path, which can identify the local user and folders; default false.
expected_cep_targetNoOptional reviewed CEP sequence/clip identity and exact tick ranges. Checked before every generated command; UXP refuses this CEP-only guard.
include_xmp_metadataNoOpt in to raw XMP XML (maximum 256 Ki characters). Requires include_sensitive true; default false. Set false to skip reading this packet entirely.
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.
include_project_metadataNoOpt in to raw Project Metadata XML (maximum 256 Ki characters). Requires include_sensitive true; default false. Set false to skip reading this packet entirely.

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.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"
      +}
  2. Changed8 schema fields changedv1.24.0
    • 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"
      +}
    • addedInput schema / properties / include_media_path
      Added value: +{
      +  "description": "Opt in to the full source media path, which can identify the local user and folders; default false.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / include_project_metadata / description
      Previous value: -"Include the potentially large Project Metadata XML payload (default: true unless parse_fields is true)."New value: +"Opt in to raw Project Metadata XML (maximum 256 Ki characters). Requires include_sensitive true; default false. Set false to skip reading this packet entirely."
    • changedInput schema / properties / include_sensitive / description
      Previous value: -"When parse_fields is true, include GPS, serials, and similar EXIF. Default false."New value: +"Opt in to sensitive GPS, serial, author, and contact fields. Required for any raw packet; default false."
    • changedInput schema / properties / include_xmp_metadata / description
      Previous value: -"Include the potentially large XMP XML payload (default: true unless parse_fields is true)."New value: +"Opt in to raw XMP XML (maximum 256 Ki characters). Requires include_sensitive true; default false. Set false to skip reading this packet entirely."
    • changedInput schema / properties / parse_fields / description
      Previous value: -"Parse project metadata and XMP into named fields (default false). When true, raw XML is omitted unless include_project_metadata or include_xmp_metadata is explicitly true."New value: +"Parse project metadata and XMP into named fields (default true). Set false for identity-only or explicitly requested raw packets."
    • addedOutput schema / properties / receipt
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Versioned common mutation receipt; success never implies rendered verification.",
      +  "type": "object"
      +}
  3. Changed2 schema fields changedv1.18.6
    • addedInput schema / additionalProperties
      Added value: +false
    • 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."
  4. Changed4 schema fields changedv1.16.3
    • changedInput schema / properties / include_project_metadata / description
      Previous value: -"Include the potentially large Project Metadata XML payload (default: true). Set false for a bounded identity/path response."New value: +"Include the potentially large Project Metadata XML payload (default: true unless parse_fields is true)."
    • addedInput schema / properties / include_sensitive
      Added value: +{
      +  "description": "When parse_fields is true, include GPS, serials, and similar EXIF. Default false.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / include_xmp_metadata / description
      Previous value: -"Include the potentially large XMP XML payload (default: true). Set false for a bounded identity/path response."New value: +"Include the potentially large XMP XML payload (default: true unless parse_fields is true)."
    • addedInput schema / properties / parse_fields
      Added value: +{
      +  "description": "Parse project metadata and XMP into named fields (default false). When true, raw XML is omitted unless include_project_metadata or include_xmp_metadata is explicitly true.",
      +  "type": "boolean"
      +}
  5. Changed4 schema fields changedv1.14.4
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / properties / include_project_metadata
      Added value: +{
      +  "description": "Include the potentially large Project Metadata XML payload (default: true). Set false for a bounded identity/path response.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / include_xmp_metadata
      Added value: +{
      +  "description": "Include the potentially large XMP XML payload (default: true). Set false for a bounded identity/path response.",
      +  "type": "boolean"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": false,
      +  "properties": {
      +    "data": {
      +      "description": "Tool-specific result data when ok is true."
      +    },
      +    "error": {
      +      "description": "Failure detail when ok is false.",
      +      "type": "string"
      +    },
      +    "ok": {
      +      "description": "Whether the tool completed successfully.",
      +      "type": "boolean"
      +    },
      +    "tool": {
      +      "description": "The registered MCP tool name.",
      +      "minLength": 1,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "ok",
      +    "tool"
      +  ],
      +  "type": "object"
      +}
  6. Changed1 schema field changedv1.4.0
    • removedInput schema / additionalProperties
      Removed value: -false
  7. First observedv1.1.1

TDQS

A4.8/5.0
Behavior5/5

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

Read-only annotations already cover safety, and the description adds substantive behavior: sensitive GPS/serials/contact/author fields are omitted by default, raw packets require explicit opt-ins, media paths require opt-in, and XML/XMP packets are separate. No annotation contradiction.

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 definition is front-loaded and appropriately sized for an 8-parameter, privacy-sensitive tool. It slightly repeats the GPS/serials omission at the beginning and end, which is avoidable redundancy.

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?

For a complex metadata read with nested schema and an output schema, the description covers defaults, privacy behavior, opt-in requirements, packet separation, and alternatives. Return values are left to the output schema, so no call-critical context 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 baseline is 3, but the description adds cross-parameter semantics beyond individual schema fields: include_sensitive is required for raw packets and include_media_path gates path exposure. It leaves guard parameters such as expected_cep_target and expected_project_path to the schema, so not a 5.

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 ('Get metadata for a project item') and immediately scopes default parsed fields versus raw packets, making it distinguishable from metadata/XMP siblings. It also explicitly says it is not the premiere://project/metadata resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use guidance: disable XML/XMP packets when identity/path is enough, use include_sensitive for raw packets, use include_media_path for media paths, and prefer inspect_project_panel_metadata_uxp or manage_metadata_uxp for visible columns.

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