#!/usr/bin/env python3 """DaVinci Resolve MCP Server (granular tools).""" import os import sys current_dir = os.path.dirname(os.path.abspath(__file__)) project_dir = os.path.dirname(current_dir) for path in (project_dir, current_dir): if path not in sys.path: sys.path.insert(0, path) from src.utils.platform import get_resolve_paths paths = get_resolve_paths() api_path = os.environ.get("RESOLVE_SCRIPT_API") or paths["api_path"] lib_path = os.environ.get("RESOLVE_SCRIPT_LIB") or paths["lib_path"] modules_path = os.path.join(api_path, "Modules") if api_path else paths["modules_path"] if api_path: os.environ["RESOLVE_SCRIPT_API"] = api_path if lib_path: os.environ["RESOLVE_SCRIPT_LIB"] = lib_path if modules_path and modules_path not in sys.path: sys.path.append(modules_path) from src.granular import VERSION, mcp from src.granular.common import logger from src.utils.mcp_stdio import run_fastmcp_stdio from src.utils.update_check import start_background_update_check if __name__ == "__main__": try: start_background_update_check(VERSION, project_dir, logger) logger.info(f"Starting DaVinci Resolve MCP Server v{VERSION} (341 granular tools)") run_fastmcp_stdio(mcp) except KeyboardInterrupt: logger.info("Server shutdown requested") except Exception as exc: logger.error(f"Server error: {exc}") sys.exit(1)