Облегченный сервер Model Context Protocol (MCP) , который позволяет помощникам с искусственным интеллектом, таким как Cursor & Claude, управлять воспроизведением Spotify и управлять плейлистами.
Примеры взаимодействий
«Включи первую песню Элвиса»
«Создайте плейлист в стиле фьюжн Тейлор Свифт/Slipknot»
«Скопировать все техно-треки из моего плейлиста для тренировок в мой рабочий плейлист»
Related MCP server: Sonic Pi MCP
Инструменты
Операции чтения
поискSpotify
Описание : Поиск треков, альбомов, исполнителей или плейлистов на Spotify.
Параметры :
query(строка): поисковый терминtype(строка): Тип элемента для поиска (трек, альбом, исполнитель, плейлист)limit(число, необязательно): максимальное количество возвращаемых результатов (10-50)
Возвраты : список соответствующих товаров с их идентификаторами, названиями и дополнительными данными.
Пример :
searchSpotify("bohemian rhapsody", "track", 20)
getNowPlaying
Описание : Получить информацию о воспроизводимом в данный момент треке на Spotify
Параметры : Нет
Возвращает : объект, содержащий название трека, исполнителя, альбом, ход воспроизведения, длительность и состояние воспроизведения.
Пример :
getNowPlaying()
получитьMyPlaylists
Описание : Получить список плейлистов текущего пользователя на Spotify.
Параметры :
limit(число, необязательно): максимальное количество возвращаемых плейлистов (по умолчанию: 20)offset(число, необязательно): индекс первого возвращаемого плейлиста (по умолчанию: 0)
Возвращает : Массив плейлистов с их идентификаторами, названиями, количеством треков и публичным статусом.
Пример :
getMyPlaylists(10, 0)
получитьPlaylistTracks
Описание : Получить список треков в определенном плейлисте Spotify.
Параметры :
playlistId(строка): идентификатор Spotify плейлиста.limit(число, необязательно): максимальное количество возвращаемых треков (по умолчанию: 100)offset(число, необязательно): индекс первой возвращаемой дорожки (по умолчанию: 0)
Возвращает : Массив треков с их идентификаторами, названиями, исполнителями, альбомами, продолжительностью и датой добавления.
Пример :
getPlaylistTracks("37i9dQZEVXcJZyENOWUFo7")
получитьНедавноВоспроизведено
Описание : Извлекает список недавно воспроизведенных треков из Spotify.
Параметры :
limit(число, необязательно): число, указывающее максимальное количество возвращаемых треков.
Возвращает : Если треки найдены, возвращается отформатированный список недавно воспроизведенных треков, в противном случае возвращается сообщение: «У вас нет недавно воспроизведенных треков на Spotify».
Пример :
getRecentlyPlayed({ limit: 10 })
получитьНедавноВоспроизведено
Описание : Извлекает список недавно воспроизведенных треков из Spotify.
Параметры :
limit(число, необязательно): число, указывающее максимальное количество возвращаемых треков.
Возвращает : Если треки найдены, возвращается отформатированный список недавно воспроизведенных треков, в противном случае возвращается сообщение: «У вас нет недавно воспроизведенных треков на Spotify».
Пример :
getRecentlyPlayed({ limit: 10 })
Воспроизведение/Создание операций
playMusic
Описание : Начните воспроизведение трека, альбома, исполнителя или плейлиста на Spotify.
Параметры :
uri(строка, необязательно): URI Spotify элемента для воспроизведения (переопределяет тип и идентификатор)type(строка, необязательно): Тип элемента для воспроизведения (трек, альбом, исполнитель, плейлист)id(строка, необязательно): идентификатор Spotify элемента для воспроизведенияdeviceId(строка, необязательно): идентификатор устройства для воспроизведения
Возвращает : статус успеха
Пример :
playMusic({ uri: "spotify:track:6rqhFgbbKwnb9MLmUQDhG6" })Альтернатива :
playMusic({ type: "track", id: "6rqhFgbbKwnb9MLmUQDhG6" })
паузаВоспроизведение
Описание : Приостановка текущего трека на Spotify.
Параметры :
deviceId(строка, необязательно): идентификатор устройства, которое нужно приостановить
Возвращает : статус успеха
Пример :
pausePlayback()
перейти к следующему
Описание : Переход к следующему треку в текущей очереди воспроизведения.
Параметры :
deviceId(строка, необязательно): идентификатор устройства
Возвращает : статус успеха
Пример :
skipToNext()
Перейти к предыдущему
Описание : Переход к предыдущему треку в текущей очереди воспроизведения.
Параметры :
deviceId(строка, необязательно): идентификатор устройства
Возвращает : статус успеха
Пример :
skipToPrevious()
создатьПлейлист
Описание : Создайте новый плейлист на Spotify
Параметры :
name(строка): Имя для нового плейлистаdescription(строка, необязательно): Описание для плейлистаpublic(логическое значение, необязательно): должен ли плейлист быть общедоступным (по умолчанию: false)
Возвращает : объект с идентификатором и URL нового плейлиста.
Пример :
createPlaylist({ name: "Workout Mix", description: "Songs to get pumped up", public: false })
добавитьТрекиВПлейлист
Описание : Добавить треки в существующий плейлист Spotify.
Параметры :
playlistId(строка): идентификатор плейлистаtrackUris(массив): Массив URI или идентификаторов треков для добавленияposition(номер, необязательно): позиция для вставки дорожек
Возвращает : статус успешного выполнения и идентификатор снимка.
Пример :
addTracksToPlaylist({ playlistId: "3cEYpjA9oz9GiPac4AsH4n", trackUris: ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh"] })
добавить в очередь
Описание : Добавляет трек, альбом, исполнителя или плейлист в текущую очередь воспроизведения.
Параметры :
uri(строка, необязательно): URI Spotify элемента для добавления в очередь (переопределяет тип и идентификатор)type(строка, необязательно): Тип элемента для очереди (трек, альбом, исполнитель, плейлист)id(строка, необязательно): идентификатор Spotify элемента для очередиdeviceId(строка, необязательно): идентификатор устройства для постановки в очередь
Возвращает : статус успеха
Пример :
addToQueue({ uri: "spotify:track:6rqhFgbbKwnb9MLmUQDhG6" })Альтернатива :
addToQueue({ type: "track", id: "6rqhFgbbKwnb9MLmUQDhG6" })
Настраивать
Предпосылки
Node.js v16+
Премиум-аккаунт Spotify
Зарегистрированное приложение Spotify Developer
Установка
Создание приложения для разработчиков Spotify
Перейдите на панель инструментов разработчика Spotify.
Войдите в систему, используя свою учетную запись Spotify.
Нажмите кнопку «Создать приложение».
Введите название и описание приложения.
Примите Условия обслуживания и нажмите «Создать»
На панели инструментов вашего нового приложения вы увидите свой идентификатор клиента.
Нажмите «Показать секрет клиента», чтобы раскрыть свой секрет клиента.
Нажмите «Изменить настройки» и добавьте URI перенаправления (например,
http://localhost:8888/callback).Сохраните изменения
Конфигурация API Spotify
Создайте файл spotify-config.json в корне проекта (вы можете скопировать и изменить предоставленный пример):
Затем отредактируйте файл, указав свои учетные данные:
Процесс аутентификации
API Spotify использует OAuth 2.0 для аутентификации. Выполните следующие шаги для аутентификации вашего приложения:
Запустите скрипт аутентификации:
Скрипт сгенерирует URL авторизации. Откройте этот URL в вашем веб-браузере.
Вам будет предложено войти в Spotify и авторизовать свое приложение.
После авторизации Spotify перенаправит вас на указанный вами URI перенаправления с параметром code в URL.
Скрипт аутентификации автоматически обменяет этот код на токены доступа и обновления.
Эти токены будут сохранены в вашем файле
spotify-config.json, который теперь будет выглядеть примерно так:
При необходимости сервер автоматически обновит токен доступа, используя токен обновления.
Интеграция с Claude Desktop, Cursor и VsCode через расширение модели Cline
Чтобы использовать ваш сервер MCP с Claude Desktop, добавьте его в конфигурацию Claude:
Для курсора перейдите на вкладку MCP в Cursor Settings (command + shift + J). Добавьте сервер с помощью этой команды:
Чтобы правильно настроить MCP с помощью Cline, убедитесь, что у вас есть следующий набор конфигурации файла cline_mcp_settings.json :
Вы можете добавить дополнительные инструменты в массив автоматического одобрения, чтобы запускать инструменты без вмешательства.