Typed DCC-MCP control for Adobe Premiere Pro through the shared adobepy
broker and Adobe's UXP runtime. The adapter exposes bounded project, media,
timeline, marker, save, frame-export, and AME queue operations. It deliberately
does not expose raw JavaScript, evalJs, shell commands, or arbitrary UXP calls.
Illustrative workflow generated with OpenAI ImageGen from the retained source in docs/images/sources; it is not a Premiere Pro screenshot or host-validation artifact.
python -m pip install dcc-mcp-premiere
adobepy install-bridge premiere --dest <plugin-dir> --token <non-default-token>For development or an Internal deployment with an approved prebuilt UXP bridge, the shared CLI can link that bridge into the Adobe debug-plugin directory:
dcc-mcp-cli install --dcc-type premiere `
--plugin-source F:\studio\artifacts\premiere-uxp-bridge `
--adobe-debug-root F:\studio\adobe-debug `
--executeDCC_MCP_PLUGIN_SOURCE and DCC_MCP_ADOBE_DEBUG_ROOT can be used in a studio
profile. The source directory must be the bridge root and contain its
manifest.json; the command does not assume that the adapter repository itself
contains UXP assets. It creates an idempotent directory link, does not copy the
bridge, and does not require UXP Developer Tool. Enable Premiere's UXP debug
mode once, then restart Premiere after the link is created. Premiere Pro 25.6
or later is required. Set
ADOBEPY_TOKEN to the bridge token, start the adapter, then verify the
connected host through DCC-MCP discovery:
dcc-mcp-cli wait-ready --dcc-type premiere --timeout-secs 60
dcc-mcp-cli load-skill premiere-project --dcc-type premiereUXP Developer Tool remains a fallback for investigating a host-specific load problem.
Each adapter instance uses an OS-assigned port and registers with DCC-MCP
discovery. Agents should connect through the stable local gateway at
http://127.0.0.1:9765/mcp. Set DCC_MCP_PREMIERE_PORT only for a deliberately
fixed direct endpoint.
Inspection:
get_statusinspect_projectlist_sequencesinspect_sequencelist_project_itemslist_selected_clipslist_encoder_presets
Project and timeline authoring:
create_binimport_mediacreate_sequenceinsert_project_itemoverwrite_project_itemcreate_marker
Persistence and export:
save_projectsave_project_asqueue_sequence_exportexport_frame
List and scan operations are paginated and bounded. Imports accept at most 100
files, with per-file and aggregate byte limits. Track indices, marker text,
frame dimensions, and output extensions are validated before invoking the host.
AME export reports queued=true; completion must be verified separately.
The adapter resolves paths before calling Premiere and confines them to:
DCC_MCP_PREMIERE_ALLOWED_INPUT_ROOTSfor imported mediaDCC_MCP_PREMIERE_ALLOWED_OUTPUT_ROOTSfor.prprojand exported mediaDCC_MCP_PREMIERE_ALLOWED_PRESET_ROOTSfor.sqpresetand.eprfiles
Each variable uses the platform path separator and defaults to the current
user's home directory. Existing outputs require overwrite=true; missing
parent directories require create_parents=true. Verified synchronous outputs
include byte count and SHA-256.
Automated tests use contract-compatible facade fakes; they are not represented as live Premiere proof. With a disposable project open and the UXP bridge connected, configure the three allowlists and run:
set DCC_MCP_PREMIERE_SMOKE_MEDIA=C:\path\to\media.mp4
set DCC_MCP_PREMIERE_SMOKE_ROOT=C:\path\to\writable-evidence
python tools/live_premiere_smoke.pyThe smoke script uses dcc-mcp-cli for readiness, skill loading, and every
typed call. It imports media, authors and inspects a sequence, adds a marker,
saves a verified project copy, exports a verified frame, and prints hashes.
Set DCC_MCP_PREMIERE_SMOKE_EPR to an allowlisted .epr file to include an AME
queue test.
python -m pip install -e ".[dev]"
python -m pytest -q
python -m ruff check src tests tools
python -m ruff format --check src tests tools
python tools/lint_skills.py
python -m build
python -m twine check dist/*See docs/architecture.md for ownership, readiness, and security boundaries.
