VS

veridyia/spotify-mcp

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

8 stars 9 forks 质量 76 趋势 20MIT

Spotify MCP server for Claude - updated for Feb 2026 API changes

概览

A Model Context Protocol (MCP) server that connects Claude with Spotify. Control your Spotify playback, search music, manage playlists, and more -- all through natural conversation with Claude. : This project is forked from varunneal/spotify-mcp and updated for the . Built and maintained with Claude Code. - -- uses httpx async directly (native async, no asyncio.to_thread wrapping) - -- server.py, spotify_api.py, utils.py consolidated into one file - -- clean @mcp.tool() decorators instead of manual ToolModel + match/case routing - -- only mcp + httpx (was mcp + spotipy + python-dotenv) - -- spotify-mcp --auth for initial setup, auto-refresh on subsequent use - Start, pause, and skip playback - Search for tracks, albums, artists, and playlists - Get detailed info about any Spotify item - Manage the playback queue - Full playlist CRUD (create, read, update, delete tracks) - Retrieve liked/saved songs with optional genre enrichment - Adapted for Spotify Feb 2026 API changes 1.

README

以下为原文 README 节选,完整内容请查看原文。

spotify-mcp

A Model Context Protocol (MCP) server that connects Claude with Spotify. Control your Spotify playback, search music, manage playlists, and more – all through natural conversation with Claude.

Fork Notice: This project is forked from varunneal/spotify-mcp and updated for the Spotify Web API February 2026 changes. Built and maintained with Claude Code.

What’s Changed (v0.4.0)

Architecture Rewrite

  • Dropped spotipy – uses httpx async directly (native async, no asyncio.to_thread wrapping)
  • Single module – server.py, spotify_api.py, utils.py consolidated into one file
  • FastMCP – clean @mcp.tool() decorators instead of manual ToolModel + match/case routing
  • 2 dependencies – only mcp + httpx (was mcp + spotipy + python-dotenv)
  • Explicit OAuth – spotify-mcp --auth for initial setup, auto-refresh on subsequent use

Features (preserved from v0.3.0)

  • Start, pause, and skip playback
  • Search for tracks, albums, artists, and playlists
  • Get detailed info about any Spotify item
  • Manage the playback queue
  • Full playlist CRUD (create, read, update, delete tracks)
  • Retrieve liked/saved songs with optional genre enrichment
  • Adapted for Spotify Feb 2026 API changes

How It Works

Claude  spotify-mcp  Spotify Web API
  1. Claude sends tool calls via the MCP protocol
  2. The server translates them into Spotify Web API requests using httpx
  3. OAuth tokens auto-refresh; initial auth via spotify-mcp --auth
  4. Results are parsed into concise JSON and returned to Claude

Available Tools

Tool Actions Description
spotify_playback get, start, pause, skip, previous, volume Control music playback and volume
spotify_search – Search tracks, albums, artists, playlists
spotify_queue get, add View and manage play queue
spotify_get_info – Get detailed item info by Spotify URI
spotify_playlist get, get_tracks, add_tracks, remove_tracks, change_details, create, delete Full playlist management
spotify_liked_songs get, get_with_genres, like, unlike, check Manage saved songs and check library
spotify_recently_played – Get recently played tracks with timestamps
spotify_devices list, transfer List devices and transfer playback

Architecture

src/spotify_mcp/
  __init__.py   # Entry point (stdio / --auth)
  server.py     # FastMCP server, API client, parsers — all in one

Prerequisites

  • Python 3.12+
  • Spotify Premium account (required for Dev Mode API access since Feb 2026)
  • Spotify Developer App credentials

Configuration

1. Create Spotify Developer App

在 GitHub 查看完整 README

安装

uvx --python 3.12 --from git+https://github.com/verIdyia/spotify-mcp spotify-mcp
新手?先看 mcpskill.org 教程 →

配置

{ "mcpServers": { "spotify": { "command": "uv", "args": [ "--directory", "/path/to/spotify-mcp", "run", "spotify-mcp" ], "env": { "SPOTIFY_CLIENT_ID": "your_client_id", "SPOTIFY_CLIENT_SECRET": "your_client_secret", "SPOTIFY_REDIRECT_URI": "http://127.0.0.1:8080/callback" } } } }