premiere-pro-mcp 1.9.0 → 1.9.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 +10 -0
- package/README.md +12 -6
- package/artifacts/MCPBridgeCEP.zxp +0 -0
- package/cep-plugin/CSXS/manifest.xml +3 -3
- 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 +1 -1
- package/uxp-plugin/manifest.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,16 @@ 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.1] - 2026-08-02
|
|
10
|
+
|
|
11
|
+
### Security
|
|
12
|
+
|
|
13
|
+
- Added a production HTTP header baseline for the landing site, health route,
|
|
14
|
+
and remote MCP responses: CSP, HSTS, MIME sniffing protection, frame denial,
|
|
15
|
+
referrer and permissions policies, and cross-origin opener isolation.
|
|
16
|
+
- Restricted the browser connection policy to the application, configured
|
|
17
|
+
analytics endpoints, and the bounded PostHog host.
|
|
18
|
+
|
|
9
19
|
## [1.9.0] - 2026-08-02
|
|
10
20
|
|
|
11
21
|
### Added
|
package/README.md
CHANGED
|
@@ -29,7 +29,13 @@ 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.1
|
|
33
|
+
|
|
34
|
+
- **Production browser hardening:** every HTTP response now includes CSP, HSTS,
|
|
35
|
+
MIME sniffing protection, frame denial, bounded permissions, and explicit
|
|
36
|
+
referrer and cross-origin policies.
|
|
37
|
+
|
|
38
|
+
### Previous release: 1.9.0
|
|
33
39
|
|
|
34
40
|
- **Assistant-first setup:** Claude Desktop users start with a validated MCPB
|
|
35
41
|
bundle, while npm and manual JSON configuration stay under Advanced setup.
|
|
@@ -73,9 +79,9 @@ The AI handles the entire workflow through 280 core tools spanning the supported
|
|
|
73
79
|
|
|
74
80
|
### Easiest supported path: Claude Desktop
|
|
75
81
|
|
|
76
|
-
1. Download the current [Claude Desktop bundle (`.mcpb`)](https://github.com/leancoderkavy/premiere-pro-mcp/releases/download/v1.9.
|
|
82
|
+
1. Download the current [Claude Desktop bundle (`.mcpb`)](https://github.com/leancoderkavy/premiere-pro-mcp/releases/download/v1.9.1/premiere-pro-mcp-1.9.1.mcpb).
|
|
77
83
|
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.
|
|
84
|
+
3. Download the separate [signed Premiere connector (`.zxp`)](https://github.com/leancoderkavy/premiere-pro-mcp/releases/download/v1.9.1/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
85
|
4. Restart Premiere, open a project, then open **Window > Extensions > MCP Bridge**.
|
|
80
86
|
5. In Claude, enter: `Safely check my Premiere connection with verify_premiere_connection. Make no changes.`
|
|
81
87
|
|
|
@@ -299,11 +305,11 @@ From a clone of this repository:
|
|
|
299
305
|
```bash
|
|
300
306
|
codex plugin marketplace add .
|
|
301
307
|
codex plugin add premiere-pro@premiere-pro-mcp
|
|
302
|
-
npx -y premiere-pro-mcp@1.9.
|
|
308
|
+
npx -y premiere-pro-mcp@1.9.1 --install-cep
|
|
303
309
|
```
|
|
304
310
|
|
|
305
311
|
Restart Premiere Pro and start a new Codex session after installation. The plugin
|
|
306
|
-
launches `premiere-pro-mcp@1.9.
|
|
312
|
+
launches `premiere-pro-mcp@1.9.1` through `npx`; the separate CEP installation is
|
|
307
313
|
required because the MCP server communicates with the running Premiere host through
|
|
308
314
|
the local bridge.
|
|
309
315
|
|
|
@@ -323,7 +329,7 @@ For Claude Code, add this repository as a marketplace and install the plugin:
|
|
|
323
329
|
Then install the Premiere bridge and start a new Claude Code session:
|
|
324
330
|
|
|
325
331
|
```bash
|
|
326
|
-
npx -y premiere-pro-mcp@1.9.
|
|
332
|
+
npx -y premiere-pro-mcp@1.9.1 --install-cep
|
|
327
333
|
```
|
|
328
334
|
|
|
329
335
|
The Claude Code package lives in
|
|
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.9.
|
|
2
|
+
<ExtensionManifest Version="7.0" ExtensionBundleId="com.mcp.premiere.bridge" ExtensionBundleVersion="1.9.1" 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.1"/>
|
|
5
|
+
<Extension Id="com.mcp.premiere.bridge.headless" Version="1.9.1"/>
|
|
6
6
|
</ExtensionList>
|
|
7
7
|
<ExecutionEnvironment>
|
|
8
8
|
<HostList>
|
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.1</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.1",
|
|
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",
|
package/uxp-plugin/manifest.json
CHANGED