Installation
Get the VFX MCP Server up and running in just a few steps. This guide covers multiple installation methods to suit your development environment.
🚀 Quick Start
Section titled “🚀 Quick Start”Option 1: Nix Development Environment (Recommended)
Section titled “Option 1: Nix Development Environment (Recommended)”The project includes a comprehensive Nix flake that provides all necessary dependencies:
# Clone the repositorygit clone https://github.com/conneroisu/vfx-mcp.gitcd vfx-mcp
# Enter the Nix development environmentnix develop
# Install Python dependenciesuv sync
# Run the serveruv run python main.py
Option 2: Manual Installation
Section titled “Option 2: Manual Installation”If you prefer not to use Nix, you can install dependencies manually:
# Clone the repositorygit clone https://github.com/conneroisu/vfx-mcp.gitcd vfx-mcp
# Install FFmpeg (required for video processing)# On Ubuntu/Debian:sudo apt update && sudo apt install ffmpeg
# On macOS with Homebrew:brew install ffmpeg
# On Windows:# Download from https://ffmpeg.org/download.html
# Install Python dependencies with uvpip install uvuv sync
# Or with pip directlypip install -r requirements.txt
📋 Requirements
Section titled “📋 Requirements”System Requirements
Section titled “System Requirements”- Python: 3.9 or higher
- FFmpeg: Latest version (with full codec support)
- Operating System: Linux, macOS, or Windows
- Memory: 4GB RAM minimum (8GB recommended for large videos)
- Storage: Sufficient space for input/output video files
Python Dependencies
Section titled “Python Dependencies”The server uses these key packages:
- FastMCP: Model Context Protocol server framework
- ffmpeg-python: Python bindings for FFmpeg
- Pillow: Image processing for thumbnails and frames
- pytest: Testing framework (development only)
🔧 Environment Setup
Section titled “🔧 Environment Setup”Environment Variables
Section titled “Environment Variables”The server can be configured using these environment variables:
# MCP Transport Configurationexport MCP_TRANSPORT=stdio # or 'sse'export MCP_HOST=localhost # for SSE transportexport MCP_PORT=8000 # for SSE transport
# FFmpeg Configuration (auto-detected in Nix)export FFMPEG_PATH=/usr/bin/ffmpegexport FFPROBE_PATH=/usr/bin/ffprobe
# Working Directory (where videos are processed)export VFX_WORK_DIR=/path/to/videos
Nix Environment Benefits
Section titled “Nix Environment Benefits”Using the Nix development environment provides:
- FFmpeg with full codec support (
ffmpeg-full
) - Automatic path configuration for FFmpeg tools
- Development tools (ruff, black, basedpyright)
- Consistent environment across different systems
- Hot reloading with Air for development
Available commands in the Nix shell:
dx # Edit flake.nixtests # Run all testsrun # Run with hot reloadingformat # Format codelint # Run linting
✅ Verification
Section titled “✅ Verification”Test Your Installation
Section titled “Test Your Installation”-
Verify FFmpeg is available:
Terminal window ffmpeg -versionffprobe -version -
Test the MCP server:
Terminal window # Run the server (should start without errors)uv run python main.py# The server will wait for MCP client connections# Press Ctrl+C to stop -
Run the test suite:
Terminal window pytest# Run specific test categoriespytest -m unit # Fast unit testspytest -m integration # Integration testspytest -m "not slow" # Skip performance tests
Sample Test
Section titled “Sample Test”Create a simple test to verify everything works:
import subprocessimport sys
def test_ffmpeg_available(): """Test that FFmpeg is available""" result = subprocess.run(['ffmpeg', '-version'], capture_output=True, text=True) assert result.returncode == 0 assert 'ffmpeg version' in result.stdout
def test_server_imports(): """Test that the server can be imported""" try: import main print("✅ Server imports successfully") except ImportError as e: print(f"❌ Import failed: {e}") sys.exit(1)
if __name__ == "__main__": test_ffmpeg_available() test_server_imports() print("🎉 Installation verified!")
Run the test:
python test_installation.py
🔍 Troubleshooting
Section titled “🔍 Troubleshooting”Common Issues
Section titled “Common Issues”FFmpeg not found:
# Check if FFmpeg is in PATHwhich ffmpegffmpeg -version
# If not installed, see installation instructions above
Python version issues:
# Check Python versionpython --version
# Use specific Python version if neededpython3.9 -m pip install uv
Permission errors:
# On Linux/macOS, ensure FFmpeg has execute permissionschmod +x /usr/bin/ffmpegchmod +x /usr/bin/ffprobe
Import errors:
# Ensure you're in the project directorycd vfx-mcp
# Reinstall dependenciesuv sync --force-reinstall
Getting Help
Section titled “Getting Help”If you encounter issues:
- Check the Troubleshooting Guide
- Review the FAQ
- File an issue on GitHub
🎯 Next Steps
Section titled “🎯 Next Steps”Once installation is complete:
- Quick Start Guide - Run your first video editing commands
- MCP Integration - Connect to Claude Desktop or other MCP clients
- Tool Overview - Explore all available video editing tools
- Common Workflows - Learn typical video editing tasks
Ready to start editing videos with AI? Continue to the Quick Start Guide →