Integrates MakeMKV with the Model Context Protocol for optical disc ripping.
makemkv-mcp
What is this?
makemkv-mcp is a standalone Model Context Protocol (MCP) server that wraps the makemkvcon command-line tool, exposing disc ripping capabilities as tools that any MCP-compatible client (Claude Desktop, Hivemind, etc.) can call. It runs on the machine with MakeMKV installed and an optical drive attached. The MCP client connects to it remotely via Streamable HTTP or locally via stdio.
Features
- Scan optical drives and detect loaded discs
- Scan disc contents — titles, streams, durations, sizes, codecs
- Rip individual titles or all titles as async background jobs
- Full disc backup
- Persistent job queue with real-time progress tracking (SQLite-backed)
- Auto-rip daemon with configurable strategies (
longest,all,min_duration) - Discord webhook and generic webhook notifications
- Agent callback notifications for rip lifecycle events
- Cross-platform support (Linux, macOS, Windows)
- Runs over stdio (local) or Streamable HTTP (remote/network)
Quick Start
From source
git clone https://github.com/hivementality/makemkv-mcp.git
cd makemkv-mcp
pip install .
makemkv-mcp
With pip
pip install .
# Run locally (stdio)
makemkv-mcp
# Run on the network (HTTP)
makemkv-mcp --transport streamable_http --port 8099
With Docker
docker-compose up -d
Installation
Prerequisites
- Python 3.10+
- MakeMKV with
makemkvconin your PATH — download here - An optical drive (Blu-ray, DVD, etc.)
Linux
# Install MakeMKV (Ubuntu/Debian example)
sudo apt install makemkv-bin makemkv-oss
# Install makemkv-mcp
git clone https://github.com/hivementality/makemkv-mcp.git
cd makemkv-mcp
./install.sh
The installer will offer to set up a systemd service for auto-start.
macOS
# Install MakeMKV from https://www.makemkv.com/
git clone https://github.com/hivementality/makemkv-mcp.git
cd makemkv-mcp
./install.sh
The installer will offer to set up a launchd service for auto-start.
Windows
# Install MakeMKV from https://www.makemkv.com/
git clone https://github.com/hivementality/makemkv-mcp.git
cd makemkv-mcp
.\install.ps1
The installer will offer to create a scheduled task for auto-start at login.
Configuration
Generate the default config file:
makemkv-mcp --init-config
This writes to the platform-specific default location:
| Platform | Config path |
|---|---|
| Linux | ~/.config/makemkv-mcp/config.yaml |
| macOS | ~/Library/Application Support/makemkv-mcp/config.yaml |
| Windows | %APPDATA%\makemkv-mcp\config.yaml |
You can also pass --config /path/to/config.yaml or set the MAKEMKV_MCP_CONFIG environment variable.
Full config reference
server:
host: "0.0.0.0" # Bind address for HTTP transport
port: 8099 # Port for HTTP transport
transport: "stdio" # "stdio" or "streamable_http"
makemkv:
binary: "makemkvcon" # Path or name of makemkvcon binary
default_output: "~/makemkv-output" # Default rip output directory
min_title_length: 120 # Minimum title duration (seconds) for auto-rip filtering
timeout: 7200 # Max seconds for a single rip operation
auto_rip:
enabled: false # Enable auto-rip on disc insertion
poll_interval: 30 # Seconds between drive polls
strategy: "longest" # Title selection: "longest", "all", or "min_duration"
eject_after: true # Eject disc after successful rip
notifications:
agent_notify: true # Send notifications back to MCP agent
discord_webhook: null # Discord webhook URL
webhook_url: null # Generic webhook URL (POST JSON)
Usage
With Claude Desktop (stdio)
Add to your claude_desktop_config.json:
{
"mcpServers": {
"makemkv": {
"command": "makemkv-mcp"
}
}
}
With Hivemind / Remote clients (Streamable HTTP)
Start the server on the machine with the optical drive:
makemkv-mcp --transport streamable_http --host 0.0.0.0 --port 8099
Then point your MCP client at it:
{
"mcpServers": {
"makemkv": {
"url": "http://YOUR_IP:8099/mcp"
}
}
}
With Docker
# Edit docker-compose.yaml to set your output path and drive device
docker-compose up -d
The container exposes port 8099 by default and expects the optical drive passed through as a device.
MCP Tools Reference
| Tool | Type | Description |
|---|---|---|
| `makemkv_list_drive |
Tools (4)
makemkv_list_drivesScan optical drives and detect loaded discs.makemkv_scan_discScan disc contents including titles, streams, durations, sizes, and codecs.makemkv_rip_titleRip an individual title from the disc as an async background job.makemkv_backup_discPerform a full disc backup.Environment Variables
MAKEMKV_MCP_CONFIGPath to the configuration YAML file.Configuration
{"mcpServers": {"makemkv": {"command": "makemkv-mcp"}}}