Spotify MCP Server

by marcelmarais
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Enables control of Spotify playback and playlist management, including searching for tracks/albums/artists, playing music, creating playlists, adding tracks to playlists, and controlling playback (pause, skip, etc.).

Cursor 및 Claude와 같은 AI 어시스턴트가 Spotify 재생을 제어하고 재생 목록을 관리할 수 있도록 하는 가벼운 모델 컨텍스트 프로토콜(MCP) 서버입니다.

예시 상호작용

  • "엘비스의 첫 번째 노래를 재생해줘"
  • "테일러 스위프트/슬립낫 퓨전 플레이리스트 만들기"
  • "운동 플레이리스트에 있는 모든 테크노 트랙을 직장 플레이리스트로 복사해줘"

도구

읽기 작업

  1. Spotify 검색
    • 설명 : Spotify에서 트랙, 앨범, 아티스트 또는 재생 목록을 검색하세요
    • 매개변수 :
      • query (문자열): 검색어
      • type (문자열): 검색할 항목 유형(트랙, 앨범, 아티스트, 재생 목록)
      • limit (숫자, 선택 사항): 반환할 최대 결과 수(10-50)
    • 반환 : ID, 이름 및 추가 세부 정보가 포함된 일치하는 항목 목록
    • : searchSpotify("bohemian rhapsody", "track", 20)
  2. 지금 재생 중
    • 설명 : Spotify에서 현재 재생 중인 트랙에 대한 정보를 가져옵니다.
    • 매개변수 : 없음
    • 반환 : 트랙 이름, 아티스트, 앨범, 재생 진행률, 지속 시간 및 재생 상태를 포함하는 객체
    • : getNowPlaying()
  3. 내 재생목록 가져오기
    • 설명 : Spotify에서 현재 사용자의 재생 목록 목록을 가져옵니다.
    • 매개변수 :
      • limit (숫자, 선택 사항): 반환할 최대 재생 목록 수(기본값: 20)
      • offset (숫자, 선택 사항): 반환할 첫 번째 재생 목록의 인덱스(기본값: 0)
    • 반환 : ID, 이름, 트랙 수 및 공개 상태가 포함된 재생 목록 배열
    • : getMyPlaylists(10, 0)
  4. getPlaylistTracks
    • 설명 : 특정 Spotify 재생 목록의 트랙 목록을 가져옵니다.
    • 매개변수 :
      • playlistId (문자열): 재생 목록의 Spotify ID
      • limit (숫자, 선택 사항): 반환할 최대 트랙 수(기본값: 100)
      • offset (숫자, 선택 사항): 반환할 첫 번째 트랙의 인덱스(기본값: 0)
    • 반환 : ID, 이름, 아티스트, 앨범, 기간 및 추가 날짜가 포함된 트랙 배열
    • : getPlaylistTracks("37i9dQZEVXcJZyENOWUFo7")

