← MCP servers · leancoderkavy

premiere-pro-mcp

BLOCKgrade D · trust 65/100

Local-first MCP server for supported Adobe Premiere Pro workflows. Connect Claude, Codex, or Cursor through a local CEP bridge; inspect, preview, and approve edits.

adobeadobe premiere proai video editingcepclaudeclaude desktopcodexcreative cloud

Overview

From the repository's own README, as read at the audited commit.

<div align="center"># MCP for Adobe Premiere Pro<!-- mcp-name: io.github.leancoderkavy/premiere-pro -->[![MCP Toplist](https://mcptoplist.com/badge/glama%2Fleancoderkavy%2Fpremiere-pro-mcp.svg)](https://mcptoplist.com/server/glama%2Fleancoderkavy%2Fpremiere-pro-mcp)**Give compatible AI assistants structured control over supported Adobe Premiere Pro workflows.**Free, MIT licensed, local-first, and published to npm as [`premiere-pro-mcp`](https://www.npmjs.com/package/premiere-pro-mcp) — the only package name that installs this project.[Website](https://premiere-pro-mcp.com/) · [Recorded demo](https://premiere-pro-mcp.com/demo/) · [Compare servers](https://premiere-pro-mcp.com/compare/) · [Setup guides](https://premiere-pro-mcp.com/blog/how-to-set-up-premiere-pro-mcp/) · [Search tools](https://premiere-pro-mcp.com/tools/) · [Troubleshooting](https://premiere-pro-mcp.com/docs/troubleshooting/) · [Release facts](https://premiere-pro-mcp.com/facts/)Development source: 370 core tools across 53 modules, 4 resources, and 17 guided workflows. A connected UXP host adds 95 capability-gated tools.The [completed AE render handoff](docs/after-effects-render-handoff.md) previews and confirms importing one finished render into an existing Premiere bin, with host and file rechecks and an import receipt.[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)[![Node.js](https://img.shields.io/badge/Node.js-20.19%2B-green.svg)](https://nodejs.org)[![MCP](https://img.shields.io/badge/MCP-2026--07--28-purple.svg)](https://modelcontextprotocol.io/specification/2026-07-28)[![npm](https://img.shields.io/npm/v/premiere-pro-mcp.svg)](https://www.npmjs.com/package/premiere-pro-mcp)[![Fly.io](https://img.shields.io/badge/Fly.io-deployed-7C3AED.svg)](https://premiere-pro-mcp.fly.dev)[![Premiere Pro](https://img.shields.io/badge/Premiere%20Pro-2020--2026-9999FF.svg)](https://www.adobe.com/products/premiere.html)[![npm downloads](https://img.shields.io/npm/dm/premiere-pro-mcp

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (npm)
claude mcp add premiere-pro-mcp -- npx -y [email protected]

Exposed tools (7) 5 read · 2 write · 0 destructive

ToolRiskDescription
assistant-editwriteTranscript-locked dialogue analysis, preview, derivative assembly, captions, reframing, and structural review.
captionsreadCaption-track creation, supported caption readback, sequence structure, and review-frame evidence.
deliveryreadExport preflight, rendering, interchange export, review-frame export, queue state, and post-export local verification.
essentialwriteConnection, project and sequence inspection, safe edit-plan preview, save, delivery validation, export, and local delivery verification.
get_notesreadRead transcript review notes
inspectionreadRead-only project, sequence, timeline, review, and render-queue inspection before an editorial or delivery handoff.
intakereadSession-scoped watched-folder monitoring, path-redacted proposals, deliberate import, and project inspection.

Details

Source
leancoderkavy/premiere-pro-mcp
npm
premiere-pro-mcp@1.15.2
Transports
stdio · streamable-http
Credentials it reads
ALLOW_UNAUTHENTICATEDGITHUB_TOKENMCP_AUTH_TOKENMCP_OAUTH_ALLOWED_SUBJECTSMCP_OAUTH_AUDIENCEMCP_OAUTH_ISSUERMCP_OAUTH_JWKS_URIMCP_OAUTH_REQUIRED_SCOPESNEXT_PUBLIC_POSTHOG_PROJECT_TOKENNODE_AUTH_TOKENNPM_TOKENPOSTHOG_API_KEY
License
MIT
Stars
259 · pushed 0d ago

