youtube-music-mcp
Provides read-only tools for exploring a local YouTube Music library, including listing liked songs and playlists, searching the catalog, summarizing favorites by artist/album/year, and exporting favorites to CSV or JSON.
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., "@youtube-music-mcpShow me my liked songs"
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.
YouTube Music MCP
Servidor MCP y plugin personal de Codex para consultar YouTube Music de forma local y de solo lectura. Permite explorar favoritos, playlists y el catálogo sin incorporar credenciales ni datos privados al repositorio.
Funciones
Listar y filtrar canciones marcadas con Me gusta.
Listar playlists de la biblioteca.
Obtener el contenido de la playlist de favoritos (
LM).Buscar canciones, vídeos, álbumes, artistas y playlists.
Buscar por género incorporándolo a la consulta del catálogo.
Resumir favoritos por artista, álbum y año.
Exportar favoritos a CSV o JSON.
Trabajar con API en vivo o con snapshots privados capturados desde Chrome.
Related MCP server: YouTube MCP
Privacidad y arquitectura
El servidor tiene dos modos de lectura:
live_api: usa una sesión local deytmusicapi.browser_snapshot: usa snapshots de metadatos generados desde una sesión de Chrome ya iniciada, sin guardar cookies, cabeceras ni contraseñas.
Los archivos privados se almacenan fuera del repositorio:
~/.config/youtube-music-mcp/browser.json
~/.config/youtube-music-mcp/liked-snapshot.json
~/.config/youtube-music-mcp/playlists-snapshot.jsonEl MCP no expone herramientas que modifiquen la cuenta.
Herramientas MCP
Herramienta | Descripción |
| Comprueba la fuente de datos disponible. |
| Lista y filtra canciones favoritas. |
| Lista playlists guardadas. |
| Obtiene canciones de una playlist. |
| Busca en el catálogo por texto, artista o género. |
| Resume artistas, álbumes y años. |
| Exporta favoritos a CSV o JSON. |
Instalación local
Requisitos: Python 3.11 o posterior y uv.
git clone https://github.com/eduardoddddddd/youtube-music-mcp.git
cd youtube-music-mcp
uv sync
./scripts/configure-local-path.shEl último comando adapta .mcp.json a la ruta absoluta del clon.
Autenticación API opcional
./scripts/setup-auth.shNo introduzcas contraseñas: el asistente acepta las cabeceras de una sesión ya iniciada. Si Codex captura la biblioteca desde Chrome, este paso no es necesario.
Desarrollo
uv sync
uv run ruff check .
uv run pytestLimitación de género
YouTube Music no entrega un campo de género por pista. search_music(..., genre="jazz") añade el
género a la consulta del catálogo, pero no intenta clasificar automáticamente cada favorito.
Licencia
MIT © 2026 Eduardo Arias Bravo.
Available Tools
7 toolsauth_statusA
Comprueba si la sesion local esta configurada; verify=True hace una llamada privada minima.
| Name | Required | Description | Default |
|---|---|---|---|
| verify | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the extra behavior of 'verify=True' (making a minimal private call), which adds value. However, it does not describe potential return values, error behavior when the session is not configured, or any side effects, leaving gaps in 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 a single sentence that conveys both core purpose and a parameter behavior. It is front-loaded, information-dense, and contains no unnecessary words or repetition.
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, the description covers the core function and the parameter's effect, but the absence of an output schema means the description should ideally mention what the tool returns (e.g., a boolean status). It also lacks context on what 'session configured' means or what happens when verification fails, leaving the agent somewhat under-informed.
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 has one optional 'verify' parameter with no description (0% coverage). The description compensates by explaining that 'verify=True' triggers a minimal private call, giving meaningful semantic context beyond the bare boolean type. It does not fully elaborate on the default false behavior, but it adds key meaning.
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 uses a specific verb ('comprueba' = checks) and clearly identifies the resource ('si la sesion local esta configurada' = if the local session is configured). This clearly distinguishes it from sibling tools which all deal with music operations (liked songs, playlists, search).
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 context on what the tool does and the effect of the 'verify' parameter, but it does not explicitly state when to use it versus alternatives, nor does it mention any exclusions or prerequisites. Usage is implied as a preliminary status check, but this is not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_liked_songsB
Exporta favoritos a CSV o JSON dentro de Documents/YouTube Music Exports.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| format | No | csv |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
As annotations are absent, the description carries the full burden. It discloses the output location (Documents/YouTube Music Exports) and file formats, but it does not mention whether files are overwritten, whether authentication is required, or what the return value is. These are significant gaps for a write 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, front-loaded sentence with no redundant words. It efficiently communicates the core action, the output formats, and the destination, earning its place without excess.
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 only two parameters and no output schema, the description is under-specified. It misses the meaning of limit and does not explain behavioral outcomes like file overwriting or the nature of the response. Despite the low complexity, these gaps make it incomplete for reliable 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?
Schema description coverage is 0%, so the description must compensate. It covers the format parameter by listing CSV/JSON, but it completely omits the limit parameter, leaving its meaning (maximum number of songs) undocumented. The schema provides a default of 5000, but no explanation.
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 uses a specific verb 'Exporta' (exports), identifies the resource 'favoritos' (liked songs), and specifies output formats (CSV/JSON) and destination (Documents/YouTube Music Exports). This clearly distinguishes it from sibling tools like list_liked_songs, which likely return data rather than write 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 use for exporting liked songs to a file, but it does not explicitly state when to use this tool instead of alternatives like list_liked_songs or search_music. No when-not-to-use or alternative guidance is provided, only the inherent meaning of 'export'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_playlistA
Obtiene metadatos y canciones de una playlist por su identificador.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| playlist_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It only states that the tool gets metadata and songs, omitting important behavioral details such as the limit parameter's effect, pagination, authentication requirements, or error handling. This is a significant gap for a tool with no annotation safety 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?
The description is a single, concise sentence that is front-loaded with the core action and resource. Every word earns its place, with no unnecessary elaboration.
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 read-only tool, the description covers the essential purpose and identifier. However, it lacks details about the limit parameter's behavior, pagination, and possible prerequisites or alternative tools. Given no annotations or output schema, this is minimally adequate but not complete.
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 0%, so the description must compensate. It explains playlist_id implicitly via 'identificador' but does not mention the limit parameter at all. The limit parameter (with default 100) is left undocumented, leaving the agent without guidance on how to control the number of songs returned.
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 'Obtiene' (gets) and the resource 'metadatos y canciones de una playlist' (metadata and songs of a playlist), with the key identifier 'por su identificador' (by its identifier). This precisely distinguishes it from sibling tools that list playlists or search music.
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 tool is for use when you have a playlist identifier, providing clear context. However, it does not explicitly mention exclusions or alternative tools (e.g., search_music for finding playlists), so it falls short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_library_playlistsB
Lista las playlists guardadas en la biblioteca de la cuenta autenticada.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It adds the authenticated account context and implies a read-only list operation, but does not state side effects, return format, or error conditions. This is minimal behavioral disclosure.
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 in Spanish that front-loads the action and object. It contains no redundant information and is well-structured.
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 list tool, the description conveys the core function and the authentication context. However, it omits explanation of the limit parameter and return value structure, which could matter in the absence of an output schema and annotations. A more complete description would clarify pagination and result format.
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 has one parameter, limit, with no description, and the tool description provides no explanation of its meaning. Since schema description coverage is 0%, the description fails to compensate, leaving the agent to infer that limit controls the number of returned playlists.
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 playlists from the authenticated account's library, using a specific verb and resource. It distinguishes from sibling tools like list_liked_songs and get_playlist by explicitly naming 'playlists' and 'biblioteca'.
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 about when to use this tool versus alternatives such as get_playlist or search_music. The description does not mention any exclusions, criteria, or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_liked_songsA
Lista canciones marcadas con Me gusta y permite filtrarlas por texto, artista o album.
| Name | Required | Description | Default |
|---|---|---|---|
| album | No | ||
| limit | No | ||
| query | No | ||
| artist | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must convey behavioral traits. It mentions the ability to filter by text, artist, or album, which adds context, but does not explicitly state read-only behavior, pagination, or authentication requirements. The verb 'Lista' implies a read operation, but the lack of explicit safety disclosure prevents a higher score.
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 redundancy. It front-loads the primary action 'Lista canciones' and efficiently adds filter capabilities without unnecessary detail.
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 has no output schema and no annotations, so the description must cover key aspects. It adequately indicates the tool returns a list of liked songs and supports filters, but lacks details on the limit parameter, result format, and user/library scope, leaving some gaps for a simple list 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?
The input schema has 0% description coverage, but the description explains the meaning of three filter parameters ('texto', 'artista', 'album') corresponding to query, artist, and album. However, the 'limit' parameter is not addressed, leaving part of the parameter semantics undocumented.
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 liked songs with filtering by text, artist, or album. The verb 'Lista' and resource 'canciones marcadas con Me gusta' are specific, and it distinguishes from siblings like list_library_playlists (playlists) and search_music (search).
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 specify when to use this tool versus alternatives, nor does it provide exclusions. It simply states what the tool does, leaving usage context to be inferred from the purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_musicC
Busca en el catalogo por texto, genero y/o artista; el genero se incorpora a la consulta.
| Name | Required | Description | Default |
|---|---|---|---|
| genre | No | ||
| limit | No | ||
| query | No | ||
| artist | No | ||
| filter | No | songs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only notes that genre is incorporated into the query, which is a minor behavioral detail. There is no mention of read-only nature, return format, pagination, or other behavioral characteristics.
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, front-loaded with the main action. It is concise but the phrase 'el genero se incorpora a la consulta' is slightly redundant, detracting from clarity. Overall, it is efficiently sized.
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 5 parameters, no output schema, and no annotations, the description is inadequate. It does not explain the filter values, limit semantics, or result structure, leaving significant gaps for an agent to use the tool correctly. More context 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?
Schema coverage is 0%, so the description must compensate. It clarifies that 'texto' refers to the query parameter, and mentions genre and artist, but omits limit and filter. This partial mapping adds some value but does not fully explain the filter enum or limit behavior.
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 it searches the catalog by text, genre, and/or artist. The verb 'Busca' and resource 'catálogo' provide specific purpose, though it does not explicitly distinguish itself from sibling tools beyond the general search scope.
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 list_liked_songs or get_playlist. It does not mention scenarios, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarize_liked_libraryC
Resume favoritos por artistas, albumes, anos y pistas no disponibles.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavior. It does not mention whether the operation is read-only, what 'unavailable tracks' means, any performance implications, or the structure of the output. This is a significant gap for a tool that likely aggregates data.
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 front-loads the main purpose. It is not verbose and every word contributes to the meaning. However, it is so brief that it omits essential details, which slightly reduces the efficiency of the communication.
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 complexity (summarizing multiple categories), the lack of output schema, and empty parameter descriptions, this description is highly incomplete. It leaves critical questions unanswered: What does the summary look like? How are 'unavailable tracks' determined? What is the effect of 'top' and 'limit'? An agent would struggle to predict the tool's behavior or interpret its response.
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 0%, and the description says nothing about the 'top' and 'limit' parameters. While their names hint at quantities, without explanation an agent cannot know if 'top' refers to top artists, top albums, or something else. The description fails to compensate for the empty 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 summarizes liked favorites, specifying dimensions: artists, albums, years, and unavailable tracks. This distinguishes it from sibling tools like list_liked_songs and export_liked_songs, which obviously list or export rather than summarize. It is a specific verb+resource combination.
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. The description merely states what it does, without suggesting contexts or mentioning sibling tools. An agent would have to infer usage solely from the name and description, which is insufficient.
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.
7 tool updates
v0.1.0- First observed
auth_status - First observed
export_liked_songs - First observed
get_playlist - First observed
list_library_playlists - First observed
list_liked_songs - First observed
search_music - First observed
summarize_liked_library
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose: authentication status, listing liked songs, listing playlists, fetching a specific playlist, searching, summarizing, and exporting. There is no meaningful overlap; even similar-sounding tools like list_liked_songs and summarize_liked_library serve different functions (enumeration vs. aggregation).
Most tools follow a consistent verb_noun pattern (list_, get_, search_, summarize_, export_). The exception is auth_status, which lacks a verb and disrupts the otherwise uniform style. This minor deviation prevents a perfect score but the pattern is still highly readable.
Seven tools is well within the ideal range for a library-oriented MCP server. Each tool addresses a core function (authentication, listing, searching, exporting, summarizing) without redundancy or bloat. The count feels appropriately scoped for the server's purpose.
The server covers the full lifecycle of interacting with a user's YouTube Music library: authenticate, list liked songs, list playlists, fetch playlist contents, search, summarize, and export. There are no obvious dead ends for typical workflows like browsing, analyzing, or exporting favorites. Minor operations like adding/removing likes are outside the apparent scope, so no gaps are evident.
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
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Read-only MCP server exposing a user ORANO library to their own AI agent.
YouTube MCP — wraps the YouTube Data API v3 (BYO API key)
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceStreamable HTTP MCP server for YouTube that enables video search, channel exploration, playlist browsing, and video detail retrieval via the YouTube Data API.126MIT
- AlicenseBqualityCmaintenanceLocal read-only MCP server for YouTube Data API v3 and YouTube Analytics API, enabling public video searches and OAuth-based private channel reads.9MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for YouTube Music that enables searching songs and artists, managing playlists, and authenticating via Google OAuth, using STDIO transport.-
- FlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI applications to search YouTube music videos and manage playlists via the YouTube Data API v3, with OAuth support for playlist and subscription management.3-
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/eduardoddddddd/youtube-music-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server