mpv-mcp-server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mpv-mcp-serverplay 'Bohemian Rhapsody' from my library"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: mcp-mpv-player
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-serverClaude 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 |
|
| Path to mpv executable |
|
| IPC socket path |
|
| Comma-separated media directories to scan |
|
| Where downloaded files are saved |
Tools
Playback
Tool | Description |
| Play a file by path or search term |
| Pause playback |
| Resume playback |
| Stop playback |
| Get current playback status |
| Seek to position ( |
| Get or set volume (0-150) |
Library
Tool | Description |
| List and search available media files |
| Show current playlist |
| Add a track to the playlist |
| Load a playlist file (.m3u, .pls, .txt) |
| Skip to next track |
| Go to previous track |
YouTube
Tool | Description |
| Search YouTube and stream through mpv (supports append mode) |
| Download from YouTube (audio or video) |
YouTube tools require yt-dlp on your PATH. Audio downloads also require ffmpeg.
Metadata
Tool | Description |
| Get metadata for the current track or any file by search term |
| 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
Available Tools
17 toolsmpv_addAdd to PlaylistA
Add a file to the playlist by path or search term. Use mode "append-play" to start playing it immediately.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | File path or search term | |
| mode | No | "append" adds to end, "append-play" adds and starts playing it | append |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false) already indicate the tool is a safe write operation. The description adds the behavioral detail of immediate playback via 'append-play' mode, but lacks information on error handling, duplicate detection, or other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences with no wasted words. It front-loads the primary action and immediately introduces the key mode variant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with full annotations, the description covers the core functionality and mode behavior. It does not mention the return value or confirm what happens after addition, but this is a minor gap given the tool's low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description provides minimal added value: it paraphrases the query parameter as 'path or search term' and clarifies the mode option. This reinforces but does not significantly extend beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a file to a playlist, specifying the action verb 'add', the resource 'playlist', and the method (by path or search term). It distinguishes from sibling tools like mpv_playlist and mpv_play by focusing on addition rather than playback or management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage: when to use the tool (to add a file) and how to use mode 'append-play' for immediate playback. It does not explicitly state when not to use it or list alternatives, but sibling tool names like mpv_load_playlist imply differentiated use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpv_browseBrowse Music LibraryARead-onlyIdempotent
List available music and video files. Optionally filter by search term or directory.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Filter files by search term | |
| directory | No | Which directory to browse | all |
| limit | No | Maximum number of results (default 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds no behavioral traits beyond saying it lists files; it does not contradict annotations. With annotations covering safety, the description provides adequate but minimal additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and contains no unnecessary words. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and schema covers parameters; annotations cover safety. However, no output schema exists, and the description does not describe the return format (e.g., list of file paths or names). This omission leaves the agent uncertain about what to expect, but overall completeness is adequate for a straightforward listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all 3 parameters (search, directory, limit). The description only restates the filtering capability without adding new meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists available music and video files, with optional filtering. The verb 'List' and resource 'music and video files' are specific. Among sibling tools like mpv_add, mpv_play, etc., this tool's purpose is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions optional filtering but provides no explicit guidance on when to use this tool versus alternatives (e.g., mpv_add, mpv_play). It is implied for browsing, but lacks explicit when-to-use or when-not-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpv_downloadDownload from YouTubeA
Download audio or video from YouTube. Specify format: "audio" for MP3, "video" for full video.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | YouTube URL or search term | |
| format | Yes | "audio" saves MP3 only, "video" saves full video |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, so the mutation behavior is known. The description adds that it downloads (saves to disk) but doesn't elaborate on file location, naming, or overwrite behavior. With annotations covering the core safety profile, the description provides marginal extra value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and each sentence carries essential information. No filler or redundant phrases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter tool with no output schema, the description adequately covers purpose and format options. However, it omits details like download destination, behavior with search terms vs URLs, and return value, leaving minor gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters. The description's mention of formats ('audio' for MP3, 'video' for full video) largely repeats the schema, adding no new meaning beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Download audio or video from YouTube', providing a clear verb (download) and resource (YouTube). It differentiates from sibling tools (e.g., mpv_play, mpv_browse) that serve different purposes, leaving no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool over alternatives (e.g., mpv_play for streaming) or when not to use it. The only hint is the format option, but context-aware selection is not supported.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpv_infoTrack InfoARead-onlyIdempotent
Get metadata (artist, title, album, genre, etc.) for a file by search term, or the currently playing track if omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | File path or search term. Omit to show info for the currently playing track. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false. Description adds that it retrieves specific metadata fields (artist, title, etc.) and the conditional behavior based on the query parameter. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with the core action ('Get metadata...') and efficiently covers both usage modes with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter, no output schema, and rich annotations, the description fully covers what an agent needs: what it does, how to use it, and the two invocation patterns. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the tool description essentially duplicates the schema's property description. While accurate, it adds no new meaning beyond what the input schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Get' and resource 'metadata (artist, title, album, genre, etc.)'. It distinguishes between two usage modes: by search term or currently playing track. Among sibling tools focused on playback control, this is the only metadata retrieval tool, so differentiation is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance on when to use: either provide a search term for a file or omit for the current track. However, it does not explicitly state when not to use or mention alternatives, though the simple nature makes it acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpv_load_playlistLoad Playlist FileA
Load a playlist file (.txt, .m3u). Omit path to list available playlists.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Path to playlist file. Omit to list available playlists. | |
| mode | No | "replace" clears current playlist, "append" adds to it | replace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations show readOnlyHint=false (state modification) and destructiveHint=false, which the description aligns with ('load' implies mutation). The description adds the context that omitting path lists playlists, a behavioral nuance not in annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence that includes file types, primary action, and a key usage hint. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters and no output schema, the description provides essential context. It covers the main behavior and a secondary listing mode. However, it does not specify behavior on invalid paths or the format of the playlist listing, which could be considered minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds value by explaining that omitting 'path' lists available playlists, which is not fully captured in the schema's description of 'path'. This enhances understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool loads a playlist file, specifies supported file types (.txt, .m3u), and mentions the dual behavior: loading a file or listing available playlists when path is omitted. This distinguishes it from sibling tools like mpv_playlist (manages current playlist) or mpv_add (adds items).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a playlist file to load, but it does not explicitly guide the agent on when to prefer this tool over siblings like mpv_add, mpv_play, or mpv_playlist. No alternatives or when-not-to-use are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpv_nextNext TrackA
Skip to the next track in the playlist.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is not read-only and not destructive, but the description adds only the context 'in the playlist.' No additional behavioral details are provided, which is acceptable for a simple action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It is perfectly concise and front-loaded with the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and no output schema, the description is complete. It clearly defines the action and scope ('in the playlist').
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters and the schema is fully covered (100%). The description adds no parameter information, which is appropriate given the absence of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Skip to the next track in the playlist,' specifying the action (skip) and the resource (next track). It effectively distinguishes itself from sibling tools like mpv_prev (previous track) and mpv_play (play a track).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for advancing through a playlist but does not provide explicit guidance on when to use this tool versus alternatives like mpv_seek or mpv_play. No exclusions or context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpv_pausePause PlaybackAIdempotent
Pause the currently playing track.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent and non-destructive nature; description adds no further behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence conveying exactly what the tool does with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, simple pause action, the description is adequate; could clarify relationship to siblings for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; baseline 4 per guidelines.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'pause' and resource 'currently playing track', distinguishing it from siblings like mpv_play, mpv_stop.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as mpv_stop or mpv_resume.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpv_playPlay Music/VideoA
Play a file by path or search term. Searches your Music and Videos folders when given a name like "sultans of swing".
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | File path or search term to find and play |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations indicate readOnlyHint false (mutation) and destructiveHint false, the description does not disclose behavioral traits like what happens if a file is already playing (e.g., stops, queues, or replaces). With limited annotation burden, the description should add this context but does not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the core purpose in the first sentence and providing an illustrative example in the second. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter and no output schema, the description covers the basic use case. However, it lacks details about start behavior relative to current playback (e.g., does it pause current? Add to queue?). Given tool complexity and siblings, slightly more context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with parameter description 'File path or search term to find and play'. The description adds value by explaining that searching occurs in Music and Videos folders when a name is given, which is not in the schema. This additional context raises it above baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Play a file by path or search term', using a specific verb and resource. It distinguishes from sibling tools like mpv_add, mpv_browse, etc., which have different purposes. The mention of searching Music and Videos folders adds clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (to play a file), but does not explicitly state when not to use or provide alternatives among siblings. No exclusions or comparisons are given, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpv_playlistShow PlaylistARead-onlyIdempotent
Show the current playlist with track numbers and the active track marked.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds value by specifying that the output includes track numbers and marks the active track, providing behavioral context beyond the annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 14 words, front-loaded with the core action ('Show the current playlist'), and includes key details (track numbers, active track mark). Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description adequately describes what the tool returns: a playlist with track numbers and active track marking. For a simple read-only tool with no inputs, this is sufficient. No additional context seems needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so schema coverage is 100%. The description does not need to add parameter info. Baseline of 4 applies since no additional explanation is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Show the current playlist with track numbers and the active track marked.' It uses a specific verb ('Show') and resource ('current playlist'), and distinguishes it from siblings like mpv_info and mpv_status by mentioning track numbers and active track marking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool vs alternatives. Usage is implied (to view the playlist), but no exclusions or when-not-to-use scenarios are given. Among 17 sibling tools, there is no comparative advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpv_prevPrevious TrackA
Go back to the previous track in the playlist.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a state change (changing current track), consistent with readOnlyHint=false. No contradictions; adequate for the simple action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, concise sentence with no extra words. Perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with zero parameters and no output schema, the description fully explains its function. No additional context needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; schema coverage is 100%. Baseline 4 applies as description adds clear purpose without needing parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'go back' and the resource 'previous track in the playlist', which distinguishes it from sibling tools like mpv_next.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when navigating playlist backwards. No explicit when-not or alternatives, but the action is simple and self-explanatory.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpv_resumeResume PlaybackAIdempotent
Resume playback if paused.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the 'if paused' condition, which is not in annotations. Annotations already provide idempotentHint=true and destructiveHint=false, so the behavior is safe, but the description does not clarify what happens if invoked while already playing (e.g., no-op vs error).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at 5 words, front-loaded with the action and condition, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and no output schema, the description covers the basic function. However, it could be more complete by describing the result (e.g., returns nothing or indicates success) and the behavior when not paused.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters and schema coverage is 100%, so the description does not need to add parameter meaning. The 0-param baseline is 4 per rubric.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Resume playback if paused.' clearly states the tool's action (resume) and resource (playback), and the conditional phrase distinguishes it from sibling tools like mpv_pause and mpv_stop.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when playback is paused), but it does not explicitly state when not to use it or mention alternative tools like mpv_play, which might also resume playback.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpv_seekSeekA
Seek to a position. Accepts seconds ("90"), timestamp ("1:30"), or relative ("+10", "-30").
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Seek target: seconds ("90"), timestamp ("1:30"), or relative ("+10", "-30") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate it is not read-only and not destructive, but the description adds no additional behavioral context (e.g., effect on playback state, safety of repeated calls). The description adds some value by listing input formats, but does not fully disclose behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 13 words, conveying all essential information without waste. Front-loaded with the verb 'Seek'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is complete and sufficient. It explains the tool's action and accepted input formats, leaving no gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a detailed schema description. The tool description repeats the schema's parameter info exactly, adding no new meaning. Per guidelines, baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Seek to a position' and specifies accepted formats (seconds, timestamp, relative). This is a specific verb+resource combination that distinguishes it from sibling tools like mpv_next, mpv_prev, and mpv_stop.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives such as mpv_next or mpv_prev. It only describes the input format, missing context for selection among navigation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpv_statusmpv StatusARead-onlyIdempotent
Get current mpv playback status: track title, position, duration, volume, and pause state.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, non-destructive, and idempotent behavior. The description adds value by listing the specific data fields returned, contributing to behavioral understanding beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the purpose and key data fields. It is well-structured and front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains what the tool returns (list of status fields). With zero parameters and simple output, the description is complete for an agent to understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, and the description implicitly indicates no inputs are needed. Since schema coverage is 100%, the description does not need to explain parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves current playback status and enumerates specific fields (track title, position, duration, volume, pause state), distinguishing it from sibling tools that perform actions like add, play, or seek.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving current status but does not explicitly state when to use it versus alternatives like mpv_info or mpv_playlist. No exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpv_stopStop PlaybackADestructiveIdempotent
Stop playback and clear the current file. The playlist is preserved.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint and idempotentHint. The description adds that it clears the current file while preserving the playlist, providing behavioral nuance without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, no wasted words. The most critical information is front-loaded, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema) and the existing annotation coverage, the description fully covers the necessary behavior. It clearly describes the action and its effect on state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, and the description does not need to elaborate on parameters. Baseline of 4 is appropriate for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Stop' and resource 'playback/current file', distinguishing it from siblings like mpv_pause (which pauses without clearing) and mpv_play. The added detail about preserving the playlist further clarifies its specific behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (to stop and clear the current file) and notes the playlist is preserved, but does not explicitly state when not to use it or mention alternatives. However, given the sibling list, the context is clear enough for an agent to differentiate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpv_tagTag FileAIdempotent
Write metadata tags to a media file using ffmpeg. Can target a file by search term. Infers artist/title from the filename if not provided.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | File path or search term for the file to tag | |
| artist | No | Artist name | |
| title | No | Track title | |
| album | No | Album name | |
| genre | No | Genre (e.g. Rock, Jazz, Metal) | |
| date | No | Year or date (e.g. 1978) | |
| comment | No | Comment (e.g. rating, notes, mood) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide basic hints (non-destructive, idempotent). The description adds valuable behavioral context: the tool uses ffmpeg, can target by search term, and infers artist/title from filename if not provided. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences contain no filler. First sentence states core purpose, second adds two key details (search targeting, inference from filename). Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters and no output schema, the description covers main behavior (writing tags, targeting by search, inference). It doesn't mention return value or error handling, but for a write tool, it's reasonably complete. The use of ffmpeg is noted, which implies system dependency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds the insight that artist and title are optional and can be inferred from the filename, which goes beyond schema descriptions. This is useful for the agent's decision-making.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Write metadata tags'), the tool ('ffmpeg'), and the resource ('media file'). It also notes the ability to target by search term, which distinguishes it from sibling tools like mpv_info (read-only) and mpv_add (likely adds files to playlist).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use ('Write metadata tags') and implies not for reading (use mpv_info). However, it does not explicitly mention alternatives or when not to use, so it's slightly less than perfect but still clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpv_volumeGet/Set VolumeAIdempotent
Get or set the playback volume. Provide a level (0-150) to set, or omit to get current volume.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | Volume level (0-150). Omit to get current volume. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint true and readOnlyHint false, meaning it's mutable but safe to repeat. The description adds the dual get/set behavior, which is valuable context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the tool's dual functionality. No unnecessary words or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description sufficiently explains usage. It could optionally describe the return value when getting volume, but it's not essential for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, but the description adds the crucial nuance: omitting 'level' fetches the current volume, while providing it sets the volume. This enhances understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: get or set playback volume. It uses specific verbs and resource, and the name 'mpv_volume' further reinforces uniqueness among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly informs when to provide the level (to set volume) and when to omit it (to get current volume). While it doesn't list alternatives, the binary usage is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mpv_youtubePlay from YouTubeA
Search YouTube and stream the result through mpv. Accepts a search query or a direct YouTube URL.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | YouTube search term or URL | |
| results | No | Number of search results to queue (default 1, max 10) | |
| mode | No | "replace" clears playlist (default), "append" adds to current playlist | replace |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (openWorldHint, non-read-only), the description reveals the tool streams media, implying side effects and external dependencies. This contextualizes the annotation values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no superfluous words. Front-loaded with the core action, then clarifying input types. Efficiently scoped.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param tool with full schema and annotations, the description adequately covers core behavior. Missing a note on how multiple results are handled (queuing) is covered by schema, so acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already explains each parameter thoroughly. The description echoes the query parameter's dual role (URL vs search term) but adds no new semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches YouTube and streams via mpv, distinguishing it from siblings like mpv_add or mpv_download. The verb-resource pair (search+stream YouTube) is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this versus alternative tools (e.g., mpv_add for local files). The purpose is clear, but an agent might benefit from hints about prerequisites (network) or fallback tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, but mpv_play and mpv_add have some overlap since both can start playback; however, descriptions clarify the difference (play vs. append). Overall clearly distinguishable.
All tools follow a consistent mpv_verb pattern (e.g., mpv_play, mpv_seek). The only minor exception is 'mpv_playlist' (noun only), but it's still predictable.
With 17 tools, this server covers playback, playlist management, metadata, and downloading/streaming. The number feels appropriate for the domain without being overwhelming.
The tool surface is comprehensive for basic media player control and metadata editing. Missing features like shuffle, repeat, or playlist editing are minor gaps for a typical use case.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Producer/Riffusion AI music generation
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
The official MCP Server for the Mux API
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
- AlicenseAqualityCmaintenanceAn MCP server that enables AI agents to play and control YouTube and TikTok videos through a native mpv player window. It supports browsing subscriptions, searching content, managing playlists, and fetching video metadata using authenticated browser cookies.23104MIT
- AlicenseAqualityCmaintenanceControl mpv media player through AI conversation. Play music and video, manage playlists — all via natural language. Works with opencode and any MCP-compatible AI tool.1615MIT
- FlicenseNot gradedqualityDmaintenanceA full-featured YouTube Music MCP server that lets AI assistants control playback, browse history, download songs, and manage playlists via natural language.1
- AlicenseAqualityDmaintenanceMCP server that enables natural language control of internet radio from Claude Code, with access to 30,000+ global stations, auto-playback via mpv, and a real-time status line with audio spectrum visualization.7MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/arijit-gogoi/mpv-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server