# mpv-mcp-server

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/arijit-gogoi/mpv-mcp-server  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/mpv-mcp-server

## Description
Control mpv media player — playback, playlists, YouTube streaming, and downloads.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "mpv-mcp-server": {
    "command": "npx",
    "args": ["-y","mpv-mcp-server"]
  }
}
```

## Documentation & README

# mpv-mcp-server

MCP server for controlling [mpv](https://mpv.io) media player. Browse your music library, control playback, stream from YouTube, and download tracks — all from inside an MCP client like Claude Code.

## Prerequisites

- **[mpv](https://mpv.io/installation/)** — media player (must be on your PATH, or set `MPV_PATH`)
- **[Node.js](https://nodejs.org/) 22+**
- **[yt-dlp](https://github.com/yt-dlp/yt-dlp)** *(optional)* — required for YouTube streaming and downloading
- **[ffmpeg](https://ffmpeg.org/)** *(optional)* — required for audio extraction, metadata reading (ffprobe), and tagging

## Quick Start

### Claude Code

Add to your project's `.mcp.json`:

```json
{
  "mcpServers": {
    "mpv": {
      "command": "npx",
      "args": ["-y", "mpv-mcp-server"]
    }
  }
}
```

Or add at user scope (available in all projects):

```bash
claude mcp add mpv --scope user -- npx -y mpv-mcp-server
```

### Claude Desktop

Add to your Claude Desktop config:

```json
{
  "mcpServers": {
    "mpv": {
      "command": "npx",
      "args": ["-y", "mpv-mcp-server"]
    }
  }
}
```

### With environment overrides

```json
{
  "mcpServers": {
    "mpv": {
      "command": "npx",
      "args": ["-y", "mpv-mcp-server"],
      "env": {
        "MPV_PATH": "/usr/local/bin/mpv",
        "MPV_MEDIA_DIRS": "/home/user/Music,/home/user/Podcasts",
        "MPV_DOWNLOAD_DIR": "/home/user/Music"
      }
    }
  }
}
```

## Configuration

All configuration is via environment variables. Everything has sensible defaults.

| Variable | Default | Description |
|---|---|---|
| `MPV_PATH` | `mpv` | Path to mpv executable |
| `MPV_IPC_PATH` | `\\.\pipe\mpvpipe` (Windows) or `/tmp/mpv-ipc.sock` (Unix) | IPC socket path |
| `MPV_MEDIA_DIRS` | `~/Music,~/Videos` | Comma-separated media directories to scan |
| `MPV_DOWNLOAD_DIR` | `~/Downloads` | Where downloaded files are saved |

## Tools

### Playback

| Tool | Description |
|---|---|
| `mpv_play` | Play a file by path or search term |
| `mpv_pause` | Pause playback |
| `mpv_resume` | Resume playback |
| `mpv_stop` | Stop playback |
| `mpv_status` | Get current playback status |
| `mpv_seek` | Seek to position (`"90"`, `"1:30"`, `"+10"`, `"-30"`) |
| `mpv_volume` | Get or set volume (0-150) |

### Library

| Tool | Description |
|---|---|
| `mpv_browse` | List and search available media files |
| `mpv_playlist` | Show current playlist |
| `mpv_add` | Add a track to the playlist |
| `mpv_load_playlist` | Load a playlist file (.m3u, .pls, .txt) |
| `mpv_next` | Skip to next track |
| `mpv_prev` | Go to previous track |

### YouTube

| Tool | Description |
|---|---|
| `mpv_youtube` | Search YouTube and stream through mpv (supports append mode) |
| `mpv_download` | Download from YouTube (audio or video) |

YouTube tools require [yt-dlp](https://github.com/yt-dlp/yt-dlp) on your PATH. Audio downloads also require [ffmpeg](https://ffmpeg.org/).

### Metadata

| Tool | Description |
|---|---|
| `mpv_info` | Get metadata for the current track or any file by search term |
| `mpv_tag` | Write metadata tags (artist, title, album, genre, date, comment) to a file |

Both tools infer artist/title from the "Artist - Title" filename pattern. Requires [ffmpeg](https://ffmpeg.org/) (includes ffprobe).

## How It Works

The server communicates with mpv via its [JSON IPC protocol](https://mpv.io/manual/master/#json-ipc). On Windows this uses a named pipe, on macOS/Linux a Unix domain socket. If mpv isn't running, the server spawns it automatically in idle mode. The mpv process is detached, so it keeps playing even if the MCP server exits.

## Platform Support

Developed and tested on **Windows**. macOS/Linux support is implemented but untested — issues and PRs welcome!

## License

MIT

