Skip to main content
Glama

spotify-mcp

Сервер Model Context Protocol (MCP), который связывает Claude со Spotify. Управляйте воспроизведением Spotify, ищите музыку, управляйте плейлистами и многое другое — и все это через естественное общение с Claude.

Примечание о форке: Этот проект является форком varunneal/spotify-mcp и обновлен для изменений в Spotify Web API от февраля 2026 года. Создан и поддерживается с помощью Claude Code.

Что изменилось (v0.4.0)

Переработка архитектуры

  • Удален spotipy — теперь используется httpx напрямую (нативный асинхронный режим, без обертки asyncio.to_thread)

  • Единый модуль — server.py, spotify_api.py, utils.py объединены в один файл

  • FastMCP — чистые декораторы @mcp.tool() вместо ручного ToolModel + маршрутизации match/case

  • 2 зависимости — только mcp + httpx (было mcp + spotipy + python-dotenv)

  • Явная OAuth — spotify-mcp --auth для первоначальной настройки, автоматическое обновление при последующем использовании

Функции (сохранены из v0.3.0)

  • Запуск, пауза и пропуск воспроизведения

  • Поиск треков, альбомов, исполнителей и плейлистов

  • Получение подробной информации о любом элементе Spotify

  • Управление очередью воспроизведения

  • Полный CRUD плейлистов (создание, чтение, обновление, удаление треков)

  • Получение понравившихся/сохраненных песен с опциональным обогащением жанрами

  • Адаптировано для изменений API Spotify от февраля 2026 года

Related MCP server: Spotify MCP Server

Как это работает

Claude <--MCP (stdio)--> spotify-mcp <--httpx async--> Spotify Web API
  1. Claude отправляет вызовы инструментов через протокол MCP

  2. Сервер переводит их в запросы к Spotify Web API с использованием httpx

  3. Токены OAuth обновляются автоматически; первоначальная авторизация через spotify-mcp --auth

  4. Результаты парсятся в лаконичный JSON и возвращаются в Claude

Доступные инструменты

Инструмент

Действия

Описание

spotify_playback

get, start, pause, skip, previous, volume

Управление воспроизведением музыки и громкостью

spotify_search

--

Поиск треков, альбомов, исполнителей, плейлистов

spotify_queue

get, add

Просмотр и управление очередью воспроизведения

spotify_get_info

--

Получение подробной информации об элементе по URI Spotify

spotify_playlist

get, get_tracks, add_tracks, remove_tracks, change_details, create, delete

Полное управление плейлистами

spotify_liked_songs

get, get_with_genres, like, unlike, check

Управление сохраненными песнями и проверка библиотеки

spotify_recently_played

--

Получение недавно прослушанных треков с метками времени

spotify_devices

list, transfer

Список устройств и перенос воспроизведения

Архитектура

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

Предварительные требования

  • Python 3.12+

  • Аккаунт Spotify Premium (требуется для доступа к API в режиме разработчика с февраля 2026 года)

  • Учетные данные Spotify Developer App

Конфигурация

1. Создание приложения Spotify Developer

  1. Перейдите на developer.spotify.com/dashboard

  2. Создайте новое приложение

  3. Установите URI перенаправления на http://127.0.0.1:8080/callback

  4. Запишите свой Client ID и Client Secret

Важно (февраль 2026): Приложения в режиме разработчика ограничены 5 авторизованными пользователями и требуют, чтобы у владельца приложения была подписка Spotify Premium.

2. Первоначальная аутентификация

Запустите процесс аутентификации один раз, чтобы получить токен OAuth:

SPOTIFY_CLIENT_ID=your_id SPOTIFY_CLIENT_SECRET=your_secret uv run spotify-mcp --auth

Это откроет браузер для входа в Spotify, а затем сохранит токен в ~/.spotify_mcp_cache.json.

3. Добавление в MCP-клиент

Запуск локально (рекомендуется)

git clone https://github.com/verIdyia/spotify-mcp.git

Добавьте в свою конфигурацию MCP (Claude Desktop, Cursor и т.д.):

{
  "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"
      }
    }
  }
}

Запуск с помощью uvx

{
  "mcpServers": {
    "spotify": {
      "command": "uvx",
      "args": [
        "--python", "3.12",
        "--from", "git+https://github.com/verIdyia/spotify-mcp",
        "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"
      }
    }
  }
}

Переменные окружения

Переменная

Обязательно

По умолчанию

Описание

