Figma Context MCP
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
Descripción del creador (original en inglés)
Public Spotify metadata, lyrics and podcasts for LLM agents. No API key, read-only.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
SPOTIFY_SP_DCLos valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"spotifyscraper": {
"command": "uvx",
"args": [
"spotifyscraper"
],
"env": {
"SPOTIFY_SP_DC": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add spotifyscraper --env SPOTIFY_SP_DC=your-value -- uvx spotifyscraperCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"spotifyscraper": {
"command": "uvx",
"args": [
"spotifyscraper"
],
"env": {
"SPOTIFY_SP_DC": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"spotifyscraper": {
"type": "stdio",
"command": "uvx",
"args": [
"spotifyscraper"
],
"env": {
"SPOTIFY_SP_DC": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub AliAkhtari78, dueña del repo
Último cambio de código: hace 2 meses
Usa MIT
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 3 de 3 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
Debes completar: SPOTIFY_SP_DC
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez hace 2 meses, y la última versión (3.9.2) llegó al registro hace 4 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.
En la misma categoría: Figma Context MCP, Claude Real Video, Figma MCP Server
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
Let any LLM watch a video locally — and search everything it has ever watched.
The Figma MCP server brings Figma design context directly into your AI workflow.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
Extract public Spotify data — tracks, albums, artists, playlists, and podcasts — without the official API or an API key.
🎧 [Try it live in your browser →](https://aliakhtari.com/spotify/) — paste any Spotify link and watch SpotifyScraper pull typed data, cover art, and a preview, with the exact Python that does it. (How it was built.)
SpotifyScraper bootstraps an anonymous token from Spotify's own public embed pages and reads the same JSON endpoints the web player uses, returning typed, immutable models. v3 is a ground-up rewrite focused on reliability and a clean, modern API. Public data needs no login; the opt-in logged-in features (lyrics, podcast transcripts, and account info) add your own Spotify sp_dc cookie — never a password or an API key.
Upgrading from v2? See the migration guide. The previous line lives on the
v2.xbranch.
spotipy wraps Spotify's official Web API — the right choice when you need to write to a user's account or read private/library data. SpotifyScraper reads the public data the web player already exposes, so it skips the setup entirely.
| SpotifyScraper | spotipy (official API) | |
|---|---|---|
| API key / app registration | ❌ not needed | ✅ required |
| OAuth flow | ❌ not needed | ✅ required for most data |
| Rate-limit quota / billing | none | Spotify quota |
| Sync and async | ✅ | sync only |
| Fully typed, immutable models | ✅ | partial |
| Lyrics & podcast transcripts | ✅ (cookie) | ❌ |
| MCP server for Claude / LLM agents | ✅ | ❌ |
| Write / playback / private data | ❌ (read-only public) | ✅ |
Use spotipy for authenticated writes and private, market-accurate data; use SpotifyScraper for fast, key-free access to public metadata, lyrics, and previews — plus a drop-in MCP server for AI agents.
Hit by the official-API deprecations? Spotify's
audio-features,
recommendations, andrelated-artistsendpoints have returned403for new
apps since Nov 2024. SpotifyScraper still returns **related artists and
recommendations** with no API key. (It can't bring back
audio-features—
Spotify removed that data entirely, from every tool.)
pip install spotifyscraper # core (only depends on httpx)
pip install "spotifyscraper[media]" # + cover/preview embedding (mutagen) pip install "spotifyscraper[browser]" # + Playwright browser fallback & login pip install "spotifyscraper[cli]" # + the spotifyscraper command-line tool pip install "spotifyscraper[keyring]" # + store the login cookie in the OS keyring pip install "spotifyscraper[mcp]" # + the spotifyscraper-mcp MCP server for LLM hosts pip install "spotifyscraper[all]" # everything
Python 3.10+.
from spotify_scraper import SpotifyClient
with SpotifyClient() as client: track = client.get_track("https://open.spotify.com/track/4uLU6hMCjMI75M1A2tKUQC") print(track.name, "—", track.artists[0].name) print(track.duration_ms, "ms |", track.preview_url)
print(track.to_dict()) # JSON-safe dict, if you prefer dicts
Every entity has its own method — get_track, get_album, get_artist, get_playlist, get_episode, get_show — each accepting a URL, URI, or bare ID.
import asyncio
from spotify_scraper import AsyncSpotifyClient
async def main(): async with AsyncSpotifyClient() as client: track, album = await asyncio.gather( client.get_track("4uLU6hMCjMI75M1A2tKUQC"), client.get_album("6N9PS4QXF1D0OWPk0Sxtb4"), ) print(track.name, "|", album.name)
asyncio.run(main())
from spotify_scraper import SpotifyClient
with SpotifyClient() as client: track = client.get_track("4uLU6hMCjMI75M1A2tKUQC") client.download_cover(track, dest="covers/") client.download_preview(track, dest="previews/", embed_cover=True) # needs [media]
Pass locale — a BCP-47 language tag: a bare language subtag ("de", "ja") or a language-region tag ("ja-JP") — to localize the *language* of display names. Set it per client or override it per call:
with SpotifyClient(locale="ja-JP") as client: # default for every call
track = client.get_track("4uLU6hMCjMI75M1A2tKUQC") other = client.get_track("4uLU6hMCjMI75M1A2tKUQC", locale="de-DE") # per-call wins
It is sent as the Accept-Language header and changes only how names are *spelled*. It is not a country/market code — a bare "US" is meaningless as a language and is ignored — and it does not filter regional availability or vary preview URLs: anonymous Spotify resolves country from the request IP, and its pathfinder silently ignores a market variable. True market/availability filtering requires the authenticated Web API, which this library does not implement; for region-specific results, point the client's proxy at the target region. See the localization guide.
SearchResults.get_user() (name, follower counts, public playlists).spotifyscraper-mcp (batch tools + a one-call get_track_visuals); also ships as a container on ghcr.io.locale) to set the language of names.get_account() / is_premium(), plus cookie-free session_info().get_*s([...]) with partial-failure-safe results and managed concurrency.to_dict() / from_dict().httpx); media and browser support are optional extras.With the cli extra installed, a spotifyscraper command is available:
spotifyscraper track 4uLU6hMCjMI75M1A2tKUQC # entity metadata as JSON
spotifyscraper playlist --max-tracks 50 --pretty spotifyscraper download preview -o ./previews --embed-cover
Every command emits JSON, so it composes with tools like jq. See the CLI guide.
Each getter has a plural sibling (get_tracks, get_albums, …) that fetches many inputs and returns one BatchItem per input — index-aligned, and a dead input never aborts the rest:
items = client.get_tracks(["4uLU6hMCjMI75M1A2tKUQC", "bad-id"])
ok = [i.result for i in items if i.ok] failed = {i.value: i.error for i in items if not i.ok}
The async client runs them concurrently, bounded by max_concurrency (default 5). See the batch guide.
For repeated lookups, enable an opt-in persistent cache. It only stores token-free pathfinder responses — never the embed pages that carry the anonymous token — so no credential is ever written to disk:
from spotify_scraper import SpotifyClient, CacheConfig, FileCache
with SpotifyClient(cache=CacheConfig(store=FileCache())) as client: client.get_track("4uLU6hMCjMI75M1A2tKUQC") # first call hits the network client.get_track("4uLU6hMCjMI75M1A2tKUQC") # served from the cache
Default TTL is 24h; the FileCache is stdlib-only and the backend is pluggable. See the caching guide.
search() runs one anonymous, aggregate query across every entity type and returns a typed SearchResults:
from spotify_scraper import SpotifyClient
with SpotifyClient() as client: results = client.search("daft punk", types=("track", "artist"), limit=5) print(results.total, "track matches") for track in results.tracks: print(track.name, "—", track.artists[0].name)
Hits are sparse (pass an id to get_album()/get_show() for the full entity); total is the track-match count. See the search guide.
Lyrics and podcast transcripts need a Spotify account cookie (sp_dc); the library handles the token handshake for you, and one cookie powers both:
from spotify_scraper import SpotifyClient
with SpotifyClient(cookies="cookies.txt") as client: # or cookies={"sp_dc": "..."} lyrics = client.get_lyrics("4uLU6hMCjMI75M1A2tKUQC") for line in lyrics.lines: print(line.start_ms, line.text)
transcript = client.get_transcript("07gKzPFkbvGF0cHoeG7ARS") # a podcast episode for line in transcript.lines: print(line.s