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 の再生を制御し、プレイリストを管理できるようにする軽量のModel Context Protocol (MCP)サーバー。
やり取りの例
- 「エルヴィスの最初の曲を再生」
- 「テイラー・スウィフトとスリップノットのフュージョンプレイリストを作成」
- 「ワークアウトプレイリストからすべてのテクノトラックを仕事用プレイリストにコピーする」
ツール
読み取り操作
- Spotifyを検索
- 説明: Spotifyでトラック、アルバム、アーティスト、プレイリストを検索します
- パラメータ:
query
(文字列): 検索語type
(文字列): 検索するアイテムの種類 (トラック、アルバム、アーティスト、プレイリスト)limit
(数値、オプション): 返される結果の最大数 (10~50)
- 戻り値: 一致するアイテムのID、名前、追加の詳細のリスト
- 例:
searchSpotify("bohemian rhapsody", "track", 20)
- getNowPlaying
- 説明: Spotifyで現在再生中のトラックの情報を取得します
- パラメータ: なし
- 戻り値: トラック名、アーティスト、アルバム、再生の進行状況、再生時間、再生状態を含むオブジェクト
- 例:
getNowPlaying()
- プレイリストを取得する
- 説明: Spotify 上の現在のユーザーのプレイリストのリストを取得します
- パラメータ:
limit
(数値、オプション): 返されるプレイリストの最大数 (デフォルト: 20)offset
(数値、オプション):返される最初のプレイリストのインデックス(デフォルト:0)
- 戻り値: ID、名前、トラック数、公開ステータスを含むプレイリストの配列
- 例:
getMyPlaylists(10, 0)
- プレイリストトラックを取得する
- 説明: 特定のSpotifyプレイリスト内のトラックのリストを取得します
- パラメータ:
playlistId
(文字列): プレイリストのSpotify IDlimit
(数値、オプション): 返されるトラックの最大数 (デフォルト: 100)offset
(数値、オプション):返される最初のトラックのインデックス(デフォルト:0)
- 戻り値: ID、名前、アーティスト、アルバム、継続時間、追加日を含むトラックの配列
- 例:
getPlaylistTracks("37i9dQZEVXcJZyENOWUFo7")
再生/作成操作
- 音楽を再生する
- 説明: Spotifyでトラック、アルバム、アーティスト、またはプレイリストの再生を開始します
- パラメータ:
uri
(文字列、オプション): 再生するアイテムの Spotify URI (type と id をオーバーライドします)type
(文字列、オプション): 再生するアイテムの種類 (トラック、アルバム、アーティスト、プレイリスト)id
(文字列、オプション): 再生するアイテムの Spotify IDdeviceId
(文字列、オプション): 再生するデバイスのID
- 戻り値: 成功ステータス
- 例:
playMusic({ uri: "spotify:track:6rqhFgbbKwnb9MLmUQDhG6" })
- 代替:
playMusic({ type: "track", id: "6rqhFgbbKwnb9MLmUQDhG6" })
- 一時停止再生
- 説明: Spotifyで現在再生中のトラックを一時停止します
- パラメータ:
deviceId
(文字列、オプション): 一時停止するデバイスのID
- 戻り値: 成功ステータス
- 例:
pausePlayback()
- 次へスキップ
- 説明: 現在の再生キューの次のトラックにスキップします
- パラメータ:
deviceId
(文字列、オプション): デバイスのID
- 戻り値: 成功ステータス
- 例:
skipToNext()
- 前へスキップ
- 説明: 現在の再生キュー内の前のトラックにスキップします
- パラメータ:
deviceId
(文字列、オプション): デバイスのID
- 戻り値: 成功ステータス
- 例:
skipToPrevious()
- プレイリストを作成
- 説明: Spotifyで新しいプレイリストを作成する
- パラメータ:
name
(文字列): 新しいプレイリストの名前description
(文字列、オプション): プレイリストの説明public
(ブール値、オプション):プレイリストを公開するかどうか(デフォルト:false)
- 戻り値: 新しいプレイリストのIDとURLを持つオブジェクト
- 例:
createPlaylist({ name: "Workout Mix", description: "Songs to get pumped up", public: false })
- プレイリストにトラックを追加
- 説明: 既存のSpotifyプレイリストにトラックを追加する
- パラメータ:
playlistId
(文字列): プレイリストのIDtrackUris
(配列): 追加するトラックURIまたはIDの配列position
(数値、オプション):トラックを挿入する位置
- 戻り値: 成功ステータスとスナップショットID
- 例:
addTracksToPlaylist({ playlistId: "3cEYpjA9oz9GiPac4AsH4n", trackUris: ["spotify:track:4iV5W9uYEdYUVa79Axb7Rh"] })
- キューに追加
- 説明: トラック、アルバム、アーティスト、またはプレイリストを現在の再生キューに追加します
- パラメータ:
uri
(文字列、オプション): キューに追加するアイテムの Spotify URI (type と id をオーバーライドします)type
(文字列、オプション): キューに追加するアイテムの種類 (トラック、アルバム、アーティスト、プレイリスト)id
(文字列、オプション): キューに追加するアイテムの Spotify IDdeviceId
(文字列、オプション): キューに入れるデバイスのID
- 戻り値: 成功ステータス
- 例:
addToQueue({ uri: "spotify:track:6rqhFgbbKwnb9MLmUQDhG6" })
- 代替:
addToQueue({ type: "track", id: "6rqhFgbbKwnb9MLmUQDhG6" })
設定
前提条件
- Node.js v16+
- Spotifyプレミアムアカウント
- 登録済みのSpotify開発者アプリケーション
インストール
Spotify開発者アプリケーションの作成
- Spotify開発者ダッシュボードへ
- Spotifyアカウントでログイン
- 「アプリを作成」ボタンをクリックします
- アプリ名と説明を入力してください
- 利用規約に同意して「作成」をクリックします
- 新しいアプリのダッシュボードにクライアントIDが表示されます
- 「クライアントシークレットを表示」をクリックするとクライアントシークレットが表示されます
- 「設定の編集」をクリックし、リダイレクト URI を追加します (例:
http://localhost:8888/callback
) - 変更を保存する
Spotify API 設定
プロジェクト ルートにspotify-config.json
ファイルを作成します (提供されている例をコピーして変更できます)。
次に、資格情報を使用してファイルを編集します。
認証プロセス
Spotify APIは認証にOAuth 2.0を使用します。アプリケーションの認証は以下の手順に従ってください。
- 認証スクリプトを実行します。
- スクリプトは認証URLを生成します。このURLをWebブラウザで開いてください。
- Spotify にログインしてアプリケーションを承認するように求められます。
- 承認後、Spotify は URL にコード パラメータを含む指定されたリダイレクト URI にリダイレクトします。
- 認証スクリプトは、このコードをアクセス トークンとリフレッシュ トークンに自動的に交換します。
- これらのトークンは
spotify-config.json
ファイルに保存され、次のような内容になります。
- サーバーは、必要に応じてリフレッシュ トークンを使用してアクセス トークンを自動的に更新します。
Claude DesktopとCursorとの統合
Claude Desktop で MCP サーバーを使用するには、Claude 構成に追加します。
カーソルについては、 Cursor Settings
(command + Shift + J)の「MCP」タブに移動し、次のコマンドでサーバーを追加します。
You must be authenticated.
Tools
Cursor や Claude などの AI アシスタントが Spotify の再生を制御し、プレイリストを管理できるようにする軽量のモデル コンテキスト プロトコル サーバー。