Trust audit

Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (3 observation(s))
Network
declared (8 observation(s))
Shell
declared (3 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
src/context/project-context-store.ts:207
exec(sql: string): void;
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
MEDIUMInventory / provenance · inv.binary · CWE-1104
landing/public/downloads/premiere-workflow-starter-kit.zip
premiere-workflow-starter-kit.zip
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
landing/playwright.config.ts:14
baseURL: `http://127.0.0.1:${port}`,
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
landing/playwright.config.ts:26
url: `http://127.0.0.1:${port}/health`,
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/bridge/bridge-edge-coverage.test.ts:164
const TOKEN = "bridge-edge-token-at-least-16-characters";
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/uxp/transport.test.ts:9
const TOKEN = "test-token-at-least-16-characters";
LOWInventory / provenance · inv.hidden_file · CWE-1104
.bk.yaml
.bk.yaml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
cep-plugin/.debug
.debug
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
tests/bridge/file-bridge.test.ts:471
it("rejects scripts containing eval()", async () => {
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
tests/bridge/file-bridge.test.ts:477
it("rejects scripts containing new Function()", async () => {
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
tests/bridge/file-bridge.test.ts:479
sendCommand('new Function("code")', { tempDir: "/tmp/test-bridge" })
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
tests/bridge/file-bridge.test.ts:541
it("allows eval() in raw commands", async () => {
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
src/bridge/after-effects-script-builder.ts:33
export const AFTER_EFFECTS_HELPERS_VERSION = createHash("md5")
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
src/bridge/script-builder.ts:627
export const HELPERS_VERSION = createHash("md5").update(HELPERS).digest("hex").slice(0, 12);
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
landing/e2e/homepage.spec.ts:4
import manifest from "../../public-product-manifest.json"
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
landing/e2e/server.mjs:9
const repository = fileURLToPath(new URL("../../", import.meta.url));
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
landing/scripts/optimize-public-images.mjs:11
[`../../docs/design/marketing-artwork-v2/${name}-v2.png`, `marketing/${name}-v2.webp`, 1600],
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
landing/scripts/optimize-public-images.mjs:12
[`../../docs/design/marketing-artwork-v2/${name}-v2.png`, `marketing/${name}-v2-mobile.webp`, 720],
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
landing/scripts/record-live-demo.mjs:5
import { sendCommand } from '../../dist/bridge/file-bridge.js'
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
landing/e2e/homepage.spec.ts:8
const fixtureURL = `http://127.0.0.1:${process.env.LANDING_E2E_POSTHOG_PORT || 3161}`
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
landing/e2e/server.mjs:68
POSTHOG_HOST: `http://127.0.0.1:${fixturePort}`,
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
tests/homepage-experiment.test.ts:43
const url = `http://127.0.0.1:${address.port}`;
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
landing/package.json
@radix-ui/react-slot, class-variance-authority, clsx, lucide-react, next, radix-ui, tailwind-merge, @tailwindcss/postcss
Why it matters. 18 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/node, @modelcontextprotocol/server, jose, ws, zod, @modelcontextprotocol/client, @types/node, @types/ws
Why it matters. 13 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.authority_framing · CWE-94, CWE-1427
CHANGELOG.md:620
- Replaced UXP filesystem full access with operator-selected folder access and kept

Gates applied: no_behavioural_pass.

Audited 2026-09-16 · audit v0.4.0 · source sha 0ac5cfad9f54 · full audit: observations/trust-audit/mcp-server/leancoderkavy__premiere-pro-mcp.json · Report an issue or request a re-scan

Audit history

DateSourceVerdictGradeScoreChange
2026-09-160ac5cfad9f54BLOCKD65first audit

Alternatives

Other servers in the same categories, safer ones first.

Questions

What is the premiere-pro-mcp MCP server?

Local-first MCP server for supported Adobe Premiere Pro workflows. Connect Claude, Codex, or Cursor through a local CEP bridge; inspect, preview, and approve edits.

What tools does premiere-pro-mcp expose?

7 in total: 5 read-only, 2 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is premiere-pro-mcp safe to connect to an agent?

No — not without reading the findings first. The audit graded it D (65/100) and found 1 critical or high issue in the source. Each one is listed on this page with the file and line it is on.

What credentials does premiere-pro-mcp need?

It reads ALLOW_UNAUTHENTICATED, GITHUB_TOKEN, MCP_AUTH_TOKEN, MCP_OAUTH_ALLOWED_SUBJECTS, MCP_OAUTH_AUDIENCE, MCP_OAUTH_ISSUER, MCP_OAUTH_JWKS_URI, MCP_OAUTH_REQUIRED_SCOPES, NEXT_PUBLIC_POSTHOG_PROJECT_TOKEN, NODE_AUTH_TOKEN, NPM_TOKEN and POSTHOG_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does premiere-pro-mcp run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as premiere-pro-mcp at 1.15.2.

How current is this page?

The grade is for one exact copy of the source (0ac5cfad9f54), read on 2026-09-16. The repository is watched and re-audited when it changes.

Provenance: OBSERVED · read 2026-09-16 · job trust-audit-2026-09-16