premiere-pro-mcp 1.9.0 → 1.9.2
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 +25 -0
- package/README.md +19 -6
- package/artifacts/MCPBridgeCEP.zxp +0 -0
- package/cep-plugin/CSXS/manifest.xml +4 -4
- package/cep-plugin/index.html +1 -1
- package/cep-plugin/updater.cjs +1 -1
- package/dist/http-security.d.ts +12 -0
- package/dist/http-security.js +28 -0
- package/dist/http-server.js +2 -0
- package/package.json +5 -2
- package/uxp-plugin/manifest.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,31 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [1.9.2] - 2026-08-04
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- Changed the CEP Premiere host declaration to a minimum-only supported version
|
|
14
|
+
so Adobe Developer Distribution does not reject the signed ZXP for claiming
|
|
15
|
+
an unsupported future maximum.
|
|
16
|
+
- Updated transitive URL, HTTP middleware, and IP-address parsing dependencies
|
|
17
|
+
to patched versions after newly disclosed security advisories.
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- Added a public privacy policy covering local media processing, optional MCP
|
|
22
|
+
operational telemetry, website analytics, retention, and user choices.
|
|
23
|
+
|
|
24
|
+
## [1.9.1] - 2026-08-02
|
|
25
|
+
|
|
26
|
+
### Security
|
|
27
|
+
|
|
28
|
+
- Added a production HTTP header baseline for the landing site, health route,
|
|
29
|
+
and remote MCP responses: CSP, HSTS, MIME sniffing protection, frame denial,
|
|
30
|
+
referrer and permissions policies, and cross-origin opener isolation.
|
|
31
|
+
- Restricted the browser connection policy to the application, configured
|
|
32
|
+
analytics endpoints, and the bounded PostHog host.
|
|
33
|
+
|
|
9
34
|
## [1.9.0] - 2026-08-02
|
|
10
35
|
|
|
11
36
|
### Added
|
package/README.md
CHANGED
|
@@ -29,7 +29,20 @@ An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that l
|
|
|
29
29
|
|
|
30
30
|
The AI handles the entire workflow through 280 core tools spanning the supported ExtendScript, QE DOM, local media analysis, safe edit-planning, and connection-verification surfaces. A compatible, authenticated UXP panel adds 19 documented, capability-gated workflows without replacing the production CEP bridge.
|
|
31
31
|
|
|
32
|
-
### What's new in 1.9.
|
|
32
|
+
### What's new in 1.9.2
|
|
33
|
+
|
|
34
|
+
- **Adobe Marketplace compatibility:** the signed CEP connector now declares a
|
|
35
|
+
minimum supported Premiere version without an artificial future maximum.
|
|
36
|
+
- **Clear privacy disclosure:** the public site now documents local processing,
|
|
37
|
+
optional operational telemetry, site analytics, retention, and user choices.
|
|
38
|
+
|
|
39
|
+
### Previous release: 1.9.1
|
|
40
|
+
|
|
41
|
+
- **Production browser hardening:** every HTTP response includes CSP, HSTS,
|
|
42
|
+
MIME sniffing protection, frame denial, bounded permissions, and explicit
|
|
43
|
+
referrer and cross-origin policies.
|
|
44
|
+
|
|
45
|
+
### Earlier release: 1.9.0
|
|
33
46
|
|
|
34
47
|
- **Assistant-first setup:** Claude Desktop users start with a validated MCPB
|
|
35
48
|
bundle, while npm and manual JSON configuration stay under Advanced setup.
|
|
@@ -73,9 +86,9 @@ The AI handles the entire workflow through 280 core tools spanning the supported
|
|
|
73
86
|
|
|
74
87
|
### Easiest supported path: Claude Desktop
|
|
75
88
|
|
|
76
|
-
1. Download the current [Claude Desktop bundle (`.mcpb`)](https://github.com/leancoderkavy/premiere-pro-mcp/releases/download/v1.9.
|
|
89
|
+
1. Download the current [Claude Desktop bundle (`.mcpb`)](https://github.com/leancoderkavy/premiere-pro-mcp/releases/download/v1.9.2/premiere-pro-mcp-1.9.2.mcpb).
|
|
77
90
|
2. In Claude Desktop, open **Settings > Extensions > Advanced settings > Install Extension**, select the downloaded bundle, and restart Claude Desktop.
|
|
78
|
-
3. Download the separate [signed Premiere connector (`.zxp`)](https://github.com/leancoderkavy/premiere-pro-mcp/releases/download/v1.9.
|
|
91
|
+
3. Download the separate [signed Premiere connector (`.zxp`)](https://github.com/leancoderkavy/premiere-pro-mcp/releases/download/v1.9.2/MCPBridgeCEP.zxp). Open it with your trusted ZXP installer. If your computer has no ZXP installer, use the npm connector installer in **Advanced setup** below.
|
|
79
92
|
4. Restart Premiere, open a project, then open **Window > Extensions > MCP Bridge**.
|
|
80
93
|
5. In Claude, enter: `Safely check my Premiere connection with verify_premiere_connection. Make no changes.`
|
|
81
94
|
|
|
@@ -299,11 +312,11 @@ From a clone of this repository:
|
|
|
299
312
|
```bash
|
|
300
313
|
codex plugin marketplace add .
|
|
301
314
|
codex plugin add premiere-pro@premiere-pro-mcp
|
|
302
|
-
npx -y premiere-pro-mcp@1.9.
|
|
315
|
+
npx -y premiere-pro-mcp@1.9.2 --install-cep
|
|
303
316
|
```
|
|
304
317
|
|
|
305
318
|
Restart Premiere Pro and start a new Codex session after installation. The plugin
|
|
306
|
-
launches `premiere-pro-mcp@1.9.
|
|
319
|
+
launches `premiere-pro-mcp@1.9.2` through `npx`; the separate CEP installation is
|
|
307
320
|
required because the MCP server communicates with the running Premiere host through
|
|
308
321
|
the local bridge.
|
|
309
322
|
|
|
@@ -323,7 +336,7 @@ For Claude Code, add this repository as a marketplace and install the plugin:
|
|
|
323
336
|
Then install the Premiere bridge and start a new Claude Code session:
|
|
324
337
|
|
|
325
338
|
```bash
|
|
326
|
-
npx -y premiere-pro-mcp@1.9.
|
|
339
|
+
npx -y premiere-pro-mcp@1.9.2 --install-cep
|
|
327
340
|
```
|
|
328
341
|
|
|
329
342
|
The Claude Code package lives in
|
|
Binary file
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<ExtensionManifest Version="7.0" ExtensionBundleId="com.mcp.premiere.bridge" ExtensionBundleVersion="1.9.
|
|
2
|
+
<ExtensionManifest Version="7.0" ExtensionBundleId="com.mcp.premiere.bridge" ExtensionBundleVersion="1.9.2" ExtensionBundleName="MCP Bridge">
|
|
3
3
|
<ExtensionList>
|
|
4
|
-
<Extension Id="com.mcp.premiere.bridge.panel" Version="1.9.
|
|
5
|
-
<Extension Id="com.mcp.premiere.bridge.headless" Version="1.9.
|
|
4
|
+
<Extension Id="com.mcp.premiere.bridge.panel" Version="1.9.2"/>
|
|
5
|
+
<Extension Id="com.mcp.premiere.bridge.headless" Version="1.9.2"/>
|
|
6
6
|
</ExtensionList>
|
|
7
7
|
<ExecutionEnvironment>
|
|
8
8
|
<HostList>
|
|
9
|
-
<Host Name="PPRO" Version="
|
|
9
|
+
<Host Name="PPRO" Version="14.0"/>
|
|
10
10
|
</HostList>
|
|
11
11
|
<LocaleList>
|
|
12
12
|
<Locale Code="All"/>
|
package/cep-plugin/index.html
CHANGED
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
<section class="update-section" aria-live="polite">
|
|
82
82
|
<div class="update-copy">
|
|
83
83
|
<span class="section-label">Connector updates</span>
|
|
84
|
-
<strong id="updateTitle">Version 1.9.
|
|
84
|
+
<strong id="updateTitle">Version 1.9.2</strong>
|
|
85
85
|
<span id="updateDetail">Checking for updates…</span>
|
|
86
86
|
</div>
|
|
87
87
|
<button id="btnUpdate" class="button button-update" onclick="handleUpdateClick()" type="button" disabled>
|
package/cep-plugin/updater.cjs
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type http from "node:http";
|
|
2
|
+
export declare const HTTP_SECURITY_HEADERS: Readonly<{
|
|
3
|
+
"Content-Security-Policy": string;
|
|
4
|
+
"Strict-Transport-Security": "max-age=31536000; includeSubDomains";
|
|
5
|
+
"X-Content-Type-Options": "nosniff";
|
|
6
|
+
"X-Frame-Options": "DENY";
|
|
7
|
+
"Referrer-Policy": "strict-origin-when-cross-origin";
|
|
8
|
+
"Permissions-Policy": "camera=(), microphone=(), geolocation=()";
|
|
9
|
+
"Cross-Origin-Opener-Policy": "same-origin";
|
|
10
|
+
}>;
|
|
11
|
+
export declare function applyHttpSecurityHeaders(res: http.ServerResponse): void;
|
|
12
|
+
//# sourceMappingURL=http-security.d.ts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export const HTTP_SECURITY_HEADERS = Object.freeze({
|
|
2
|
+
"Content-Security-Policy": [
|
|
3
|
+
"default-src 'self'",
|
|
4
|
+
"base-uri 'self'",
|
|
5
|
+
"frame-ancestors 'none'",
|
|
6
|
+
"object-src 'none'",
|
|
7
|
+
"form-action 'self'",
|
|
8
|
+
"img-src 'self' data: https:",
|
|
9
|
+
"media-src 'self'",
|
|
10
|
+
"font-src 'self'",
|
|
11
|
+
"style-src 'self' 'unsafe-inline'",
|
|
12
|
+
"script-src 'self' 'unsafe-inline' https://www.googletagmanager.com",
|
|
13
|
+
"connect-src 'self' https://www.google-analytics.com https://www.googletagmanager.com https://us.i.posthog.com https://*.posthog.com",
|
|
14
|
+
"upgrade-insecure-requests",
|
|
15
|
+
].join("; "),
|
|
16
|
+
"Strict-Transport-Security": "max-age=31536000; includeSubDomains",
|
|
17
|
+
"X-Content-Type-Options": "nosniff",
|
|
18
|
+
"X-Frame-Options": "DENY",
|
|
19
|
+
"Referrer-Policy": "strict-origin-when-cross-origin",
|
|
20
|
+
"Permissions-Policy": "camera=(), microphone=(), geolocation=()",
|
|
21
|
+
"Cross-Origin-Opener-Policy": "same-origin",
|
|
22
|
+
});
|
|
23
|
+
export function applyHttpSecurityHeaders(res) {
|
|
24
|
+
for (const [name, value] of Object.entries(HTTP_SECURITY_HEADERS)) {
|
|
25
|
+
res.setHeader(name, value);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=http-security.js.map
|
package/dist/http-server.js
CHANGED
|
@@ -29,6 +29,7 @@ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/
|
|
|
29
29
|
import { createServer } from "./server.js";
|
|
30
30
|
import { cleanupTempDir, getTempDir } from "./bridge/file-bridge.js";
|
|
31
31
|
import { getTelemetry } from "./telemetry.js";
|
|
32
|
+
import { applyHttpSecurityHeaders } from "./http-security.js";
|
|
32
33
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
33
34
|
const LANDING_DIR = path.resolve(__dirname, "../landing-dist");
|
|
34
35
|
const MIME = {
|
|
@@ -106,6 +107,7 @@ console.error(`[premiere-pro-mcp] Temp directory: ${tempDir}`);
|
|
|
106
107
|
cleanupTempDir(bridgeOptions);
|
|
107
108
|
// Each request gets its own transport+server instance (stateless per-request model)
|
|
108
109
|
const httpServer = http.createServer(async (req, res) => {
|
|
110
|
+
applyHttpSecurityHeaders(res);
|
|
109
111
|
// Health check
|
|
110
112
|
if (req.method === "GET" && req.url === "/health") {
|
|
111
113
|
res.writeHead(200, { "Content-Type": "application/json" });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "premiere-pro-mcp",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.2",
|
|
4
4
|
"description": "Adobe Premiere Pro MCP server with 280 core AI video editing tools and a capability-aware UXP bridge for supported Premiere workflows.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -97,6 +97,9 @@
|
|
|
97
97
|
},
|
|
98
98
|
"overrides": {
|
|
99
99
|
"@hono/node-server": "^2.0.5",
|
|
100
|
-
"body-parser": "^2.3.0"
|
|
100
|
+
"body-parser": "^2.3.0",
|
|
101
|
+
"fast-uri": "^3.1.5",
|
|
102
|
+
"hono": "^4.12.34",
|
|
103
|
+
"ip-address": "^10.4.0"
|
|
101
104
|
}
|
|
102
105
|
}
|
package/uxp-plugin/manifest.json
CHANGED