Skip to main content
Glama

DaVinci Resolve MCP

#!/usr/bin/env python3 """ DaVinci Resolve MCP Server Test Script for Custom Timeline Creation ------------------------------------------------------------------ This script tests the enhanced CreateEmptyTimeline function with custom parameters. Usage: python test_custom_timeline.py Requirements: - DaVinci Resolve must be running with a project open - DaVinci Resolve MCP Server must be running (after restart) - requests module (pip install requests) """ import sys import time import requests import logging from typing import Dict, Any # Configure logging logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', handlers=[ logging.FileHandler("custom_timeline_test.log"), logging.StreamHandler() ] ) logger = logging.getLogger(__name__) # Server configuration SERVER_URL = "http://localhost:8000/api" def send_request(tool_name: str, params: Dict[str, Any]) -> Dict[str, Any]: """Send a request to the MCP server.""" try: payload = { "tool": tool_name, "params": params } logger.info(f"Sending request: {tool_name} with params {params}") response = requests.post(SERVER_URL, json=payload) response.raise_for_status() return response.json() except requests.exceptions.RequestException as e: logger.error(f"Request error: {e}") return {"success": False, "error": str(e)} def test_basic_timeline_creation(): """Test basic timeline creation.""" logger.info("Testing basic timeline creation...") # Create a test timeline with default settings timeline_name = f"Basic_Test_Timeline_{int(time.time())}" result = send_request("mcp_davinci_resolve_create_timeline", {"name": timeline_name}) if "error" in result and result.get("error"): logger.error(f"❌ Basic timeline creation failed: {result.get('error')}") return False else: logger.info(f"✅ Basic timeline created: {timeline_name}") return True def test_custom_timeline_creation(): """Test enhanced timeline creation with custom parameters.""" logger.info("Testing custom timeline creation...") # Create a custom timeline with specific parameters timeline_name = f"Custom_Test_Timeline_{int(time.time())}" params = { "name": timeline_name, "frame_rate": "23.976", "resolution_width": 3840, "resolution_height": 2160, "start_timecode": "01:00:00:00" } result = send_request("mcp_davinci_resolve_create_empty_timeline", params) if "error" in result and result.get("error"): logger.error(f"❌ Custom timeline creation failed: {result.get('error')}") return False else: logger.info(f"✅ Custom timeline created with parameters: {params}") # Verify the timeline settings logger.info("Retrieving timeline info to verify settings...") # Switch to the created timeline switch_result = send_request("mcp_davinci_resolve_set_current_timeline", {"name": timeline_name}) if "error" in switch_result and switch_result.get("error"): logger.error(f"❌ Failed to switch to timeline: {switch_result.get('error')}") return False # Get timeline info get_timeline_result = send_request("mcp_davinci_resolve_get_current_timeline", {}) if "error" in get_timeline_result or not isinstance(get_timeline_result, dict): logger.error(f"❌ Failed to get timeline info: {get_timeline_result}") return False # Verify settings resolution = get_timeline_result.get("resolution", {}) logger.info(f"Timeline info: {get_timeline_result}") logger.info(f"Resolution: {resolution}") logger.info(f"Framerate: {get_timeline_result.get('framerate')}") logger.info(f"Start timecode: {get_timeline_result.get('start_timecode')}") return True def main(): """Run the timeline creation tests.""" logger.info("Starting DaVinci Resolve MCP custom timeline creation tests") logger.info("=" * 60) # Run tests basic_result = test_basic_timeline_creation() custom_result = test_custom_timeline_creation() # Summary logger.info("=" * 60) logger.info(f"Basic timeline creation: {'✅ PASSED' if basic_result else '❌ FAILED'}") logger.info(f"Custom timeline creation: {'✅ PASSED' if custom_result else '❌ FAILED'}") logger.info("=" * 60) # Exit with appropriate code if basic_result and custom_result: logger.info("All tests passed!") sys.exit(0) else: logger.error("Some tests failed. Check the logs for details.") sys.exit(1) if __name__ == "__main__": main()

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/samuelgursky/davinci-resolve-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server