premiere-pro-mcp 1.3.0 → 1.3.1
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 +8 -0
- package/README.md +3 -1
- package/artifacts/MCPBridgeCEP.zxp +0 -0
- package/cep-plugin/CSXS/manifest.xml +3 -3
- package/dist/tools/utility.d.ts +2 -0
- package/dist/tools/utility.js +30 -2
- package/package.json +1 -1
- package/uxp-plugin/manifest.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [1.3.1] - 2026-07-25
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- Fixed `set_sequence_frame_rate` to convert frames per second into Premiere's required
|
|
14
|
+
ticks-per-frame `Time` value and verify the applied setting instead of assigning a numeric frame
|
|
15
|
+
period that could corrupt the sequence timebase. ([#37](https://github.com/leancoderkavy/premiere-pro-mcp/issues/37))
|
|
16
|
+
|
|
9
17
|
## [1.3.0] - 2026-07-25
|
|
10
18
|
|
|
11
19
|
### Added
|
package/README.md
CHANGED
|
@@ -27,10 +27,12 @@ An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that l
|
|
|
27
27
|
|
|
28
28
|
The AI handles the entire workflow through 269 tools spanning the supported ExtendScript, QE DOM, and safe edit-planning surfaces.
|
|
29
29
|
|
|
30
|
-
### What's new in 1.3.
|
|
30
|
+
### What's new in 1.3.1
|
|
31
31
|
|
|
32
32
|
- Windows npm releases now include a verified, signed CEP ZXP and install it automatically, covering
|
|
33
33
|
hosts that reject the raw development bundle even when `PlayerDebugMode` is enabled.
|
|
34
|
+
- `set_sequence_frame_rate` now converts frames per second to Premiere ticks per frame and verifies
|
|
35
|
+
the applied setting instead of assigning a numeric frame period.
|
|
34
36
|
- `premiere-pro-mcp --diagnose-cep` checks the installed manifest, debug-key types, and recent
|
|
35
37
|
Premiere signature failures.
|
|
36
38
|
- TypeScript 7, Vitest 4, Zod 4, MCP SDK 1.29, Next.js 16.2, and patched transitive dependencies
|
|
Binary file
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<ExtensionManifest Version="7.0" ExtensionBundleId="com.mcp.premiere.bridge" ExtensionBundleVersion="1.3.
|
|
2
|
+
<ExtensionManifest Version="7.0" ExtensionBundleId="com.mcp.premiere.bridge" ExtensionBundleVersion="1.3.1" ExtensionBundleName="MCP Bridge">
|
|
3
3
|
<ExtensionList>
|
|
4
|
-
<Extension Id="com.mcp.premiere.bridge.panel" Version="1.3.
|
|
5
|
-
<Extension Id="com.mcp.premiere.bridge.headless" Version="1.3.
|
|
4
|
+
<Extension Id="com.mcp.premiere.bridge.panel" Version="1.3.1"/>
|
|
5
|
+
<Extension Id="com.mcp.premiere.bridge.headless" Version="1.3.1"/>
|
|
6
6
|
</ExtensionList>
|
|
7
7
|
<ExecutionEnvironment>
|
|
8
8
|
<HostList>
|
package/dist/tools/utility.d.ts
CHANGED
package/dist/tools/utility.js
CHANGED
|
@@ -210,12 +210,20 @@ export function getUtilityTools(bridgeOptions) {
|
|
|
210
210
|
properties: {
|
|
211
211
|
frame_rate: {
|
|
212
212
|
type: "number",
|
|
213
|
+
minimum: 1,
|
|
214
|
+
maximum: 240,
|
|
213
215
|
description: "New frame rate (e.g., 23.976, 24, 25, 29.97, 30, 50, 59.94, 60)",
|
|
214
216
|
},
|
|
215
217
|
},
|
|
216
218
|
required: ["frame_rate"],
|
|
217
219
|
},
|
|
218
220
|
handler: async (args) => {
|
|
221
|
+
if (!Number.isFinite(args.frame_rate) || args.frame_rate < 1 || args.frame_rate > 240) {
|
|
222
|
+
return {
|
|
223
|
+
success: false,
|
|
224
|
+
error: "frame_rate must be a finite value between 1 and 240 fps",
|
|
225
|
+
};
|
|
226
|
+
}
|
|
219
227
|
const script = buildToolScript(`
|
|
220
228
|
var seq = app.project.activeSequence;
|
|
221
229
|
if (!seq) return __error("No active sequence");
|
|
@@ -223,10 +231,30 @@ export function getUtilityTools(bridgeOptions) {
|
|
|
223
231
|
var settings = seq.getSettings();
|
|
224
232
|
if (!settings) return __error("Could not get sequence settings");
|
|
225
233
|
|
|
226
|
-
|
|
234
|
+
var requestedFps = ${args.frame_rate};
|
|
235
|
+
var requestedTicks = Math.round(TICKS_PER_SECOND / requestedFps);
|
|
236
|
+
var frameDuration = new Time();
|
|
237
|
+
frameDuration.ticks = requestedTicks.toString();
|
|
238
|
+
settings.videoFrameRate = frameDuration;
|
|
227
239
|
seq.setSettings(settings);
|
|
228
240
|
|
|
229
|
-
|
|
241
|
+
var applied = seq.getSettings();
|
|
242
|
+
if (!applied || !applied.videoFrameRate) {
|
|
243
|
+
return __error("Premiere did not return the updated sequence frame rate");
|
|
244
|
+
}
|
|
245
|
+
var appliedTicks = parseFloat(applied.videoFrameRate.ticks);
|
|
246
|
+
if (!isFinite(appliedTicks) || Math.abs(appliedTicks - requestedTicks) > 1) {
|
|
247
|
+
return __error(
|
|
248
|
+
"Premiere did not apply the requested frame rate: expected " +
|
|
249
|
+
requestedTicks + " ticks/frame, got " + appliedTicks
|
|
250
|
+
);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
return __result({
|
|
254
|
+
frameRate: requestedFps,
|
|
255
|
+
ticksPerFrame: requestedTicks.toString(),
|
|
256
|
+
sequence: seq.name
|
|
257
|
+
});
|
|
230
258
|
`);
|
|
231
259
|
return sendCommand(script, bridgeOptions);
|
|
232
260
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "premiere-pro-mcp",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "Adobe Premiere Pro MCP server with 269 AI video editing tools for timeline automation, effects, media management, and export.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
package/uxp-plugin/manifest.json
CHANGED