Skip to main content
Glama

Spotify MCP Server

by marcelmarais

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

Примеры взаимодействий

  • «Включи первую песню Элвиса»
  • «Создайте плейлист в стиле фьюжн Тейлор Свифт/Slipknot»
  • «Скопировать все техно-треки из моего плейлиста для тренировок в мой рабочий плейлист»

Инструменты

Операции чтения

  1. поискSpotify
    • Описание : Поиск треков, альбомов, исполнителей или плейлистов на Spotify.
    • Параметры :
      • query (строка): поисковый термин
      • type (строка): Тип элемента для поиска (трек, альбом, исполнитель, плейлист)
      • limit (число, необязательно): максимальное количество возвращаемых результатов (10-50)
    • Возвраты : список соответствующих товаров с их идентификаторами, названиями и дополнительными данными.
    • Пример : searchSpotify("bohemian rhapsody", "track", 20)
  2. getNowPlaying
    • Описание : Получить информацию о воспроизводимом в данный момент треке на Spotify
    • Параметры : Нет
    • Возвращает : объект, содержащий название трека, исполнителя, альбом, ход воспроизведения, длительность и состояние воспроизведения.
    • Пример : getNowPlaying()
  3. получитьMyPlaylists
    • Описание : Получить список плейлистов текущего пользователя на Spotify.
    • Параметры :
      • limit (число, необязательно): максимальное количество возвращаемых плейлистов (по умолчанию: 20)
      • offset (число, необязательно): индекс первого возвращаемого плейлиста (по умолчанию: 0)
    • Возвращает : Массив плейлистов с их идентификаторами, названиями, количеством треков и публичным статусом.
    • Пример : getMyPlaylists(10, 0)
  4. получитьPlaylistTracks
    • Описание : Получить список треков в определенном плейлисте Spotify.
    • Параметры :
      • playlistId (строка): идентификатор Spotify плейлиста.
      • limit (число, необязательно): максимальное количество возвращаемых треков (по умолчанию: 100)
      • offset (число, необязательно): индекс первой возвращаемой дорожки (по умолчанию: 0)
    • Возвращает : Массив треков с их идентификаторами, названиями, исполнителями, альбомами, продолжительностью и датой добавления.
    • Пример : getPlaylistTracks("37i9dQZEVXcJZyENOWUFo7")
  5. получитьНедавноВоспроизведено
    • Описание : Извлекает список недавно воспроизведенных треков из Spotify.
    • Параметры :
      • limit (число, необязательно): число, указывающее максимальное количество возвращаемых треков.
    • Возвращает : Если треки найдены, возвращается отформатированный список недавно воспроизведенных треков, в противном случае возвращается сообщение: «У вас нет недавно воспроизведенных треков на Spotify».
    • Пример : getRecentlyPlayed({ limit: 10 })
  6. получитьНедавноВоспроизведено
    • Описание : Извлекает список недавно воспроизведенных треков из Spotify.
    • Параметры :
      • limit (число, необязательно): число, указывающее максимальное количество возвращаемых треков.
    • Возвращает : Если треки найдены, возвращается отформатированный список недавно воспроизведенных треков, в противном случае возвращается сообщение: «У вас нет недавно воспроизведенных треков на Spotify».
    • Пример : getRecentlyPlayed({ limit: 10 })