플레이/작성 작업

  1. 음악 재생
    • 설명 : Spotify에서 트랙, 앨범, 아티스트 또는 재생 목록 재생을 시작합니다.
    • 매개변수 :
      • uri (문자열, 선택 사항): 재생할 항목의 Spotify URI(type 및 id를 재정의)
      • type (문자열, 선택 사항): 재생할 항목 유형(트랙, 앨범, 아티스트, 재생 목록)
      • id (문자열, 선택 사항): 재생할 항목의 Spotify ID
      • deviceId (문자열, 선택 사항): 재생할 장치의 ID
    • 반환 : 성공 상태
    • : playMusic({ uri: "spotify:track:6rqhFgbbKwnb9MLmUQDhG6" })
    • 대안 : playMusic({ type: "track", id: "6rqhFgbbKwnb9MLmUQDhG6" })
  2. 일시 정지 재생
    • 설명 : Spotify에서 현재 재생 중인 트랙을 일시 정지합니다.
    • 매개변수 :
      • deviceId (문자열, 선택 사항): 일시 중지할 장치의 ID
    • 반환 : 성공 상태
    • : pausePlayback()
  3. 다음으로 건너뛰기
    • 설명 : 현재 재생 대기열에서 다음 트랙으로 건너뜁니다.
    • 매개변수 :
      • deviceId (문자열, 선택 사항): 장치의 ID
    • 반환 : 성공 상태
    • : skipToNext()
  4. 이전으로 건너뛰기
    • 설명 : 현재 재생 대기열에서 이전 트랙으로 건너뜁니다.
    • 매개변수 :
      • deviceId (문자열, 선택 사항): 장치의 ID
    • 반환 : 성공 상태
    • : skipToPrevious()
  5. createPlaylist
    • 설명 : Spotify에서 새 재생목록 만들기
    • 매개변수 :
      • name (문자열): 새 재생 목록의 이름
      • description (문자열, 선택 사항): 재생 목록에 대한 설명
      • public (부울, 선택 사항): 재생 목록을 공개할지 여부(기본값: false)
    • 반환 : 새 재생 목록의 ID 및 URL이 있는 객체
    • 예시 : createPlaylist({ name: "Workout Mix", description: "Songs to get pumped up", public: false })
  6. 트랙 추가 재생목록
    • 설명 : 기존 Spotify 재생 목록에 트랙 추가
    • 매개변수 :
      • playlistId (문자열): 재생 목록의 ID
      • trackUris (배열): 추가할 트랙 URI 또는 ID 배열
      • position (숫자, 선택 사항): 트랙을 삽입할 위치
    • 반환 : 성공 상태 및 스냅샷 ID
    • : addTracksToPlaylist({ playlistId: "3cEYpjA9oz9GiPac4AsH4n", trackUris: ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh"] })
  7. addToQueue
    • 설명 : 현재 재생 대기열에 트랙, 앨범, 아티스트 또는 재생 목록을 추가합니다.
      • 매개변수 :
      • uri (문자열, 선택 사항): 대기열에 추가할 항목의 Spotify URI(type 및 id보다 우선)
      • type (문자열, 선택 사항): 대기열에 추가할 항목 유형(트랙, 앨범, 아티스트, 재생 목록)
      • id (문자열, 선택 사항): 대기열에 추가할 항목의 Spotify ID
      • deviceId (문자열, 선택 사항): 대기할 장치의 ID
    • 반환 : 성공 상태
    • : addToQueue({ uri: "spotify:track:6rqhFgbbKwnb9MLmUQDhG6" })
    • 대안 : addToQueue({ type: "track", id: "6rqhFgbbKwnb9MLmUQDhG6" })

설정

필수 조건

  • Node.js v16+
  • Spotify 프리미엄 계정
  • 등록된 Spotify 개발자 애플리케이션

설치

지엑스피1

Spotify 개발자 애플리케이션 만들기

  1. Spotify 개발자 대시보드 로 이동
  2. Spotify 계정으로 로그인하세요
  3. "앱 만들기" 버튼을 클릭하세요
  4. 앱 이름과 설명을 입력하세요
  5. 서비스 약관에 동의하고 "만들기"를 클릭하세요.
  6. 새 앱의 대시보드에서 클라이언트 ID를 볼 수 있습니다.
  7. "클라이언트 비밀번호 표시"를 클릭하여 클라이언트 비밀번호를 표시합니다.
  8. "설정 편집"을 클릭하고 리디렉션 URI(예: http://localhost:8888/callback )를 추가합니다.
  9. 변경 사항을 저장하세요

Spotify API 구성

프로젝트 루트에 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" }

인증 프로세스

Spotify API는 인증에 OAuth 2.0을 사용합니다. 다음 단계에 따라 애플리케이션을 인증하세요.

  1. 인증 스크립트를 실행합니다.
npm run auth
  1. 스크립트가 권한 부여 URL을 생성합니다. 웹 브라우저에서 이 URL을 여세요.
  2. Spotify에 로그인하고 애플리케이션을 승인하라는 메시지가 표시됩니다.
  3. 승인 후 Spotify는 URL에 코드 매개변수가 포함된 지정된 리디렉션 URI로 리디렉션합니다.
  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와 통합

Claude Desktop과 함께 MCP 서버를 사용하려면 Claude 구성에 추가하세요.

{ "mcpServers": { "spotify": { "command": "node", "args": ["spotify-mcp-server/build/index.js"] } } }

커서의 경우, Cursor Settings (Command + Shift + J)의 MCP 탭으로 이동하세요. 다음 명령어를 사용하여 서버를 추가하세요.

node path/to/spotify-mcp-server/build/index.js

You must be authenticated.

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

Cursor 및 Claude와 같은 AI 어시스턴트가 Spotify 재생을 제어하고 재생 목록을 관리할 수 있도록 하는 가벼운 모델 컨텍스트 프로토콜 서버입니다.

  1. Tools
    1. Read Operations
    2. Play / Create Operations
  2. Setup
    1. Prerequisites
    2. Installation
    3. Creating a Spotify Developer Application
    4. Spotify API Configuration
    5. Authentication Process
  3. Integrating with Claude Desktop and Cursor
    ID: wu15pi580l