@synthetic-ai/premiere-mcp 2.3.4 → 2.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +186 -180
- package/dist/license.js +6 -2
- package/package.json +68 -68
package/CHANGELOG.md
CHANGED
|
@@ -1,180 +1,186 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## [v2.3.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
`
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
- `
|
|
129
|
-
- `
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
- `
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
- `
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
- `
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
155
|
-
- `
|
|
156
|
-
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
- `
|
|
161
|
-
- `
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [v2.3.6] — License check no longer locks the MCP out for an hour
|
|
4
|
+
|
|
5
|
+
A failed license check (slow server answer, hiccup) is now remembered for 30 seconds instead of an hour, and the validation
|
|
6
|
+
timeout went from 5 s to 15 s. Before, one slow answer left every tool answering "License server unreachable" until the MCP
|
|
7
|
+
was restarted, even after the server was back.
|
|
8
|
+
|
|
9
|
+
## [v2.3.4] — The "Reload panel" button no longer reloads in place
|
|
10
|
+
|
|
11
|
+
v2.3.3's `stopBridge()`-before-`location.reload()` fix wasn't enough —
|
|
12
|
+
confirmed live, twice, on a clean install + full Premiere Pro restart, that
|
|
13
|
+
`location.reload()` doesn't reliably re-run `init()` in this CEP host. Root
|
|
14
|
+
cause found: each reload leaks the old page's `CEPHtmlEngine` subprocesses
|
|
15
|
+
instead of terminating them — 37 orphaned processes were found accumulated
|
|
16
|
+
from repeated testing today, versus ~6 for one cleanly opened panel. Rather
|
|
17
|
+
than keep guessing at ways to make an in-place reload work, the ⟳ button no
|
|
18
|
+
longer calls `location.reload()` at all — it stops the bridge and tells the
|
|
19
|
+
user to restart Premiere Pro, the one path confirmed to always leave the
|
|
20
|
+
panel correct.
|
|
21
|
+
|
|
22
|
+
## [v2.3.3] — Fixed the "Reload panel" button
|
|
23
|
+
|
|
24
|
+
It called a bare `location.reload()`, which could leave the old poll
|
|
25
|
+
interval running underneath the fresh page and race with `init()`
|
|
26
|
+
re-running — the panel could get stuck showing the raw HTML placeholder
|
|
27
|
+
badge, an empty temp dir field, and a spurious "Please set a temp
|
|
28
|
+
directory" error, all while the actually-installed files were fine. Now
|
|
29
|
+
stops the bridge (clearing the interval) before reloading, same fix class
|
|
30
|
+
as Photoshop MCP's `wss.close()`-before-reload.
|
|
31
|
+
|
|
32
|
+
## [v2.3.2] — Reverted the license.json USER_DATA change
|
|
33
|
+
|
|
34
|
+
v2.3.1 (panel side, unreleased separately from the npm tag) moved
|
|
35
|
+
`getLicensePath()` from `SystemPath.EXTENSION` to `SystemPath.USER_DATA` to
|
|
36
|
+
fix license saves failing with EPERM under a system-wide install. Live
|
|
37
|
+
testing found a deeper issue: the CEP panel's embedded Node
|
|
38
|
+
`fs.writeFileSync` can report success without the write actually landing on
|
|
39
|
+
disk on this Premiere Pro version — confirmed by writing the target file
|
|
40
|
+
directly and watching Premiere's own "successful" save leave it untouched.
|
|
41
|
+
Reverted back to `SystemPath.EXTENSION` (pre-fix behavior) until this CEP
|
|
42
|
+
Node.js reliability issue is understood; the original EPERM bug is still
|
|
43
|
+
open, to be investigated outside production.
|
|
44
|
+
|
|
45
|
+
## [v2.3.1] — macOS example paths in tool descriptions
|
|
46
|
+
|
|
47
|
+
`create_sequence`'s description and example calls only showed Windows
|
|
48
|
+
`C:\Program Files\...` preset paths, even though the actual runtime preset
|
|
49
|
+
lookup already searched macOS `/Applications/...` locations too — now the
|
|
50
|
+
description and both examples (Windows + macOS) match what the code
|
|
51
|
+
actually does, so the LLM doesn't suggest a Windows-only path to a Mac
|
|
52
|
+
user. No runtime/behavior change.
|
|
53
|
+
|
|
54
|
+
## [v2.2.0] — `--doctor` diagnostic command
|
|
55
|
+
|
|
56
|
+
`premiere-pro-mcp --doctor` runs a standalone setup check — no MCP client or
|
|
57
|
+
Premiere Pro needs to be running: Node version, Premiere Pro install
|
|
58
|
+
detected on disk, license key present + live-validated against
|
|
59
|
+
synthetic.com.ar, and the CEP bridge temp directory is writable. Prints a
|
|
60
|
+
pass/warn/fail summary and exits 1 if anything failed, so it's scriptable.
|
|
61
|
+
Fixed a real crash found while building this: forcing `process.exit()`
|
|
62
|
+
right after the live license check's `fetch()` call could crash with a
|
|
63
|
+
libuv assertion on Windows (`UV_HANDLE_CLOSING`, src/win/async.c) — now
|
|
64
|
+
sets `process.exitCode` and lets the event loop drain naturally instead.
|
|
65
|
+
|
|
66
|
+
## [v2.1.0] — CRITICAL: correct the version line, ship everything since 2.0.0
|
|
67
|
+
|
|
68
|
+
`@synthetic-ai/premiere-mcp@2.0.0` (published 2026-06-10, the npm rename
|
|
69
|
+
from unscoped `premiere-pro-mcp`) has been the only version ever actually
|
|
70
|
+
published to the registry — `npm view` confirms `dist-tags.latest` and the
|
|
71
|
+
full `versions` list both show only `2.0.0`, right up until this release.
|
|
72
|
+
Six commits after the rename (v1.1.2 through v1.1.8, including v1.1.7's
|
|
73
|
+
**server-side license enforcement**) bumped `package.json`'s version
|
|
74
|
+
*backward* into a stale pre-rename 1.1.x line instead of continuing from
|
|
75
|
+
2.0.0, and were committed/tested but never `npm publish`ed under that
|
|
76
|
+
wrong version number. Net effect: every customer running
|
|
77
|
+
`npx @synthetic-ai/premiere-mcp` has been getting the unmodified 2.0.0
|
|
78
|
+
tarball — with **zero license checking on any of the 437 tools** — for
|
|
79
|
+
over three months, discovered 2026-09-23 while shipping the macOS preset
|
|
80
|
+
fix below. This release corrects the version line (2.0.0 → 2.1.0, a real
|
|
81
|
+
semver increase) and ships every accumulated fix at once:
|
|
82
|
+
- License enforcement (was v1.1.7): every tool except `ping` /
|
|
83
|
+
`get_version_info` now validates `PREMIERE_PRO_MCP_LICENSE`.
|
|
84
|
+
- In-panel auto-update + local license storage (was v1.1.2).
|
|
85
|
+
- ExtendScript obfuscation breaking `evalFile()` (was v1.1.4).
|
|
86
|
+
- Bridge could wedge forever after a single failed command read (was v1.1.5).
|
|
87
|
+
- macOS default sequence-preset paths (was v1.1.8, see below).
|
|
88
|
+
|
|
89
|
+
## [v1.1.8] — macOS default preset paths (superseded by v2.1.0, never actually reached "latest" — see above)
|
|
90
|
+
|
|
91
|
+
`create_sequence`, `create_sequence_from_clip`, and `get_default_sequence_presets`
|
|
92
|
+
only ever probed Windows install paths for the default `.sqpreset` (and, for
|
|
93
|
+
`create_sequence`, only a single hardcoded PP 2026 path with no probing at
|
|
94
|
+
all). All three now check both Windows and macOS locations across PP
|
|
95
|
+
2026/2025/2024/CC 2023, matching the pattern `export_sequence` already used
|
|
96
|
+
for AME presets. When nothing is found, the tools return a clear error
|
|
97
|
+
asking for an explicit `preset_path` instead of silently using a
|
|
98
|
+
definitely-wrong fallback. Found via a site-wide macOS-compatibility audit
|
|
99
|
+
of every Synthetic product (2026-09-23) — this was the one confirmed gap in
|
|
100
|
+
an otherwise genuinely cross-platform architecture (no launch step to
|
|
101
|
+
break, unlike ae-mcp). Unverified on real macOS hardware — no Mac available
|
|
102
|
+
to test against yet.
|
|
103
|
+
|
|
104
|
+
## [v1.1.7] — License enforcement
|
|
105
|
+
|
|
106
|
+
The MCP server itself (all 437 tools) never actually validated
|
|
107
|
+
`PREMIERE_PRO_MCP_LICENSE` — the CEP panel had a license field for its own
|
|
108
|
+
auto-update, but the server side was wide open. Added the same
|
|
109
|
+
`checkLicense()` gate ae-mcp and photoshop-mcp already have: every tool
|
|
110
|
+
except `ping` / `get_version_info` now requires a valid license, validated
|
|
111
|
+
against `https://synthetic.com.ar/api/v1/license/validate` and cached for an
|
|
112
|
+
hour.
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
All notable changes to this MCP server. Every fix below was discovered via
|
|
117
|
+
**static audit + live runtime testing against Premiere Pro 2026.2.2 on
|
|
118
|
+
Spanish-localized Windows**.
|
|
119
|
+
|
|
120
|
+
The audit started at **31/100 sellability score** (22% green tools) and
|
|
121
|
+
finished at **~78/100** (~75% green) after the rounds below.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## [v1.2.0] — PP 2026 compatibility + locale resilience
|
|
126
|
+
|
|
127
|
+
### Round 6 — Live runtime validation
|
|
128
|
+
- `6f20892` capture_frame: honest error for PP 2026 host limitation
|
|
129
|
+
- `8152021` bridge: sanitize NaN and Infinity to null
|
|
130
|
+
- `a74ce33` Round 5: 8 more fixes from full smoke test (137 tools tested)
|
|
131
|
+
- `45fdaba` track-targeting: locale-resilient set_clip_position/scale/rotation
|
|
132
|
+
- `f9589cb` premiere.jsx: locale-resilient fadeIn/fadeOut/crossFadeClips
|
|
133
|
+
- `29e941d` graceful fallbacks for setSpeed signature + track volume
|
|
134
|
+
- `0533162` Live-test fixes: setSpeed signature, locale prop names, audio clip volume
|
|
135
|
+
- `084ef49` Live-test fixes: set_clip_opacity locale, color_correct Lumetri name
|
|
136
|
+
|
|
137
|
+
### Round 5 — Bridge JSON sanitization
|
|
138
|
+
- `f3d83d7` Fix bridge JSON: ExtendScript ignores replacer; sanitize tree pre-stringify
|
|
139
|
+
|
|
140
|
+
### Round 4 — premiere.jsx loading (single highest-impact fix)
|
|
141
|
+
- `366f325` Fix premiere.jsx SyntaxError that broke ALL JSX helpers
|
|
142
|
+
- **1-char fix, ~30+ tools unblocked**
|
|
143
|
+
- `premiere.jsx` (22k lines) had `package:` as bare property name at line
|
|
144
|
+
22006. ExtendScript is strict ES3 where `package` is reserved → entire
|
|
145
|
+
file fails to parse → every JSX-helper-backed tool returns
|
|
146
|
+
`ReferenceError: <fn> is not a function`. Quoting fixes everything.
|
|
147
|
+
- `b12a0d8` Round 4: bridge JSON-parse failure + locale-resilient transition lookup
|
|
148
|
+
|
|
149
|
+
### Round 3 — Concrete code bugs from re-audit
|
|
150
|
+
- `21bf821` Round 3 part 2: fix remaining 9 files
|
|
151
|
+
- `e4534d5` Round 3: fix 32 concrete code bugs from re-audit
|
|
152
|
+
- ticks/Time correctness (markers, source-monitor, scripting, clipboard, audio)
|
|
153
|
+
- property-vs-method (media.check_offline_media)
|
|
154
|
+
- QE-only methods routed correctly (timeline.move_clip/speed_change, transitions)
|
|
155
|
+
- missing `app.enableQE()` guards
|
|
156
|
+
- nested Lumetri prop lookup via `__findProp`
|
|
157
|
+
|
|
158
|
+
### Round 2 — Locale-resilient helpers
|
|
159
|
+
- `bdaebaa` Round 2: guard QE multicam enumeration and proxy detach
|
|
160
|
+
- `48d3648` Round 2 part 2: fix remaining 8 files
|
|
161
|
+
- `2b718b3` Round 2 part 1: locale-resilient helpers + fix 13 tool files
|
|
162
|
+
- Added `__findIntrinsic(clip, key)` with matchName-first lookup
|
|
163
|
+
- Added `__findComponent`, `__findProp`, `__readMaybe`, `__findTransition`
|
|
164
|
+
|
|
165
|
+
### Round 1 — Property-vs-method bugs
|
|
166
|
+
- `ffe6931` Fix 21 red tools: property-vs-method bugs, missing APIs, stub handlers
|
|
167
|
+
- `35ecbfa` Fix PP 2026 compatibility: sequence creation, tracks, audio, effects, export
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Validated tool inventory
|
|
172
|
+
|
|
173
|
+
### ✅ 66 tools confirmed working in runtime (PP 2026.2.2 es-ES)
|
|
174
|
+
Inspection, transform, audio/video FX, timeline editing, selection, markers,
|
|
175
|
+
sequence ops, project/bins, captions, source monitor, track management,
|
|
176
|
+
metadata, scripting, export. Full list in [README.md](README.md).
|
|
177
|
+
|
|
178
|
+
### ⚠️ Honest errors (PP 2026 host limitations, not bugs)
|
|
179
|
+
- `set_track_volume`, `speed_change`, `capture_frame`, Lumetri-when-not-applied
|
|
180
|
+
- All return clear errors with the recommended UI workaround
|
|
181
|
+
|
|
182
|
+
### Validated against
|
|
183
|
+
- Premiere Pro 2026.2.2 on Windows
|
|
184
|
+
- Spanish (es-ES) locale — names like "Opacidad", "Movimiento", "Escala",
|
|
185
|
+
"Posición", "Disolvencia cruzada" all handled
|
|
186
|
+
- 15-item test project with multi-track timeline, transitions, fades, Lumetri
|
package/dist/license.js
CHANGED
|
@@ -11,6 +11,10 @@ import { t } from "./i18n.js";
|
|
|
11
11
|
const LICENSE_KEY = process.env.PREMIERE_PRO_MCP_LICENSE;
|
|
12
12
|
const LICENSE_VALIDATION_URL = "https://synthetic.com.ar/api/v1/license/validate";
|
|
13
13
|
const LICENSE_CACHE_TTL_MS = 60 * 60 * 1000; // 1 hour
|
|
14
|
+
// A FAILED check (timeout, server error, invalid) is only remembered briefly: caching it for an hour made one slow
|
|
15
|
+
// answer lock the MCP out until restart (2-oct-2026: server took ~5 s, the 5 s timeout fired, and every tool kept
|
|
16
|
+
// answering "License server unreachable" for an hour even after the server was fast again).
|
|
17
|
+
const LICENSE_FAIL_TTL_MS = 30 * 1000;
|
|
14
18
|
// Device identity (for the 2-device license cap) — shared across all
|
|
15
19
|
// Synthetic MCP packages on purpose: one physical machine should count as
|
|
16
20
|
// ONE device against the cap, not one per product installed on it. See
|
|
@@ -47,7 +51,7 @@ let cache = null;
|
|
|
47
51
|
async function postJson(url, body) {
|
|
48
52
|
try {
|
|
49
53
|
const controller = new AbortController();
|
|
50
|
-
const timeout = setTimeout(() => controller.abort(),
|
|
54
|
+
const timeout = setTimeout(() => controller.abort(), 15000);
|
|
51
55
|
const res = await fetch(url, {
|
|
52
56
|
method: "POST",
|
|
53
57
|
headers: { "Content-Type": "application/json" },
|
|
@@ -62,7 +66,7 @@ async function postJson(url, body) {
|
|
|
62
66
|
}
|
|
63
67
|
}
|
|
64
68
|
export async function checkLicense() {
|
|
65
|
-
if (cache && Date.now() - cache.checkedAt < LICENSE_CACHE_TTL_MS) {
|
|
69
|
+
if (cache && Date.now() - cache.checkedAt < (cache.valid ? LICENSE_CACHE_TTL_MS : LICENSE_FAIL_TTL_MS)) {
|
|
66
70
|
return cache;
|
|
67
71
|
}
|
|
68
72
|
if (!LICENSE_KEY) {
|
package/package.json
CHANGED
|
@@ -1,68 +1,68 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@synthetic-ai/premiere-mcp",
|
|
3
|
-
"version": "2.3.
|
|
4
|
-
"description": "MCP server for controlling Adobe Premiere Pro via CEP/ExtendScript
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"type": "module",
|
|
7
|
-
"bin": {
|
|
8
|
-
"premiere-mcp": "dist/index.js"
|
|
9
|
-
},
|
|
10
|
-
"files": [
|
|
11
|
-
"dist/**/*.js",
|
|
12
|
-
"dist/**/*.d.ts",
|
|
13
|
-
"i18n",
|
|
14
|
-
"cep-plugin",
|
|
15
|
-
"scripts",
|
|
16
|
-
"README.md",
|
|
17
|
-
"LICENSE",
|
|
18
|
-
"CHANGELOG.md"
|
|
19
|
-
],
|
|
20
|
-
"scripts": {
|
|
21
|
-
"build": "tsc",
|
|
22
|
-
"dev": "tsc --watch",
|
|
23
|
-
"start": "node dist/index.js",
|
|
24
|
-
"start:http": "node dist/http-server.js",
|
|
25
|
-
"test": "vitest run",
|
|
26
|
-
"test:watch": "vitest",
|
|
27
|
-
"test:coverage": "vitest run --coverage",
|
|
28
|
-
"install-cep": "bash scripts/install-cep.sh",
|
|
29
|
-
"sync-i18n": "node scripts/sync-i18n.mjs"
|
|
30
|
-
},
|
|
31
|
-
"repository": {
|
|
32
|
-
"type": "git",
|
|
33
|
-
"url": "git+https://github.com/
|
|
34
|
-
},
|
|
35
|
-
"homepage": "https://synthetic.com.ar",
|
|
36
|
-
"bugs": {
|
|
37
|
-
"url": "https://synthetic.com.ar"
|
|
38
|
-
},
|
|
39
|
-
"author": "Synthetic",
|
|
40
|
-
"keywords": [
|
|
41
|
-
"mcp",
|
|
42
|
-
"model-context-protocol",
|
|
43
|
-
"adobe",
|
|
44
|
-
"premiere-pro",
|
|
45
|
-
"video-editing",
|
|
46
|
-
"ai",
|
|
47
|
-
"extendscript",
|
|
48
|
-
"cep",
|
|
49
|
-
"claude",
|
|
50
|
-
"windsurf",
|
|
51
|
-
"cursor",
|
|
52
|
-
"automation"
|
|
53
|
-
],
|
|
54
|
-
"license": "MIT",
|
|
55
|
-
"engines": {
|
|
56
|
-
"node": ">=18.0.0"
|
|
57
|
-
},
|
|
58
|
-
"dependencies": {
|
|
59
|
-
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
60
|
-
"zod": "^3.23.0"
|
|
61
|
-
},
|
|
62
|
-
"devDependencies": {
|
|
63
|
-
"@types/node": "^22.10.0",
|
|
64
|
-
"javascript-obfuscator": "^4.2.2",
|
|
65
|
-
"typescript": "^5.7.0",
|
|
66
|
-
"vitest": "^4.0.18"
|
|
67
|
-
}
|
|
68
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@synthetic-ai/premiere-mcp",
|
|
3
|
+
"version": "2.3.6",
|
|
4
|
+
"description": "MCP server for controlling Adobe Premiere Pro via CEP/ExtendScript — 437 tools for AI-driven video editing",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"premiere-mcp": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist/**/*.js",
|
|
12
|
+
"dist/**/*.d.ts",
|
|
13
|
+
"i18n",
|
|
14
|
+
"cep-plugin",
|
|
15
|
+
"scripts",
|
|
16
|
+
"README.md",
|
|
17
|
+
"LICENSE",
|
|
18
|
+
"CHANGELOG.md"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "tsc",
|
|
22
|
+
"dev": "tsc --watch",
|
|
23
|
+
"start": "node dist/index.js",
|
|
24
|
+
"start:http": "node dist/http-server.js",
|
|
25
|
+
"test": "vitest run",
|
|
26
|
+
"test:watch": "vitest",
|
|
27
|
+
"test:coverage": "vitest run --coverage",
|
|
28
|
+
"install-cep": "bash scripts/install-cep.sh",
|
|
29
|
+
"sync-i18n": "node scripts/sync-i18n.mjs"
|
|
30
|
+
},
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "git+https://github.com/SyntheticArtOk/premiere-pro-mcp.git"
|
|
34
|
+
},
|
|
35
|
+
"homepage": "https://synthetic.com.ar",
|
|
36
|
+
"bugs": {
|
|
37
|
+
"url": "https://synthetic.com.ar"
|
|
38
|
+
},
|
|
39
|
+
"author": "Synthetic",
|
|
40
|
+
"keywords": [
|
|
41
|
+
"mcp",
|
|
42
|
+
"model-context-protocol",
|
|
43
|
+
"adobe",
|
|
44
|
+
"premiere-pro",
|
|
45
|
+
"video-editing",
|
|
46
|
+
"ai",
|
|
47
|
+
"extendscript",
|
|
48
|
+
"cep",
|
|
49
|
+
"claude",
|
|
50
|
+
"windsurf",
|
|
51
|
+
"cursor",
|
|
52
|
+
"automation"
|
|
53
|
+
],
|
|
54
|
+
"license": "MIT",
|
|
55
|
+
"engines": {
|
|
56
|
+
"node": ">=18.0.0"
|
|
57
|
+
},
|
|
58
|
+
"dependencies": {
|
|
59
|
+
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
60
|
+
"zod": "^3.23.0"
|
|
61
|
+
},
|
|
62
|
+
"devDependencies": {
|
|
63
|
+
"@types/node": "^22.10.0",
|
|
64
|
+
"javascript-obfuscator": "^4.2.2",
|
|
65
|
+
"typescript": "^5.7.0",
|
|
66
|
+
"vitest": "^4.0.18"
|
|
67
|
+
}
|
|
68
|
+
}
|