SPOTIFY_CLIENT_ID

Да

--

Client ID приложения Spotify

SPOTIFY_CLIENT_SECRET

Да

--

Client Secret приложения Spotify

SPOTIFY_REDIRECT_URI

Нет

http://127.0.0.1:8080/callback

URI перенаправления OAuth

SPOTIFY_CACHE_PATH

Нет

~/.spotify_mcp_cache.json

Путь к файлу кэша токенов

Устранение неполадок

  1. Первый запуск: Выполните spotify-mcp --auth для завершения процесса OAuth перед использованием с MCP-клиентом

  2. Токен истек: Токены обновляются автоматически. Если проблемы сохраняются, повторно запустите --auth

  3. Нет активного устройства: Убедитесь, что Spotify открыт и воспроизводит музыку хотя бы на одном устройстве

  4. Убедитесь, что uv обновлен — рекомендуется версия >=0.54

Отладка

Запустите инспектор MCP:

npx @modelcontextprotocol/inspector uv --directory /path/to/spotify-mcp run spotify-mcp

Сводка изменений Spotify API от февраля 2026 года

Изменение

Влияние

Статус

Максимальный limit поиска снижен с 50 до 10

Меньше результатов на поиск

Адаптировано

Эндпоинты плейлистов /tracks -> /items

URL эндпоинтов изменены

Адаптировано

Поле ответа tracks -> items

Парсинг обновлен

Адаптировано

Пакетные GET-эндпоинты удалены

Необходимо получать по отдельности

Адаптировано

Поле popularity удалено из треков

Больше недоступно

Обработано

Режим разработчика: лимит 5 пользователей, требуется Premium

Ограничение доступа

Задокументировано

Авторы

  • Оригинальный проект: varunneal/spotify-mcp от Varun Srivastava (лицензия MIT)

  • Оригинальные участники: @jamiew, @davidpadbury, @manncodes, @hyuma7, @aanurraj, @JJGO и другие

  • Создано с помощью: httpx, MCP SDK

  • Поддерживается с помощью: Claude Code (Anthropic)

Лицензия

Лицензия MIT — подробности см. в LICENSE.

Available Tools

6 tools
SpotifyGetInfoC

Get detailed information about a Spotify item...

Inputs: item_uri (required).

SpotifyLikedSongsC

Get user's liked (saved) songs from Spotify library.

Inputs: action (required), limit.

SpotifyPlaybackC

Manages the current playback...

Inputs: action (required), spotify_uri, num_skips.

SpotifyPlaylistC

Manage Spotify playlists.

Inputs: action (required), playlist_id, track_ids, name, +2 more.

SpotifyQueueC

Manage the playback queue - get the queue or add tracks.

Inputs: action (required), track_id.

SpotifySearchC

Search for tracks, albums, artists, or playlists on Spotify.

Inputs: query (required), qtype, limit.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose targeting different Spotify resources: GetInfo for item details, LikedSongs for saved songs, Playback for current playback control, Playlist for playlist management, Queue for queue operations, and Search for finding content. There is no overlap or ambiguity between these functions.

    Naming Consistency5/5

    All tools follow a consistent 'Spotify' prefix with descriptive noun-based naming (e.g., SpotifyGetInfo, SpotifyPlaylist). The pattern is uniform across all six tools, making them easily identifiable and predictable.

    Tool Count5/5

    With 6 tools, this server is well-scoped for Spotify integration, covering key areas like playback, playlists, search, and user library. Each tool serves a specific, necessary function without bloat or redundancy.

    Completeness4/5

    The toolset covers core Spotify functionalities including search, playback control, playlist management, and user data access. Minor gaps might include operations like following artists or managing user profile settings, but the provided tools support most common workflows effectively.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      F
      maintenance
      An MCP server that enables users to control Spotify playback, search for music, and manage playlists through MCP-compatible clients. It supports features like track recommendations and playback management using secure OAuth authentication.
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      MCP server for the Spotify Web API — gives Claude and other AI assistants tools to search music, control playback, manage playlists, library, and podcasts.
      47
      5
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      An unofficial MCP server that provides access to Spotify's Web API through the Model Context Protocol, enabling AI assistants to search music, manage playlists, and control playback.
      30 npm
      9
      ISC
    • A
      license
      B
      quality
      D
      maintenance
      A Model Context Protocol server that enables searching and managing Spotify music, playlists, artists, albums, and audiobooks through natural language.
      24
      93 npm
      MIT