Skip to main content
Glama
eduardoddddddd

youtube-music-mcp

YouTube Music MCP

CI Python 3.11+ License: MIT

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:

  1. live_api: usa una sesión local de ytmusicapi.

  2. 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.json

El MCP no expone herramientas que modifiquen la cuenta.

Herramientas MCP

Herramienta

Descripción

auth_status

Comprueba la fuente de datos disponible.

list_liked_songs

Lista y filtra canciones favoritas.

list_library_playlists

Lista playlists guardadas.

get_playlist

Obtiene canciones de una playlist.

search_music

Busca en el catálogo por texto, artista o género.

summarize_liked_library

Resume artistas, álbumes y años.

export_liked_songs

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.sh

El último comando adapta .mcp.json a la ruta absoluta del clon.

Autenticación API opcional

./scripts/setup-auth.sh

No 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 pytest

Limitació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 tools
auth_statusA

Comprueba si la sesion local esta configurada; verify=True hace una llamada privada minima.

ParametersJSON Schema
NameRequiredDescriptionDefault
verifyNo

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
formatNocsv

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
playlist_idYes

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

B3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
albumNo
limitNo
queryNo
artistNo

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
genreNo
limitNo
queryNo
artistNo
filterNosongs

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
limitNo

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 7 tool updatesv0.1.0
    • First observedauth_status
    • First observedexport_liked_songs
    • First observedget_playlist
    • First observedlist_library_playlists
    • First observedlist_liked_songs
    • First observedsearch_music
    • First observedsummarize_liked_library

TDQS

A3.6/5.0

Scored across 7 tools

Disambiguation5/5

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).

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivitySlowing
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Streamable HTTP MCP server for YouTube that enables video search, channel exploration, playlist browsing, and video detail retrieval via the YouTube Data API.
    12
    6
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Local read-only MCP server for YouTube Data API v3 and YouTube Analytics API, enabling public video searches and OAuth-based private channel reads.
    9
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for YouTube Music that enables searching songs and artists, managing playlists, and authenticating via Google OAuth, using STDIO transport.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    An 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

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