leancoderkavy / develop-premiere-pro-mcp
Develop, debug, test, review, document, and release the premiere-pro-mcp repository. Use when changing MCP tools, schemas, server registration, CEP or UXP bridges, generated ExtendScript, authority profiles, packaging, release metadata, or compatibility claims in this repo.
Develop Premiere Pro MCP
Make focused, evidence-backed changes to this TypeScript MCP server. Preserve unrelated
worktree changes and distinguish automated verification from behavior proven in a live
Premiere Pro host.
Orient to the repository
Read
AGENTS.mdfirst, thenREADME.md,SECURITY.md,CONTRIBUTING.md, andRESEARCH.mdonly as needed for the task. Treat current source and release metadata
as authoritative over dated snapshots.- Inspect
git statusbefore editing. Do not stage, rewrite, or remove unrelated work. Trace the relevant path before changing it:
src/server.tsassembles the MCP surface.src/tools/contains tool schemas and handlers.src/bridge/implements host communication.cep-plugin/is the broad production bridge.uxp-plugin/is capability-aware and supports only its declared Premiere APIs.
Use Node.js 24 for development when available; preserve the package's Node 20.19+
runtime floor. Install deterministically withnpm ciwhen dependencies are missing.
Implement safely
- Reuse nearby helpers and module patterns before adding abstractions or dependencies.
Keep tool schemas, descriptions, registrations, structured results, authority profiles,
tests, documentation, generated catalogs, and reported counts synchronized.Generate ExtendScript as ECMAScript 3: use
var, traditional functions and loops, and
avoid arrows,let,const, template literals, and other modern runtime syntax.Escape every user-controlled string with existing helpers before embedding it in a
generated script. Never interpolate raw paths, names, expressions, or prompts.- Keep raw scripting disabled unless the explicit
unsafe-scriptcapability is enabled. - Prefer documented Premiere APIs. Label QE DOM behavior experimental.
Verify mutation postconditions. Do not treat a host API return value alone as proof of
success, and do not silently fall back from failed UXP work to CEP or QE.Premiere metadata is several documented surfaces, not one blob: Project-panel
column JSON (getProjectColumnsMetadata), Premiere-private project metadata XML,
file/clip XMP, panel-layout/schema XML, plus adjacent color-label, interpretation,
marker, and transcript tools. Documentedppro.Metadata.*methods are already
mapped. Do not wrap undocumented QE metadata, dump unbounded packets, or treatpremiere://project/metadataas XMP. Field-level inspect/update is bounded
(uxp.XMPMeta/ AdobeXMPScript, 256 fields, sensitive EXIF omitted by default,
field readback). CEP still accepts a complete XML payload plusupdatedFields.
Adobe exposes no field-level schema enumerator. Keep C2PA as beta until a
stable host pin exists. When adding metadata behavior, updatesrc/workflows/agent-instructions.ts, the workflow catalog prompt, and bothedit-premiere-projectskill copies together.Preserve private-directory ownership checks, authentication, size limits, secret
handling, and telemetry privacy. Never collect prompts, arguments, results, tokens,
IP addresses, project paths, media names, or person profiles.
Test proportionally
Add or update tests for behavior, failure paths, validation, escaping, authorization,
registration, and metadata affected by the change.- Run the narrowest relevant tests while iterating.
Run
npm run checkbefore completion. Runnpm run test:coveragewhen changing
coverage-sensitive behavior.Inspect the final diff and status so generated output or unrelated files are not
included accidentally.Treat build, unit tests, mocks, and CI as package evidence only. Require a supported
Premiere host and the applicable running CEP or UXP bridge for live-host claims.
Handle releases and compatibility claims
Follow
docs/release-conventions.md: GitHub release titles equal their Git tags,
exactlyv<SemVer>(for example,v1.19.0orv1.20.0-rc.1). Put summaries in
release bodies; omitvin package and manifest versions. Preserve the README### Latest release:heading and existing changelog heading format.Use
scripts/normalize-release-names.mjsto preview title drift,--checkto
fail on drift, and--applyfor authorized repairs with GitHub readback. Historical
cleanup edits display titles only; never retag or republish existing versions.
A naming task does not authorize a new publication.Search all version-bearing package, lock, manifest, marketplace, MCP configuration,
updater, and installation files when changing a version.After an npm release is verified, update the README
### Latest release:heading, README
install commands, both plugin.mcp.jsonpins, and bothedit-premiere-projectskill pins
together;tests/release-metadata.test.tsandtests/codex-plugin.test.tsguard them.The website lives in
leancoderkavy/premiere-pro-mcp-siteand syncs published npm facts
automatically. Do not edit site facts from this repository.Verify the exact commit, checks, registry artifact, release assets, deployment health,
and host state separately when the task includes those outcomes.Never claim a commit, push, merge, publication, deployment, or live Premiere result
without direct evidence from that layer.Report what changed, exact checks run, failures or skipped checks, and whether live CEP
or UXP verification was performed.