Воспроизведение/Создание операций

  1. playMusic
    • Описание : Начните воспроизведение трека, альбома, исполнителя или плейлиста на Spotify.
    • Параметры :
      • uri (строка, необязательно): URI Spotify элемента для воспроизведения (переопределяет тип и идентификатор)
      • type (строка, необязательно): Тип элемента для воспроизведения (трек, альбом, исполнитель, плейлист)
      • id (строка, необязательно): идентификатор Spotify элемента для воспроизведения
      • deviceId (строка, необязательно): идентификатор устройства для воспроизведения
    • Возвращает : статус успеха
    • Пример : playMusic({ uri: "spotify:track:6rqhFgbbKwnb9MLmUQDhG6" })
    • Альтернатива : playMusic({ type: "track", id: "6rqhFgbbKwnb9MLmUQDhG6" })
  2. паузаВоспроизведение
    • Описание : Приостановка текущего трека на Spotify.
    • Параметры :
      • deviceId (строка, необязательно): идентификатор устройства, которое нужно приостановить
    • Возвращает : статус успеха
    • Пример : pausePlayback()
  3. перейти к следующему
    • Описание : Переход к следующему треку в текущей очереди воспроизведения.
    • Параметры :
      • deviceId (строка, необязательно): идентификатор устройства
    • Возвращает : статус успеха
    • Пример : skipToNext()
  4. Перейти к предыдущему
    • Описание : Переход к предыдущему треку в текущей очереди воспроизведения.
    • Параметры :
      • deviceId (строка, необязательно): идентификатор устройства
    • Возвращает : статус успеха
    • Пример : skipToPrevious()
  5. создатьПлейлист
    • Описание : Создайте новый плейлист на Spotify
    • Параметры :
      • name (строка): Имя для нового плейлиста
      • description (строка, необязательно): Описание для плейлиста
      • public (логическое значение, необязательно): должен ли плейлист быть общедоступным (по умолчанию: false)
    • Возвращает : объект с идентификатором и URL нового плейлиста.
    • Пример : createPlaylist({ name: "Workout Mix", description: "Songs to get pumped up", public: false })
  6. добавитьТрекиВПлейлист
    • Описание : Добавить треки в существующий плейлист Spotify.
    • Параметры :
      • playlistId (строка): идентификатор плейлиста
      • trackUris (массив): Массив URI или идентификаторов треков для добавления
      • position (номер, необязательно): позиция для вставки дорожек
    • Возвращает : статус успешного выполнения и идентификатор снимка.
    • Пример : addTracksToPlaylist({ playlistId: "3cEYpjA9oz9GiPac4AsH4n", trackUris: ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh"] })
  7. добавить в очередь
    • Описание : Добавляет трек, альбом, исполнителя или плейлист в текущую очередь воспроизведения.
      • Параметры :
      • 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

  1. Перейдите на панель инструментов разработчика Spotify.
  2. Войдите в систему, используя свою учетную запись Spotify.
  3. Нажмите кнопку «Создать приложение».
  4. Введите название и описание приложения.
  5. Примите Условия обслуживания и нажмите «Создать»
  6. На панели инструментов вашего нового приложения вы увидите свой идентификатор клиента.
  7. Нажмите «Показать секрет клиента», чтобы раскрыть свой секрет клиента.
  8. Нажмите «Изменить настройки» и добавьте URI перенаправления (например, http://localhost:8888/callback ).
  9. Сохраните изменения

Конфигурация 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 для аутентификации. Выполните следующие шаги для аутентификации вашего приложения:

  1. Запустите скрипт аутентификации:
npm run auth
  1. Скрипт сгенерирует URL авторизации. Откройте этот URL в вашем веб-браузере.
  2. Вам будет предложено войти в Spotify и авторизовать свое приложение.
  3. После авторизации Spotify перенаправит вас на указанный вами URI перенаправления с параметром code в URL.
  4. Скрипт аутентификации автоматически обменяет этот код на токены доступа и обновления.
  5. Эти токены будут сохранены в вашем файле spotify-config.json , который теперь будет выглядеть примерно так:
{ "clientId": "your-client-id", "clientSecret": "your-client-secret", "redirectUri": "http://localhost:8888/callback", "accessToken": "BQAi9Pn...kKQ", "refreshToken": "AQDQcj...7w", "expiresAt": 1677889354671 }
  1. При необходимости сервер автоматически обновит токен доступа, используя токен обновления.

Интеграция с 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"] } } }

Вы можете добавить дополнительные инструменты в массив автоматического одобрения, чтобы запускать инструменты без вмешательства.

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

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.

Легкий сервер Model Context Protocol, который позволяет помощникам с искусственным интеллектом, таким как Cursor & Claude, управлять воспроизведением Spotify и управлять плейлистами.

  1. Инструменты
    1. Операции чтения
    2. Воспроизведение/Создание операций
  2. Настраивать
    1. Предпосылки
    2. Установка
    3. Создание приложения для разработчиков Spotify
    4. Конфигурация API Spotify
    5. Процесс аутентификации
  3. Интеграция с Claude Desktop, Cursor и VsCode через расширение модели Cline

    Related MCP Servers

    • -
      security
      -
      license
      -
      quality
      A Model Context Protocol server that enables controlling Spotify playback through natural language commands in MCP clients like Cursor or Claude for Desktop.
      Last updated -
      1
      TypeScript
    • -
      security
      A
      license
      -
      quality
      A 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 -
      JavaScript
      MIT License
    • -
      security
      F
      license
      -
      quality
      A 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 -
      1
      TypeScript
      • Apple
    • A
      security
      A
      license
      A
      quality
      A 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 -
      23
      20
      19
      TypeScript
      MIT License
      • Linux
      • Apple

    View all related MCP servers

    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