Spotify MCP Server
Облегченный сервер Model Context Protocol (MCP) , который позволяет помощникам с искусственным интеллектом, таким как Cursor & Claude, управлять воспроизведением Spotify и управлять плейлистами.
Примеры взаимодействий
«Включи первую песню Элвиса»
«Создайте плейлист в стиле фьюжн Тейлор Свифт/Slipknot»
«Скопировать все техно-треки из моего плейлиста для тренировок в мой рабочий плейлист»
Related MCP server: Vulpes Spotify MCP Server
Инструменты
Операции чтения
поиск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
Установка
git clone https://github.com/marcelmarais/spotify-mcp-server.git
cd spotify-mcp-server
npm install
npm run buildСоздание приложения для разработчиков Spotify
Перейдите на панель инструментов разработчика Spotify.
Войдите в систему, используя свою учетную запись Spotify.
Нажмите кнопку «Создать приложение».
Введите название и описание приложения.
Примите Условия обслуживания и нажмите «Создать»
На панели инструментов вашего нового приложения вы увидите свой идентификатор клиента.
Нажмите «Показать секрет клиента», чтобы раскрыть свой секрет клиента.
Нажмите «Изменить настройки» и добавьте URI перенаправления (например,
http://localhost:8888/callback).Сохраните изменения
Конфигурация API Spotify
Создайте файл spotify-config.json в корне проекта (вы можете скопировать и изменить предоставленный пример):
# Copy the example config file
cp spotify-config.example.json spotify-config.jsonЗатем отредактируйте файл, указав свои учетные данные:
{
"clientId": "your-client-id",
"clientSecret": "your-client-secret",
"redirectUri": "http://localhost:8888/callback"
}Процесс аутентификации
API Spotify использует OAuth 2.0 для аутентификации. Выполните следующие шаги для аутентификации вашего приложения:
Запустите скрипт аутентификации:
npm run authСкрипт сгенерирует URL авторизации. Откройте этот URL в вашем веб-браузере.
Вам будет предложено войти в Spotify и авторизовать свое приложение.
После авторизации Spotify перенаправит вас на указанный вами URI перенаправления с параметром code в URL.
Скрипт аутентификации автоматически обменяет этот код на токены доступа и обновления.
Эти токены будут сохранены в вашем файле
spotify-config.json, который теперь будет выглядеть примерно так:
{
"clientId": "your-client-id",
"clientSecret": "your-client-secret",
"redirectUri": "http://localhost:8888/callback",
"accessToken": "BQAi9Pn...kKQ",
"refreshToken": "AQDQcj...7w",
"expiresAt": 1677889354671
}При необходимости сервер автоматически обновит токен доступа, используя токен обновления.
Интеграция с Claude Desktop, Cursor и VsCode через расширение модели Cline
Чтобы использовать ваш сервер MCP с Claude Desktop, добавьте его в конфигурацию Claude:
{
"mcpServers": {
"spotify": {
"command": "node",
"args": ["spotify-mcp-server/build/index.js"]
}
}
}Для курсора перейдите на вкладку MCP в Cursor Settings (command + shift + J). Добавьте сервер с помощью этой команды:
node path/to/spotify-mcp-server/build/index.jsЧтобы правильно настроить MCP с помощью Cline, убедитесь, что у вас есть следующий набор конфигурации файла cline_mcp_settings.json :
{
"mcpServers": {
"spotify": {
"command": "node",
"args": ["~/../spotify-mcp-server/build/index.js"],
"autoApprove": ["getListeningHistory", "getNowPlaying"]
}
}
}Вы можете добавить дополнительные инструменты в массив автоматического одобрения, чтобы запускать инструменты без вмешательства.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables controlling Spotify playback through natural language commands in MCP clients like Cursor or Claude for Desktop.1
- FlicenseNot gradedqualityDmaintenanceA 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.1
- FlicenseAqualityDmaintenanceA Model Context Protocol server that enables AI assistants like Claude Desktop to interact with Spotify's music streaming service, supporting playback control, playlist management, music search, and user profile access.412
- AlicenseBqualityAmaintenanceMCP server for the Spotify Web API — gives Claude and other AI assistants tools to search music, control playback, manage playlists, library, and podcasts.59MIT
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/marcelmarais/spotify-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server