mcp-mpv-player
Control the mpv media player through AI conversation to play media files, manage playback, and organize playlists. It auto-launches mpv if not running and integrates with MCP-compatible AI tools. Designed for Windows 10/11 via mpv's JSON IPC over Windows Named Pipe.
Playback Control
Play (
player_play): Open any file or URL (http/https/rtmp, etc.), with option to append to current playlistPause/Resume (
player_pause): Toggle pause and resumeStop (
player_stop): Stop playback and clear the current fileNext/Previous (
player_next,player_prev): Navigate between tracksSeek (
player_seek): Jump using relative (seconds), absolute (timestamp), or percentage-based seekingVolume (
player_set_volume): Adjust from 0 to 130Speed (
player_set_speed): Change playback speed (e.g. 0.5x, 1.0x, 2.0x)Status (
player_status): Retrieve file name, position, duration, volume, speed, and pause stateShuffle (
player_shuffle): Randomly shuffle the current playlist
Playlist Management (saved as .m3u files)
Create (
playlist_create): Create a new named playlist from a list of file paths or URLsLoad (
playlist_load): Load and play a saved playlist by nameAdd (
playlist_add): Append files to an existing playlistRemove (
playlist_remove): Remove a track by its 0-based indexList (
playlist_list): View all saved playlists or inspect the contents of a specific oneDelete (
playlist_delete): Permanently delete a saved playlist file
Allows control of the mpv media player via AI conversation, providing tools for playback management (play, pause, stop, seek, volume, and speed control) and comprehensive playlist management (creating, loading, and modifying playlists).
mcp-mpv-player
Control 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.
Installation
Make sure Node.js is installed, then run:
npx mcp-mpv-playerThe setup wizard will automatically:
Detect or install mpv
Locate your opencode config file
Register the MCP tool
Restart opencode when done.
Related MCP server: social-video-mcp
Usage Examples
Just talk to your AI naturally:
Play D:/Music/song.mp3
Pause
Next track
Skip forward 30 seconds
Jump to 2 minutes 30 seconds
Set volume to 80
Create a playlist called "chill" with D:/Music/a.mp3 and D:/Music/b.mp3
Play the "chill" playlist
ShuffleTools
Playback Control
Tool | Description |
| Play a file or URL, auto-starts mpv |
| Toggle pause / resume |
| Stop playback |
| Next track |
| Previous track |
| Seek by seconds / absolute time / percent |
| Set volume (0–130) |
| Set playback speed (0.5x / 1x / 2x …) |
| Get current playback status |
| Shuffle playlist and play from the start |
Playlist Management
Tool | Description |
| Create a new playlist |
| Load and play a saved playlist |
| Add files to a playlist |
| Remove a track from a playlist |
| List all playlists or inspect one |
| Delete a playlist |
Playlists are saved as .m3u files in %USERPROFILE%\mpv-playlists\.
Requirements
Windows 10 / 11
Node.js 18+
mpv (can be installed automatically by the setup wizard)
How It Works
mpv exposes a JSON IPC interface via a Windows Named Pipe (\\.\pipe\mpv-ipc). This tool runs as an MCP server, receives commands from the AI, and forwards them to mpv.
When player_play is called and mpv is not running, it is launched automatically with the IPC flag and stays running in the background between tracks.
License
MIT
Available Tools
16 toolsplayer_nextB
Skip to the next item in the playlist.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description is minimal and does not disclose behavior such as return values, failure modes (e.g., at end of playlist), or side effects. The agent lacks critical information about what happens on invocation.
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 with no unnecessary words. It is appropriately sized for a simple, no-parameter tool.
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 no parameters and no output schema, the description covers the basic purpose but lacks behavioral details (e.g., what if playlist is empty or at end). It is minimally viable but incomplete.
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 zero parameters, so no parameter information is needed. The description does not attempt to explain any nonexistent parameters, and the baseline for 0 params is 4.
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 action (skip) and target (next item in playlist), making the purpose unambiguous. However, it does not explicitly differentiate from the sibling player_prev, though the direction is implied.
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 versus alternatives like player_play or player_seek. The description lacks context about prerequisites or consequences (e.g., if at end of playlist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
player_pauseA
Toggle pause / resume playback.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as return status, error conditions (e.g., if already paused), or side effects. The bare description leaves ambiguity.
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, short sentence that conveys the essential purpose without waste.
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 has no parameters or output schema, the description is mostly complete. However, it could benefit from mentioning the toggle behavior or state dependencies.
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 no parameters, and schema coverage is 100% by default. The description adds no parameter details, but none are needed.
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 'Toggle pause / resume playback' uses a specific verb 'Toggle' and clearly identifies the resource (pause/resume playback). It distinguishes this tool from siblings like player_play or player_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 usage for pausing or resuming playback but does not provide explicit when-to-use or when-not-to-use guidance. No alternatives or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
player_playA
Open and play a media file or URL. If mpv is not running, it will be launched automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute file path or URL (http/https/rtmp etc.) | |
| append | No | Append to current playlist instead of replacing it |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses automatic launch of mpv but omits details on error handling, blocking behavior, or side effects like replacing the current playlist (only vaguely implied by the append parameter).
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 the primary purpose front-loaded. 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?
The description covers the core action and automatic launch behavior. Though it could explicitly mention what happens to current playback or error cases, it is largely complete for a simple playback tool with no output schema.
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 baseline is 3. The description adds no additional meaning beyond what the schema already provides for 'path' and 'append'.
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: 'Open and play a media file or URL'. It also adds a distinguishing detail (launching mpv automatically) that sets it apart from sibling tools like player_pause or player_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 usage when starting playback but does not provide explicit guidance on when to choose this tool over siblings (e.g., player_next, player_seek). It lacks exclusion criteria or alternative descriptions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
player_prevA
Go back to the previous item in the playlist.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description only states the action without revealing side effects or behavior at boundaries (e.g., whether it loops, stops, or errors when already at the first item).
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 that is efficient and front-loaded with the key action. 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?
Given the simplicity of the tool (no parameters, no output schema), the description is minimally adequate but lacks important behavioral context at playlist boundaries. An explanation of what happens when already at the first item would improve 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?
The tool has 0 parameters, and the description does not need to add parameter details. The baseline score applies as the description still clarifies the purpose.
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 'Go back to the previous item in the playlist' uses a specific verb and resource, clearly indicating the action and target. It differentiates from sibling tool 'player_next' by specifying 'previous'.
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 no guidance on when to use this tool versus alternatives (e.g., player_seek for specific positions). It does not mention edge cases like being at the beginning of the playlist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
player_seekC
Seek within the current media.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Seconds to seek (positive = forward, negative = backward) when mode=relative. Absolute second when mode=absolute. 0-100 when mode=percent. | |
| mode | No | Seek mode | relative |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must convey behavioral traits. It only states 'Seek within the current media,' omitting details such as behavior when seeking beyond track length, whether the media pauses, or if it requires an active media session.
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 is front-loaded and efficiently conveys the core purpose. 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?
The description is too minimal for a tool with 2 parameters and no output schema. It lacks information on return values, error conditions, prerequisites (e.g., media must be loaded and playing), and edge cases like invalid seek values.
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 both parameters well-described in the schema. The description adds no additional meaning beyond the schema, so baseline score of 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 'Seek within the current media' clearly identifies the tool's action and resource. It distinguishes from siblings like player_next/prev (track skipping) and player_play/pause (playback control). However, it does not highlight the supported seek modes (relative, absolute, percent).
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 no guidance on when to use this tool vs alternatives like player_next/prev or player_play/pause. No context about prerequisites (e.g., media must be playing) or when seeking is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
player_set_speedA
Set playback speed multiplier. 1.0 = normal speed.
| Name | Required | Description | Default |
|---|---|---|---|
| speed | Yes | Speed multiplier e.g. 0.5, 1.0, 1.5, 2.0 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds minimal behavioral context beyond the schema, explaining the multiplier concept but not addressing constraints, effects on other state, or error scenarios.
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 short, front-loaded sentences with no wasted words; 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?
For a simple one-parameter setter with no output schema, the description is nearly complete, providing purpose and a reference value. Minor omission: no mention of valid ranges or behavior during paused playback.
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 schema already covers the parameter with examples (0.5, 1.0, 1.5, 2.0), and the description adds only '1.0 = normal speed' which is helpful but not extensive; baseline 3 due to high schema coverage.
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 action ('Set playback speed multiplier') and provides a reference value (1.0 = normal speed), distinguishing it from sibling tools like play, pause, etc.
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 tool versus alternatives, but the context of sibling tools makes it implied; missing explicit when-not or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
player_set_volumeA
Set playback volume (0–130). 100 is default.
| Name | Required | Description | Default |
|---|---|---|---|
| volume | Yes | Volume level 0–130 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden. It adds the default value but does not disclose other behavioral traits like persistence or side effects on playback.
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?
Extremely concise with no wasted words. Single sentence effectively communicates purpose, range, and default.
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 one-parameter tool with no output schema, the description covers the essential range and default. Could be slightly more comprehensive (e.g., integer constraint), but adequate.
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 description adds the default value (100) not present in schema. Adds meaningful context beyond 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 verb 'Set', the resource 'playback volume', and provides a range (0–130) and default (100). This distinguishes it from sibling tools like player_seek or player_set_speed.
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 versus alternatives (e.g., other volume-related tools are absent). Lacks explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
player_shuffleA
Randomly shuffle the current playlist and start playing from the first track.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description is the sole source of behavioral info. It states the main action but does not disclose edge cases (e.g., behavior on empty playlist, effect on current playback state). Basic but adequate for a simple operation.
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 11 words, conveying all necessary information without redundancy. Highly concise and 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?
Given zero parameters and no output schema, the description covers the essential action. It could mention prerequisites (e.g., a playlist must be active) but is otherwise sufficient for a simple function.
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 no parameters, and schema coverage is 100% trivially. The description adds no parameter info, which is appropriate. Baseline score 3 is used as per rubric for high schema coverage.
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 action: shuffle the current playlist and start playing from the first track. It uses specific verbs and resources, and distinguishes itself from siblings like player_play and player_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?
No explicit guidance on when to use vs. alternatives. While the purpose is clear, there is no mention of prerequisites (e.g., a playlist must be loaded) or exclusions (e.g., not to be used if user wants to shuffle without playing).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
player_statusA
Get current playback status: file name, position, duration, volume, speed, pause state.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description adequately conveys that this tool is a read-only operation returning specific playback details. It does not mention side effects or additional behavioral traits, but for a status query, the description is transparent enough.
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 that directly states the purpose and lists the key return values. No wasted words, and the most important information is 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 no parameters and no output schema, the description fully covers what the tool does and what information it returns. It is complete and sufficient for an agent to use.
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 zero parameters, and the description does not need to add parameter details. According to guidelines, 0 params baseline is 4. The description adds meaning by listing the return fields.
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 'Get current playback status' and enumerates the specific fields returned (file name, position, duration, volume, speed, pause state). This distinguishes it from sibling tools which are all control actions (play, pause, next, etc.).
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 context: use this to retrieve current playback state. It does not explicitly state when not to use it, but given the tool's simplicity and differentiation from sibling tools, the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
player_stopA
Stop playback and clear the current file.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It explicitly states both actions: stopping playback and clearing the file. This is sufficient for a simple tool.
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?
Extremely concise and front-loaded. Every word is necessary and 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?
For a zero-parameter tool with no outputs, the description fully covers the behavior. No additional detail is 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 exist, so schema coverage is 100%. The description adds meaning beyond the empty schema by clarifying the tool's effect.
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', and adds 'clear the current file' which distinguishes it from siblings like player_pause that only pause without clearing.
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 stop versus pause or other siblings. The description does not provide context for choosing this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_addA
Add files to an existing playlist.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Playlist name | |
| files | Yes | Files to append |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It indicates a mutation (add) but does not mention whether duplicates are allowed, if files are appended, or what happens if the playlist doesn't exist. This is insufficient for a mutation tool without 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 with no superfluous information. It is front-loaded and efficient.
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 and no annotations, the description is minimal. It covers the basic purpose but lacks details on error handling, idempotency, or behavior for missing playlists. For a simple mutation, it is just adequate.
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 baseline is 3. The description clarifies that files are added to an existing playlist, which adds context beyond the schema but does not elaborate on the parameters themselves.
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 'Add files to an existing playlist' clearly states the action (add) and the resource (files to an existing playlist). It effectively distinguishes from sibling tools like playlist_create (creates new) and playlist_remove (removes files).
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 the playlist must already exist but does not explicitly state this prerequisite or compare with alternatives. It provides minimal guidance on when to use versus playlist_create or playlist_remove.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_createB
Create a new playlist with a list of file paths.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Playlist name | |
| files | Yes | Array of absolute file paths or URLs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It fails to disclose important behaviors such as whether an existing playlist with the same name is replaced, whether files must exist on disk, or if paths/URLs are validated. The brief statement does not cover safety or 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 a single, efficient sentence with no waste. However, it could be slightly more structured to include key constraints without becoming verbose. Still, it earns points for brevity.
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 lack of output schema and annotations, the description should provide more context about return values, error conditions, or the behavior when a playlist name already exists. The current description is too minimal for a creation tool with two required parameters.
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 the schema already documents both parameters (name and files) with clear descriptions. The description adds little new meaning beyond restating 'list of file paths', which is less precise than the schema's 'absolute file paths or URLs'.
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 action ('Create a new playlist') and the input source ('list of file paths'). The verb 'create' distinguishes it from sibling tools like playlist_add (which implies adding to existing) and playlist_load (loading a saved 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?
No explicit guidance is provided on when to use this tool versus alternatives. The description does not mention scenarios like creating a new playlist from scratch vs. adding to an existing one, nor does it reference sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_deleteB
Delete a saved playlist file.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Playlist name to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the action without disclosing behavioral details such as irreversibility, side effects, or required permissions. The description does not compensate for the lack of 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 directly states the tool's purpose with no unnecessary words. It is well-structured and 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 simple deletion tool with one parameter and no output schema or annotations, the description is mostly complete. It fully explains the action and parameter, though additional behavioral details 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?
The input schema has 100% coverage with a simple string parameter 'name' described as 'Playlist name to delete'. The description adds no additional meaning beyond the schema, so a baseline score of 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 action (delete) and the resource (saved playlist file). It distinguishes from sibling tools like playlist_create or playlist_list, as deletion is a distinct operation.
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 is provided on when to use this tool versus alternatives like playlist_remove. The description does not mention prerequisites or scenarios for using this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_listA
List all saved playlists or show contents of a specific playlist.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Playlist name to inspect (omit to list all playlists) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states basic function without disclosing behavioral traits such as read-only nature, side effects, or output format. For a tool with no annotations, more detail is needed.
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, efficient, no waste. 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 no output schema and no annotations, the description is reasonably complete for a list tool, but lacks detail about return format (e.g., list of names vs objects). Adequate but could be improved.
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 one parameter. Description adds context by explaining the dual mode, but largely restates the schema. Adequate but not enhanced beyond 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?
Description clearly states it lists all playlists or shows contents of a specific playlist. Differentiates from siblings like playlist_create, playlist_delete, etc. by using specific verb 'list' and resource 'playlists'.
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 usage: omit 'name' to list all, provide 'name' to show contents. No explicit when-not or alternatives, but context from sibling tools makes it unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_loadB
Load a saved playlist by name and start playing it.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Playlist name (without .m3u) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It states the action but does not disclose effects on current state (e.g., stopping playback, clearing queue) or preconditions (e.g., playlist must exist).
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 front-loaded sentence with no wasted words, efficiently communicating the core action. 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?
For a simple single-parameter tool, the description is mostly complete. However, it lacks context about its effect on current playback, which an agent might need to avoid confusion with siblings.
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 a clear parameter name and description. The tool description adds no additional semantic value beyond the schema, so baseline score of 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 loads a saved playlist and starts playing it, with a specific verb and resource. However, it lacks details on whether it replaces the current playback queue or not, which slightly reduces 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?
No guidance is provided on when to use this tool versus siblings like playlist_add or player_play. The agent is left to infer usage without explicit when-to or when-not-to instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
playlist_removeB
Remove a file from a saved playlist by index (0-based).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Playlist name | |
| index | Yes | 0-based index to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It only states removal by index but omits what happens on invalid index, whether the operation is reversible, or any side effects. For a mutation tool, this is insufficient.
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 that efficiently conveys the essential information without any redundancy or waffle.
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 simplicity of the tool (2 parameters, no output schema), the description is functional but incomplete. It lacks details on return values, error handling, and behavior when inputs are invalid, which would be helpful for an agent.
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 both parameters are well-documented. The description adds the '0-based' detail to the index parameter, which is a minor improvement. However, it does not clarify the name parameter beyond the schema's description.
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 verb 'Remove' and resource 'file from a saved playlist' are clearly stated. The 0-based index specification adds precision. It distinguishes from sibling tools like playlist_delete (deletes entire playlist) and playlist_add.
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 is provided on when to use this tool versus alternatives such as playlist_delete or player_prev. There is no mention of prerequisites, constraints, or situations where this tool is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
16 tool updates
v1.0.3- First observed
player_next - First observed
player_pause - First observed
player_play - First observed
player_prev - First observed
player_seek - First observed
player_set_speed - First observed
player_set_volume - First observed
player_shuffle - First observed
player_status - First observed
player_stop - First observed
playlist_add - First observed
playlist_create - First observed
playlist_delete - First observed
playlist_list - First observed
playlist_load - First observed
playlist_remove
TDQS
All tools have clear prefixes ('player_' and 'playlist_') and distinct actions. There is no overlap between player controls and playlist management, and within each category, each tool serves a unique purpose.
All tool names follow a consistent snake_case verb_noun pattern (e.g., player_next, playlist_create). No deviations or mixed conventions are present.
With 16 tools, the server slightly exceeds the ideal range of 3-15 but remains well-scoped. The count covers both playback controls and playlist management without being excessive.
The tool surface covers core playback and playlist operations. Minor gaps exist, such as lack of a tool to remove items from the current playing playlist or control loop/shuffle modes, but these are not critical for basic functionality.
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
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.
Remote MCP for AI video, image, music and speech generation.
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP control for foobar2000. Control your music player with an AI assistant!6MIT
- 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
- AlicenseNot gradedqualityAmaintenanceVideo player for humans and AI. GUI + CLI + a built-in MCP server (39 tools) to drive playback, clip, transcribe, and search your media library from Claude, Cursor, or any MCP client. Local Whisper subtitles. MIT, local-first.MIT
- 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
Appeared in Searches
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/guodaxia9527/mcp-mpv-player'
If you have feedback or need assistance with the MCP directory API, please join our Discord server