Premiere Pro MCP for Antigravity
# Premiere Pro MCP for Antigravity
[](LICENSE)
[](https://www.adobe.com/products/premiere.html)
[](https://nodejs.org/)
[](https://modelcontextprotocol.io/)
A production-ready **Model Context Protocol (MCP)** integration and **Adobe CEP 9+ Bridge** that connects **Google Antigravity** (and compatible MCP clients) directly to **Adobe Premiere Pro (CC 2019 through CC 2025+)** on Windows 10/11.
It empowers AI assistants to inspect active video projects, import and organize media, assemble and edit timeline clips, split and trim tracks with sub-frame precision, animate motion/opacity keyframes, and trigger exports directly from natural language.
---
## š Table of Contents
- [What is it & Why Use It?](#-what-is-it--why-use-it)
- [How It Works (Architecture)](#-how-it-works-architecture)
- [Sub-Frame Precision & Tick System](#-sub-frame-precision--tick-system)
- [Safety & Project Backup Protections](#-safety--project-backup-protections)
- [Supported Tools (41 Operations)](#-supported-tools-41-operations)
- [Prerequisites](#-prerequisites)
- [Step-by-Step Setup Guide](#-step-by-step-setup-guide)
- [Step 1: Clone the Repository](#step-1-clone-the-repository)
- [Step 2: Install Node Dependencies](#step-2-install-node-dependencies)
- [Step 3: Enable CEP Developer Mode (PlayerDebugMode)](#step-3-enable-cep-developer-mode-playerdebugmode)
- [Step 4: Install the CEP Extension](#step-4-install-the-cep-extension)
- [Step 5: Launch the Extension in Premiere Pro](#step-5-launch-the-extension-in-premiere-pro)
- [Step 6: Configure Google Antigravity](#step-6-configure-google-antigravity)
- [Verification & Diagnostics](#-verification--diagnostics)
- [Prompt Examples for Antigravity](#-prompt-examples-for-antigravity)
- [Project Structure](#-project-structure)
- [Troubleshooting & FAQ](#-troubleshooting--faq)
- [License](#-license)
---
## š” What is it & Why Use It?
Video editing involves thousands of repetitive actions: organizing bins, placing b-roll on the timeline, cutting silences or bad takes, adjusting motion scale and position, and queuing renders.
**Premiere Pro MCP for Antigravity** enables autonomous and pair-editing workflows:
- Antigravity reads timeline markers, sequence frame rates, track layouts, and clip in/out points.
- You can ask Antigravity to organize media bins, assemble rough cuts, sync b-roll over an audio narration track, or razor cut clips at specific timecodes.
- Built-in automatic backup guarantees that your `.prproj` file is backed up before any destructive editing command is executed.
---
## šļø How It Works (Architecture)
Adobe Premiere Pro executes ExtendScript within an ES3 engine that cannot directly import modern Node.js or MCP stdio packages. This project uses a secure, decoupled local bridge architecture:
```text
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Google Antigravity / MCP Client ā
āāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāā
ā (stdio JSON-RPC 2.0)
ā¼
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Node.js MCP Server Process ā
ā (mcp-server/index.js) ā
ā - Input validation & tick conversion ā
ā - Automatic .prproj backup creation ā
ā - Loopback token authentication ā
āāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāā
ā (Loopback HTTP: 127.0.0.1:17890, Token Auth)
ā¼
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Premiere CEP 9+ Panel ā
ā (com.antigravity.premiere.mcp) ā
ā - Long-polling / dispatch queue ā
āāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāā
ā (window.__adobe_cep__.evalScript)
ā¼
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā ExtendScript Host + QEAdapter ā
ā (host/premiere.jsx) ā
āāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāā
ā (app.project / Sequence / TrackItem DOM APIs)
ā¼
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Adobe Premiere Pro Timeline ā
ā Video & Audio Tracks, FX & Exporter ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
```
1. **Node.js MCP Server**: Started by Antigravity via stdio. Listens on loopback HTTP port `127.0.0.1:17890`.
2. **Local Token Security**: A 256-bit secure token is created dynamically in `.bridge-state.json`. Every request is authenticated using constant-time comparison.
3. **CEP 9 Extension**: Loaded inside Premiere Pro. It continuously connects to the bridge and executes verified ExtendScript calls inside the project DOM.
4. **QEAdapter**: Isolated QE (Quality Engineering) API wrapper that provides razor splitting and sequence preset creation that are not otherwise exposed in the standard Premiere DOM.
---
## ā±ļø Sub-Frame Precision & Tick System
Premiere Pro calculates time internally in **ticks** (where $1\text{ second} = 254{,}016{,}000{,}000\text{ ticks}$).
- The MCP server includes built-in conversions between seconds, SMPTE timecodes (`HH:MM:SS:FF`), and exact integer ticks.
- This prevents floating-point rounding errors and ensures frame-accurate cuts, trims, and keyframes at any frame rate (23.976, 24, 25, 29.97, 30, 59.94, 60 fps).
---
## š”ļø Safety & Project Backup Protections
Editing projects can be large and critical. The MCP server integrates built-in safety mechanisms:
- **Automatic Backups**: Commands like `save_project`, `remove_clip`, and destructive timeline edits automatically generate a timestamped `.prproj` backup in a dedicated `_backups` folder before applying modifications.
- **Loopback Enforcement**: Only allows connections from `127.0.0.1`. Network access from other machines or public interfaces is strictly rejected.
- **Whitelist Enforcement**: Only the 41 documented, validated actions can be triggered. No arbitrary command line or eval injection is permitted.
---
## ā” Supported Tools (41 Operations)
| Category | Available Tools |
|---|---|
| **System & Health** | `premiere_ping`, `premiere_health_check` |
| **Project & Sequences** | `get_project_info`, `save_project`, `get_active_sequence`, `get_sequence_settings`, `list_sequences`, `create_sequence_from_supported_preset` |
| **Media & Project Items** | `list_project_items`, `import_media`, `search_project_media`, `get_selected_project_items` |
| **Timeline Inspection** | `get_selected_timeline_clips`, `get_track_information`, `get_clip_information` |
| **Timeline Editing** | `place_media_on_timeline`, `move_clip`, `trim_clip`, `split_clip_at_time`, `remove_clip`, `set_clip_enabled` |
| **Effects & Motion** | `list_clip_components`, `list_component_properties`, `read_clip_properties`, `set_supported_clip_property`, `set_motion_position`, `set_motion_scale`, `set_motion_rotation`, `set_opacity`, `set_supported_blend_mode` |
| **Keyframes** | `list_supported_keyframe_properties`, `get_property_keyframes`, `add_property_keyframe`, `update_property_keyframe`, `remove_property_keyframe`, `set_keyframe_interpolation_when_supported` |
| **Export & Encoder** | `get_export_capabilities`, `validate_export_settings`, `export_active_sequence`, `get_export_status`, `cancel_export_when_supported` |
---
## š Prerequisites
- **Operating System**: Windows 10 or 11 (64-bit)
- **Adobe Premiere Pro**: CC 2019 (v13.x), CC 2020, CC 2021, CC 2022, CC 2023, CC 2024, or CC 2025+
- **Node.js**: Node.js 18.x or later installed
- **MCP Client**: Google Antigravity, Claude Desktop, or Cursor
---
## š Step-by-Step Setup Guide
### Step 1: Clone the Repository
Open PowerShell or Command Prompt:
```powershell
git clone https://github.com/okaybhargav/Premiere-Pro-MCP-for-Antigravity.git "C:\MCP\Premiere pro MCP"
cd "C:\MCP\Premiere pro MCP"
```
### Step 2: Install Node Dependencies
```powershell
npm install
```
### Step 3: Enable CEP Developer Mode (PlayerDebugMode)
In PowerShell, enable `PlayerDebugMode` so Premiere Pro allows local developer CEP extensions:
```powershell
# Enables debug mode for CSXS 9 through 16 (covers CC 2019 through 2025+)
9..16 | ForEach-Object { reg add "HKCU\Software\Adobe\CSXS.$_" /v PlayerDebugMode /t REG_SZ /d 1 /f }
```
### Step 4: Install the CEP Extension
Run the included PowerShell installer:
```powershell
powershell -ExecutionPolicy Bypass -File scripts\install.ps1
```
This deploys the extension to:
`%APPDATA%\Adobe\CEP\extensions\com.antigravity.premiere.mcp`
### Step 5: Launch the Extension in Premiere Pro
1. Open **Adobe Premiere Pro**.
2. Open or create a project.
3. In the top menu, go to: **Window** > **Extensions** > **Premiere MCP Bridge**.
4. The extension window will open and display connection status. Once the MCP server runs, it turns **Green (Connected)**.
### Step 6: Configure Google Antigravity
Open your Antigravity MCP configuration file:
- File path: `C:\Users\<YourUsername>\.gemini\config\mcp_config.json`
Add the `premiere-pro` server entry under `mcpServers`:
```json
{
"mcpServers": {
"premiere-pro": {
"command": "node",
"args": [
"C:\\MCP\\Premiere pro MCP\\mcp-server\\index.js"
]
}
}
}
```
*(Make sure to adjust the path if your repository is placed in a different folder).*
Restart Antigravity or refresh MCP tools.
---
## š Verification & Diagnostics
Run the automated diagnostic and test scripts to verify the bridge:
```powershell
# 1. Environment & registry diagnostic check
powershell -ExecutionPolicy Bypass -File scripts\diagnose.ps1
# 2. Automated unit and mock tests
npm test
```
---
## š¬ Prompt Examples for Antigravity
- *"Inspect the active sequence and list all clips on Video Track 1 and Audio Track 1."*
- *"Import media files from 'C:\Media\Footage' into a new bin called 'RawFootage'."*
- *"Place 'clip_01.mp4' on Video Track 1 at time 00:00:05:00 and trim it to 10 seconds duration."*
- *"Razor split the clip on Video Track 1 at timecode 00:00:12:15."*
- *"Select the first clip on Video Track 1 and scale it down to 80% while moving it to the top-right corner."*
- *"Animate opacity from 0% to 100% between seconds 0 and 1.5 to create a fade-in."*
- *"Export the current sequence using preset 'YouTube 1080p Full HD' to 'C:\Exports\FinalEdit.mp4'."*
---
## š Project Structure
```text
Premiere-Pro-MCP-for-Antigravity/
āāā cep-extension/
ā āāā CSXS/manifest.xml # CEP 9.0+ manifest (CSXS version definitions)
ā āāā host/premiere.jsx # ExtendScript host + JSON polyfill + QEAdapter
ā āāā index.html # Panel UI (status, command queue, debug logs)
ā āāā panel.js # CEP bridge polling client
ā āāā styles.css # Premiere Pro dark theme styling
āāā mcp-server/
ā āāā index.js # MCP stdio server entry point
ā āāā bridge.js # Local 127.0.0.1:17890 HTTP bridge with token auth
ā āāā tools.js # 41 MCP tool definitions, schemas, and handlers
ā āāā validation.js # Strict input validation and tick/timecode math
āāā scripts/
ā āāā install.ps1 # Deploys CEP extension to %APPDATA%
ā āāā diagnose.ps1 # Full environment, registry, and bridge diagnostic
ā āāā uninstall.ps1 # Clean uninstallation script
āāā tests/
ā āāā bridge.test.js # Loopback HTTP server and token auth tests
ā āāā validation.test.js # Parameter validation and tick math tests
āāā package.json # Node dependencies and test scripts
āāā .gitignore # Excludes node_modules and bridge runtime state
āāā LICENSE # MIT Open-Source License
āāā README.md # Documentation
```
---
## ā Troubleshooting & FAQ
### 1. Panel is blank or shows "Extension could not be loaded"
- **Fix**: Confirm you ran the `PlayerDebugMode` command for your CSXS version in Step 3. Restart Premiere Pro.
### 2. Panel status says "Connecting..." but doesn't turn green
- **Fix**: The panel connects when the Node MCP server is running. Ensure Antigravity is active and has registered `premiere-pro` in `mcp_config.json`. You can also manually test the bridge by running `node mcp-server\index.js` in a command prompt.
### 3. Razor splitting fails
- **Fix**: Razor cutting utilizes Premiere's internal `QEAdapter`. Ensure Premiere Pro has an active sequence open and that the track containing the clip is not locked or targeted incorrectly.
---
## š License
This project is licensed under the [MIT License](LICENSE) - free for personal and commercial open-source use.
TDQS
Scored across 41 tools
Most tools have distinct resource+action targets, but the clip-inspection cluster (read_clip_properties, get_clip_information, list_clip_components, list_component_properties) overlaps heavily, forcing agents to guess which read path to use. The descriptions help but the boundaries between these tools remain fuzzy.
The set predominantly follows a verb_noun snake_case pattern (get_, list_, set_, export_, etc.). Minor deviations like premiere_ping and premiere_health_check, plus read_ vs get_ for similar read operations, keep it from being fully consistent.
41 tools is well beyond the 25+ threshold for 'too many' and feels heavy for the apparent scope. Several capabilities could be consolidated (e.g., five separate motion/opacity/blend setters, six keyframe tools) without losing functionality.
The surface covers project, sequence, media, timeline editing, keyframes, and export workflows quite thoroughly. Minor gaps remain for direct audio operations (volume/pan) and adding/removing effects, but the generic property setter and other tools provide workarounds.