Skip to main content
Glama
marcelmarais

Spotify MCP Server

by marcelmarais

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

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

  • «Включи первую песню Элвиса»

  • «Создайте плейлист в стиле фьюжн Тейлор Свифт/Slipknot»

  • «Скопировать все техно-треки из моего плейлиста для тренировок в мой рабочий плейлист»

Related MCP server: Sonic Pi MCP

Инструменты

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

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

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

Install Server
F
license - not found
B
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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