King Crimson Discography MCP Server
Un servidor MCP que presenta datos de discos y actuaciones en vivo de King Crimson, incluido un modelo curado de encarnaciones (épocas de formación) que muestra cómo cada canción pertenece a eras específicas de la banda.
Documentación
King Crimson Discography MCP Server
Versión en japonés: README.ja.md
Un servidor MCP que expone datos de discos y actuaciones en vivo de King Crimson, incluido un modelo de encarnación (era de formación) curado que muestra cómo cada canción pertenece a eras específicas de la banda.
Qué lo hace diferente
Los servidores MCP genéricos de MusicBrainz/Discogs ya pueden obtener lanzamientos, créditos y ediciones. Este servidor también lo hace, pero añade dos cosas que una herramienta de discografía agnóstica de banda estructuralmente no puede tener:
-
Una capa de integración entre fuentes basada en MBID. MusicBrainz, Discogs, Cover Art Archive y setlist.fm se combinan para que un solo MBID de grupo de lanzamiento te dé créditos, ediciones físicas, arte y historial en vivo sin tener que re-resolver identidades por fuente.
-
Un modelo de encarnación de King Crimson. La formación de King Crimson cambió casi por completo, muchas veces, a lo largo de cinco décadas: la misma canción puede significar una banda totalmente distinta según el año. Este servidor cura manualmente ocho eras de formación y cruza el historial de actuaciones en vivo de cada canción rastreada con ellas:
Canción Encarnaciones en las que aparece "21st Century Schizoid Man" Repartida en todas las eras: la firma de la banda "Starless" Solo en la era de Larks' Tongues y en la era de los tres bateristas "Elephant Talk" Nacida en la era Discipline, desaparecida en la era de los tres bateristas -
Una caché local de conciertos, offline-first. El historial completo de conciertos (más de 1.200 shows) se obtiene una vez mediante
refresh_setlist_cachey se guarda como JSON. Cada consulta posterior de canción/gira/era lee la caché: instantánea e inmune a los fallos intermitentes de límite de tasa de setlist.fm durante el análisis. -
Búsqueda inversa: canción → los álbumes en vivo que la capturaron, por era. Pregunta "¿qué lanzamientos en vivo contienen Red?" y obténlos agrupados por encarnación. Cruza dos cosas que este servidor ya conoce: cuándo se tocó una canción (de la caché de setlists) y cuándo se grabó cada álbum en vivo oficial (parseado de su título), por lo que responde una pregunta que ni MusicBrainz ni Discogs responden directamente.
Para Red, esto saca a la luz 37 álbumes en vivo de un solo show en las eras Discipline, THRAK, ProjeKcts y de los tres bateristas, y muestra correctamente ninguno de la formación de 1974 que lo grabó, que nunca lo tocó en vivo (números al momento de escribir esto; el catálogo de MusicBrainz puede crecer).
Herramientas
| Herramienta | Descripción |
|---|---|
search_release(query, artist="King Crimson", limit=10) | Búsqueda de álbumes en MusicBrainz → MBIDs |
get_credits(mbid, release_mbid=None) | Créditos de intérpretes/producción por pista, resueltos a nivel de grabación, más una lista de álbum deduplicada |
get_editions(mbid, max_versions=25) | Ediciones/reediciones físicos vía Discogs, prefiriendo la relación exacta MusicBrainz→Discogs sobre la búsqueda difusa |
get_artwork(mbid) | Portada a través del Cover Art Archive |
get_live_history(query="", artist="King Crimson", year=None, limit=20) | Búsqueda de setlist.fm en una página por recinto/ciudad/año (sin necesidad de caché) |
refresh_setlist_cache(artist_mbid=<King Crimson>, max_pages=100, max_retries=3, force=False) | Obtener y cachear el historial completo de conciertos de un artista desde setlist.fm |
song_performance_history(song, artist_mbid=<King Crimson>, match="exact") | Historial en vivo de una canción desde la caché: by_year, by_tour, by_incarnation |
get_incarnations() | Las eras de formación curadas: miembros, instrumentos, lanzamientos clave |
refresh_live_releases_cache(artist_mbid=<King Crimson>, max_pages=10, max_retries=3, force=False) | Obtener los lanzamientos en vivo oficiales de King Crimson desde MusicBrainz y cachearlos, parseando una fecha de grabación de cada título |
song_live_releases(song, artist_mbid=<King Crimson>, match="exact") | Encontrar lanzamientos en vivo oficiales que capturaron una canción, agrupados por encarnación: compara la caché de setlists con las fechas de grabación de los lanzamientos en vivo |
refresh_box_sets_cache(discogs_artist_id=70828, artist_mbid=<King Crimson>, force=False) | Obtener las compilaciones y cajas de King Crimson desde Discogs y cachear sus listas de pistas |
song_box_sets(song, artist_mbid=<King Crimson>, match="exact") | Listar cajas/compilaciones que contienen una canción dada (de Discogs), con año, formato, URL de Discogs y número de apariciones |
El modelo de encarnación
Ocho eras de formación, divididas por cambios de miembros:
| id | Era | Años |
|---|---|---|
kc_1969 | Era In the Court | 1969 |
kc_1970_1972 | Era transicional | 1970 – Sep 1972 |
kc_1972_1974 | Era Larks' Tongues | Oct 1972 – 1974 |
kc_1981_1984 | Era Discipline | 1981 – 1984 |
kc_1994_1997 | Era Double Trio / THRAK | 1994 – 1996 |
kc_1997_2003 | Era ProjeKcts / Nuovo Metal | 1997 – 2003 |
kc_2008 | Era 40 aniversario | 2008 |
kc_2014_2021 | Era de los tres bateristas | 2014 – 2021 |
Los límites son fechas, no solo años; en particular, 1972 se divide en la gira de primavera "Earthbound" de la era Islands (transicional) y la gira de otoño de la era Wetton (Larks' Tongues), ya que la membresía de la banda cambió genuinamente a mitad de año.
Las eras de formación son una cuestión de interpretación de los fans, y este es un corte razonable, no el único. La definición completa vive en KING_CRIMSON_INCARNATIONS en src/king_crimson_mcp/server.py — edítalo (miembros, lanzamientos clave, límites de fecha) para que coincida con tu propia visión; la lógica de agregación no necesita cambiar.
Canción → lanzamientos (búsqueda inversa)
"¿Qué lanzamientos tienen Red?" se responde de dos maneras complementarias, porque el catálogo en vivo de King Crimson se divide limpiamente en álbumes de un solo show y compilaciones de varios shows.
Álbumes en vivo de un solo show, mapeados a eras — song_live_releases
Necesita dos cachés locales, construidas una vez:
refresh_setlist_cache— cada show y lo que se tocó (ya cubierto arriba).refresh_live_releases_cache— los lanzamientos en vivo oficiales de King Crimson desde MusicBrainz, con una fecha de grabación parseada de cada título cuando sea posible.
Ambas son construcciones de una sola vez: la historia de la banda es fija, por lo que ninguna caché necesita reconstruirse a menos que quieras recoger nuevas entradas de MusicBrainz.
Cómo funciona: las fechas de interpretación de una canción provienen de la caché de setlists; cada lanzamiento en vivo lleva una fecha de grabación parseada de su título (por ejemplo, "Live in Toronto – June 24, 1974"). Cuando la fecha de grabación de un lanzamiento coincide con una fecha en que se tocó la canción, se considera que ese lanzamiento contiene la canción. Esta es una regla sencilla y transparente: fiable para álbumes en vivo de un solo show.
Límites conocidos (por diseño): King Crimson tiene alrededor de 187 lanzamientos en vivo oficiales, de los cuales solo unos 87 (al momento de escribir esto) tienen un título que MusicBrainz pueda parsear a una fecha de grabación completa: ese es el rango que song_live_releases puede emparejar con confianza. Los otros ~100 (cajas, compilaciones, títulos sin fecha) no se pueden emparejar de esta manera; song_live_releases informa exactamente cuántos se omitieron en su campo coverage en lugar de subinformar silenciosamente. Las compilaciones de extractos también son un caso límite: una canción tocada en un show puede, en principio, emparejarse con el lanzamiento de ese show incluso si el lanzamiento específico es un disco de destacados que omite la pista: el emparejamiento por fecha no puede distinguir "grabado esa noche" de "incluido en el disco".
Cajas y compilaciones, listadas — song_box_sets
Las cajas y compilaciones de varios shows que song_live_releases no puede emparejar por fecha se cubren aquí, desde Discogs. Filtra los lanzamientos de King Crimson en Discogs a compilaciones y cajas (el formato contiene "Comp" o "Box", lo que excluye descargas de un solo show) y lista aquellos cuya lista de pistas contiene la canción: título, año, formato, enlace de Discogs y cuántas veces aparece la canción en cada uno.
Por qué no hay agrupación por eras aquí: Discogs no estructura fechas de grabación por pista, por lo que una caja no se puede dividir en eras como se hace con los álbumes de un solo show. song_box_sets por lo tanto lista las cajas que contienen una canción en lugar de clasificarlas: la precisión a nivel de era es trabajo de song_live_releases. Juntos cubren ambas mitades de la pregunta.
Necesita su propia caché de una sola vez: ejecuta refresh_box_sets_cache (aproximadamente un minuto; ~38 cajas/compilaciones de Discogs, al momento de escribir esto). Requiere DISCOGS_TOKEN.
Para Red, song_box_sets devuelve 14 cajas/compilaciones (los volúmenes "Collectors' King Crimson", "1972–1974", el "2015 Japan Tour Box", …), mientras que song_live_releases maneja el lado de un solo show.
La honestidad del informe de cobertura de ambas herramientas es el punto: los resultados son exactamente tan completos como los datos subyacentes lo permiten, y tú (o el agente que llama) puedes ver dónde profundizar en lugar de obtener una respuesta incompleta en silencio.
Inicio rápido
Tres pasos únicos, luego se ejecuta dentro de Claude.
Paso 1 — Instalar uv (una vez)
uv es una pequeña herramienta que puede obtener y ejecutar este servidor por ti.
- macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh - Windows (PowerShell):
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
Cierra y vuelve a abrir tu terminal después. Para comprobar que funcionó:
uv --version
Paso 2 — Obtén tus claves API gratuitas
Este servidor lee bases de datos musicales públicas. Dos de ellas necesitan una clave gratuita:
- setlist.fm (historial de actuaciones en vivo) — solicita una clave en https://api.setlist.fm/docs/1.0/index.html
- Discogs (ediciones físicas) — crea un token en Discogs → Configuración → Desarrolladores → Generar token
También debes establecer un correo electrónico de contacto (MCP_CONTACT) — MusicBrainz lo requiere para que
sus servidores sepan quién llama. Cualquier correo que poseas está bien.
(MusicBrainz y Cover Art Archive no necesitan clave.)
Paso 3 — Añádelo a Claude Desktop
Abre el archivo de configuración de Claude Desktop:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Añade esto (rellena tu correo y claves):
{
"mcpServers": {
"king-crimson": {
"command": "uvx",
"args": ["king-crimson-mcp"],
"env": {
"MCP_CONTACT": "you@example.com",
"SETLISTFM_API_KEY": "your-setlistfm-key",
"DISCOGS_TOKEN": "your-discogs-token"
}
}
}
}
Reinicia Claude Desktop. Las herramientas de King Crimson aparecerán automáticamente — no necesitas ejecutar nada en una terminal tú mismo.
Paso 4 — Primer uso
En Claude, pregunta algo como "Refresh the King Crimson setlist cache" una vez (descarga el historial completo de conciertos, ~40 segundos). Después, prueba "Show me the performance history of Starless" o "Which incarnations played 21st Century Schizoid Man?"
Solución de problemas
- "uvx: command not found" / el servidor no arranca en Claude Desktop.
uvno está instalado o no está en tu PATH. Repite el Paso 1, luego cierra por completo y vuelve a abrir Claude Desktop. En Windows puede que necesites la ruta completa auvxen el campocommand. - Aparece una advertencia si lo ejecutas manualmente en una terminal.
Ejecutar
uvx king-crimson-mcpdirectamente solo espera silenciosamente a un cliente — eso es normal (habla por stdin/stdout). No necesitas ejecutarlo a mano; Claude Desktop lo inicia y lo detiene por ti. Pulsa Ctrl+C para detenerlo. get_editions/ las herramientas de setlist devuelven un error sobre una clave faltante. La clave API de esa herramienta no está configurada en el bloqueenvde tu configuración. Ver Paso 2.- Los datos de setlist parecen incompletos para giras antiguas. setlist.fm es de envío de usuarios; algunos shows o canciones históricos simplemente no están registrados allí. Esto es una limitación de datos, no un error.
Instalación desde PyPI
Para desarrolladores — el mismo paquete que el Inicio rápido anterior, sin la configuración de Claude Desktop:
# run directly without installing (recommended)
uvx king-crimson-mcp
# or install as a persistent tool
pipx install king-crimson-mcp
king-crimson-mcp
Los secretos (MCP_CONTACT, DISCOGS_TOKEN, SETLISTFM_API_KEY) van ya sea en un archivo .env en el directorio desde el que ejecutas el comando, o directamente en el bloque env de la configuración de Claude Desktop (ver abajo) — cualquiera de los dos se lee. .env se carga desde el directorio de trabajo actual, ya que un paquete instalado no tiene un directorio de proyecto propio para mantenerlo.
Configuración desde el código fuente (desarrollo)
# Python 3.10+ required (3.12 recommended)
uv venv --python 3.12
source .venv/bin/activate
uv pip install -e .
# configure secrets
cp .env.example .env
# then edit .env
Variables .env:
MCP_CONTACT— requerida por la política de MusicBrainz; identifica tu aplicación a su API mediante el encabezado User-Agent.DISCOGS_TOKEN— necesaria paraget_editions(token de acceso personal de Discogs).SETLISTFM_API_KEY— necesaria paraget_live_history,refresh_setlist_cacheysong_performance_history.KC_CACHE_DIR— opcional; anula dónde se escribe la caché de setlists (ver abajo).
Ejecución
# quick tool check via MCP Inspector
mcp dev src/king_crimson_mcp/server.py
Ejecuta refresh_setlist_cache una vez primero — obtiene el historial completo de conciertos de King Crimson (~1,200 shows, ~40 segundos) y lo cachea localmente bajo $XDG_CACHE_HOME/king-crimson-mcp (o ~/.cache/king-crimson-mcp; anula con KC_CACHE_DIR) como setlists_<artist_mbid>.json. Después, song_performance_history lee desde la caché y devuelve al instante.
Ejecuta refresh_live_releases_cache una vez también si quieres song_live_releases — escribe live_releases_<artist_mbid>.json junto a la caché de setlists, en el mismo directorio. refresh_box_sets_cache de manera similar escribe box_sets_<artist_mbid>.json allí, para song_box_sets.
Registrar con Claude Desktop
Usando el paquete publicado:
{
"mcpServers": {
"king-crimson": {
"command": "uvx",
"args": ["king-crimson-mcp"],
"env": {
"MCP_CONTACT": "you@example.com",
"DISCOGS_TOKEN": "...",
"SETLISTFM_API_KEY": "..."
}
}
}
}
O, ejecutando desde un clon local en su lugar (después de uv pip install -e ., que instala el mismo script de consola king-crimson-mcp en el venv):
{
"mcpServers": {
"king-crimson": {
"command": "/absolute/path/to/.venv/bin/king-crimson-mcp",
"env": { "MCP_CONTACT": "you@example.com" }
}
}
}
Los secretos pueden vivir en .env (en el directorio desde el que se ejecuta el comando) en lugar del bloque env — cualquiera de los dos se lee.
Fuentes de datos y atribución
Este proyecto es un cliente no oficial sin afiliación ni respaldo de MusicBrainz, la Fundación MetaBrainz, el Archivo de Internet, Discogs o setlist.fm.
- MusicBrainz — gratuito, sin clave de API. Requiere un User-Agent identificativo con información de contacto (límite de velocidad: 1 petición/seg). Los datos son en gran parte CC0; acreditar a MusicBrainz en tu aplicación es una buena práctica.
refresh_live_releases_cachetambién usa esto: lista los grupos de lanzamientos en vivo oficiales de King Crimson (type=live) — no se necesita ningún servicio o clave adicional. - Cover Art Archive — un proyecto conjunto de MusicBrainz / Internet Archive. Las imágenes son aportadas por usuarios individuales; sigue la misma etiqueta de atribución que MusicBrainz.
- Discogs — requiere un token de acceso personal y un User-Agent único (60 peticiones/min autenticadas). El uso está sujeto a los términos de servicio de la API de Discogs.
song_box_setsusa la misma API de Discogs queget_editions(sin servicio o clave adicional). - setlist.fm — requiere una clave de API (solicítala en api.setlist.fm). Cualquier visualización de datos de setlist.fm debe incluir un enlace de atribución al setlist fuente — cada actuación devuelta por este servidor incluye su
urlprecisamente para ese propósito; muéstralo dondequiera que muestres los datos. Los datos de setlist.fm son enviados por los usuarios, por lo que no se garantiza su integridad ni precisión.
Limitaciones
- Los datos de setlist.fm son enviados por los usuarios — algunos conciertos o canciones pueden faltar o ser incorrectos, especialmente de giras antiguas.
- Los límites de las encarnaciones son una interpretación de la historia de la formación de King Crimson, no una taxonomía oficial.
- Los créditos de intérpretes dependen de lo que MusicBrainz haya catalogado para un lanzamiento dado; los lanzamientos más escasos producen créditos más escasos.
song_live_releasessolo puede coincidir con lanzamientos en vivo cuyo título produzca una fecha de grabación completa (aproximadamente la mitad de los ~187 lanzamientos en vivo oficiales de King Crimson); consulta Canción → lanzamientos arriba para ver qué está fuera de alcance y por qué.song_box_setsno puede clasificar cajas recopilatorias por encarnación — Discogs no estructura las fechas de grabación por pista, por lo que lista las cajas/compilaciones coincidentes en lugar de agruparlas por era. Un puñado de las ~38 compilaciones que escanea son colecciones de varios artistas donde King Crimson contribuyó solo con una pista; estas pueden aparecer como ruido para títulos de canciones muy comunes.
Licencia
MIT — consulta LICENSE.