npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mpv-mcp-server

v1.2.0

Published

MCP server for controlling mpv media player — playback, playlists, YouTube streaming and downloading

Readme

mpv-mcp-server

MCP server for controlling mpv 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 — media player (must be on your PATH, or set MPV_PATH)
  • Node.js 22+
  • yt-dlp (optional) — required for YouTube streaming and downloading
  • ffmpeg (optional) — required for audio extraction, metadata reading (ffprobe), and tagging

Quick Start

Claude Code

Add to your project's .mcp.json:

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

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

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

Claude Desktop

Add to your Claude Desktop config:

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

With environment overrides

{
  "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 on your PATH. Audio downloads also require ffmpeg.

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 (includes ffprobe).

How It Works

The server communicates with mpv via its JSON IPC protocol. 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