DaVinci Resolve MCP

by samuelgursky
Verified
# DaVinci Resolve Integration - Feature Tracking (v1.3.3) This document provides detailed tracking of DaVinci Resolve API features implemented in our JSON-RPC Server, along with compatibility status across different clients and platforms. ## Status Definitions | Status | Description | |--------|-------------| | ✅ | Implemented and tested | | ⚠️ | Implemented but needs testing | | 🔄 | In progress | | 🟡 | Planned | | ❌ | Not implemented | | 🚫 | Not applicable | | 🐞 | Implementation contains bugs | ## Client/Platform Compatibility Update | Client | macOS | Windows | Linux | |--------|-------|---------|-------| | Cursor | ✅ Stable | ✅ Stable | ❌ | | Claude Desktop | ✅ Stable | ✅ Stable | ❌ | ## Implementation Methods | Method | Status | Notes | |--------|--------|-------| | MCP Framework | 🐞 | Original implementation - connection issues | | Direct JSON-RPC | ✅ | Current implementation - more reliable | ## Core Features ### General Resolve API | Feature | Implementation | Cursor (Mac) | Claude (Mac) | Cursor (Win) | Claude (Win) | Notes | |---------|---------------|--------------|--------------|--------------|--------------|-------| | Get Resolve Version | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Returns product name and version string | | Get Current Page | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Returns active page in UI | | Switch Page | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Changes UI to specified page | ### Project Management | Feature | Implementation | Cursor (Mac) | Claude (Mac) | Cursor (Win) | Claude (Win) | Notes | |---------|---------------|--------------|--------------|--------------|--------------|-------| | List Projects | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Gets all project names in database | | Get Current Project Name | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Returns name of open project | | Open Project | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Opens project by name | | Create New Project | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Creates project with given name | | Save Project | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Fixed with multi-method approach | | Close Project | ❌ | ❌ | ❌ | ❌ | ❌ | Close current project | | Get/Set Project Settings | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Manages project configuration | ### Timeline Operations | Feature | Implementation | Cursor (Mac) | Claude (Mac) | Cursor (Win) | Claude (Win) | Notes | |---------|---------------|--------------|--------------|--------------|--------------|-------| | List Timelines | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Lists all timelines in project | | Get Current Timeline | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Returns current timeline info | | Create Timeline | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Creates new timeline with name | | Set Current Timeline | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Switches to timeline by name | | Add Markers | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Adds markers with color and notes | | List Timeline Clips | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Lists clips in timeline | | Delete Timeline | ❌ | ❌ | ❌ | ❌ | ❌ | Removes a timeline | | Get Timeline Tracks | ❌ | ❌ | ❌ | ❌ | ❌ | Gets video/audio track structure | | Add Clips to Timeline | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Adds media pool clips to timeline | ### Media Pool Operations | Feature | Implementation | Cursor (Mac) | Claude (Mac) | Cursor (Win) | Claude (Win) | Notes | |---------|---------------|--------------|--------------|--------------|--------------|-------| | List Media Pool Clips | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Lists clips in root folder | | Import Media | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Imports files to media pool | | Create Bins | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | Creates organizational folders | | List Bins | ❌ | ❌ | ❌ | ❌ | ❌ | Lists all bins/folders | | Get Bin Contents | ❌ | ❌ | ❌ | ❌ | ❌ | Lists contents of specific bin | | Delete Media | ❌ | ❌ | ❌ | ❌ | ❌ | Removes media from pool | | Move Media to Bin | ❌ | ❌ | ❌ | ❌ | ❌ | Moves clip between bins | ### Color Page Operations | Feature | Implementation | Cursor (Mac) | Claude (Mac) | Cursor (Win) | Claude (Win) | Notes | |---------|---------------|--------------|--------------|--------------|--------------|-------| | Get Current Node | ❌ | ❌ | ❌ | ❌ | ❌ | Gets active node in color page | | Apply LUT | ❌ | ❌ | ❌ | ❌ | ❌ | Apply LUT to clip/node | | Get Color Wheels | ❌ | ❌ | ❌ | ❌ | ❌ | Get color wheel parameters | | Set Color Wheel Param | ❌ | ❌ | ❌ | ❌ | ❌ | Adjust color wheel parameter | | Add Node | ❌ | ❌ | ❌ | ❌ | ❌ | Adds node to grade | | Copy Grade | ❌ | ❌ | ❌ | ❌ | ❌ | Copies grade between clips | ### Delivery Page Operations | Feature | Implementation | Cursor (Mac) | Claude (Mac) | Cursor (Win) | Claude (Win) | Notes | |---------|---------------|--------------|--------------|--------------|--------------|-------| | Get Render Presets | ❌ | ❌ | ❌ | ❌ | ❌ | List render presets | | Add Render Job | ❌ | ❌ | ❌ | ❌ | ❌ | Add job to render queue | | Start Render | ❌ | ❌ | ❌ | ❌ | ❌ | Begin rendering jobs | | Get Render Status | ❌ | ❌ | ❌ | ❌ | ❌ | Check job status | ## Notes on Recent Improvements - Significantly improved Windows support in v1.3.3 with enhanced batch scripts and error handling - Added robust platform detection and environment setup via dedicated platform utilities - Windows-specific configuration templates now available for easier setup - Enhanced cross-platform compatibility with dynamic path resolution - Improved batch file for Windows with better ANSI color handling and process detection - Increased timeout waiting for DaVinci Resolve to start on Windows - Better detection of multiple possible DaVinci Resolve executable names on Windows - Claude Desktop now has full feature parity with Cursor on macOS - Configuration includes proper paths to Resolve scripting libraries and modules for each platform ## Development Priorities Update 1. **Current Focus**: - ✅ Complete Claude Desktop functionality on macOS - ✅ Improve Windows compatibility through robust platform detection - 🔄 Enhance batch files and runners for Windows - 🔄 Expand media pool and color page operations 2. **Next Steps**: - 🔄 Develop comprehensive error reporting - 🔄 Further improve Windows integration and compatibility - 🔄 Add support for easier installation process on Windows - 🟡 Implement more advanced timeline editing operations - 🟡 Add support for Fusion page functionality 3. **Future Work**: - 🔄 Windows support expansion and stabilization - 🟡 Implement missing API functions - 🟡 Fusion page functionality - 🟡 Linux support investigation ## Implementation Notes - **Platform-Specific Utilities**: Added utilities for handling OS differences, dynamic path resolution, and environment setup - **Direct JSON-RPC**: Using a custom JSON-RPC server that directly communicates with DaVinci Resolve's API - **Project Management**: Using ProjectManager API with proper error handling for non-existent projects - **Timeline Operations**: Most timeline functions work reliably with the direct API binding - **Media Pool**: Operations are working well for basic functions - **Integration Methods**: - Global config: Using .cursor/mcp.json for system-wide configuration - Project-specific config: Using project-level mcp.json for project-specific settings - Claude Desktop: Using claude_desktop_config.json for Claude desktop integration - Windows-specific templates: New platform-specific templates in config-templates directory - **Startup Scripts**: - `run-direct-server.sh`: Basic script to launch the JSON-RPC server on macOS - `run-now.bat`: Enhanced Windows batch file for launching server with improved compatibility - `mcp_resolve-cursor_start`: Enhanced startup script with environment validation, Resolve running check, and better error reporting - `mcp_resolve-claude_start`: Dedicated startup script for Claude Desktop integration - `mcp_resolve_launcher.sh`: Universal launcher that provides an interactive menu and command-line options to: - Start/stop Cursor MCP server - Start/stop Claude Desktop MCP server - Start/stop both servers simultaneously - Check server status - Start servers with specific DaVinci Resolve projects - Force server startup when DaVinci Resolve process isn't detected - **Platform Support**: - macOS: Fully supported and tested - Windows: Improved experimental support with platform-specific path detection - Linux: Not currently implemented but framework in place for future support ## Testing Procedure For each feature, testing involves: 1. Direct API testing with test scripts 2. Testing via Cursor AI interface 3. Verification in DaVinci Resolve UI that actions were performed 4. Cross-checking results for accuracy Features are marked as "✅ Implemented and tested" only after all steps are completed successfully. Windows features are currently marked as "⚠️ Implemented but needs testing" as they require more field testing with the enhanced Windows support.