Облегченный сервер Model Context Protocol (MCP) , который позволяет помощникам с искусственным интеллектом, таким как Cursor & Claude, управлять воспроизведением Spotify и управлять плейлистами.
Примеры взаимодействий
- «Включи первую песню Элвиса»
- «Создайте плейлист в стиле фьюжн Тейлор Свифт/Slipknot»
- «Скопировать все техно-треки из моего плейлиста для тренировок в мой рабочий плейлист»
Инструменты
Операции чтения
- поиск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
:
Вы можете добавить дополнительные инструменты в массив автоматического одобрения, чтобы запускать инструменты без вмешательства.
You must be authenticated.
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
Легкий сервер Model Context Protocol, который позволяет помощникам с искусственным интеллектом, таким как Cursor & Claude, управлять воспроизведением Spotify и управлять плейлистами.
Related MCP Servers
- -security-license-qualityA Model Context Protocol server that enables controlling Spotify playback through natural language commands in MCP clients like Cursor or Claude for Desktop.Last updated -1TypeScript
- -securityAlicense-qualityA Model Context Protocol server that allows AI assistants like Claude and Cursor to create music and control Sonic Pi programmatically through OSC messages.Last updated -JavaScriptMIT License
- -securityFlicense-qualityA Model Context Protocol server that enables AI assistants like Claude to interact with Spotify, allowing them to search for tracks, control playback, and manage playlists.Last updated -1TypeScript
- AsecurityAlicenseAqualityA Model Context Protocol server that enables real-time interaction with Ableton Live, allowing AI assistants to control song creation, track management, clip operations, and audio recording workflows.Last updated -232019TypeScriptMIT License