How bariswha/losslesscut-mcp works
losslesscut-mcp is an MCP stdio server through which an AI assistant can inspect media locally with FFmpeg/FFprobe and control LosslessCut over its loopback HTTP API. The workflow enters at the CLI, registers analysis and editing tools, then either analyzes a validated media file or sends editing actions to LosslessCut; segment projects can also be written beside media for precise cuts. The README documents the broader tool set, including scene, silence, black-frame, loudness, and keyframe analysis. Unsampled server sections limit evidence for some internal calls.
Main entry points: analysisTools.js Analysis tools · server.js Editing tools · index.js Stdio CLI · process.js Process runner
Components 23
MCP entry
- Stdio CLI
src/index.js - MCP tool server
src/server.js
Media analysis
- Analysis tools
src/analysisTools.js - Media metadata
src/media.js - Frame views
src/media.js - Scene detection
src/media.js - Silence detection
src/media.js - Black detection
src/media.js - Audio levels
src/media.js - Keyframe analysis
src/media.js - Media operations
src/media.js
LosslessCut editing
- Editing tools
src/server.js - Action allowlist
src/actions.js - Segment project writer
src/project.js - Local HTTP client
src/client.js
Shared runtime
- Process runner
src/process.js - Input validation
src/tooling.js - Timecode parsing
src/timecode.js - Tool configuration
src/config.js
Other components
- AI assistant
- LosslessCut app
- FFmpeg
- FFprobe
Connections 24
- AI assistant → Stdio CLI: starts server
README.md - Stdio CLI → MCP tool server: connects stdio
src/index.js - Stdio CLI → Tool configuration: reads options
src/index.js - MCP tool server → Analysis tools: registers tools
src/server.js - AI assistant → MCP tool server: invokes MCP tools
README.md - MCP tool server → Editing tools: dispatches tools
src/server.js - Analysis tools → Media operations: requests analysis
src/analysisTools.js - Analysis tools → Input validation: validates paths
src/analysisTools.js - Analysis tools → Timecode parsing: parses times
src/analysisTools.js - Media operations → Process runner: runs commands
src/media.js - Process runner → FFmpeg: starts process
src/process.js - Process runner → FFprobe: starts process
src/process.js - Analysis tools → Media metadata: provides metadata
src/analysisTools.js - Analysis tools → Frame views: provides frames
src/analysisTools.js - Analysis tools → Scene detection: detects scenes
README.md - Analysis tools → Silence detection: detects silence
src/analysisTools.js - Analysis tools → Black detection: detects black
src/analysisTools.js - Analysis tools → Audio levels: measures loudness
src/analysisTools.js - Analysis tools → Keyframe analysis: finds keyframes
src/analysisTools.js - Editing tools → Local HTTP client: sends actions
src/server.js - Local HTTP client → LosslessCut app: calls local API
README.md - Editing tools → Action allowlist: checks actions
src/server.js - Editing tools → Segment project writer: writes segments
src/server.js - Editing tools → Timecode parsing: parses cut times
src/server.js