Spotify MCP Server
Cursor や Claude などの AI アシスタントが Spotify の再生を制御し、プレイリストを管理できるようにする軽量のModel Context Protocol (MCP)サーバー。
やり取りの例
「エルヴィスの最初の曲を再生」
「テイラー・スウィフトとスリップノットのフュージョンプレイリストを作成」
「ワークアウトプレイリストからすべてのテクノトラックを仕事用プレイリストにコピーする」
Related MCP server: Sonic Pi 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 から最近再生されたトラックのリストを取得します。
パラメータ:
limit(数値、オプション): 返されるトラックの最大数を指定する数値。
戻り値: トラックが見つかった場合は、最近再生されたトラックのフォーマットされたリストを返します。そうでない場合は、「Spotify で最近再生されたトラックはありません」というメッセージを返します。
例:
getRecentlyPlayed({ limit: 10 })
最近再生したデータ
説明: Spotify から最近再生されたトラックのリストを取得します。
パラメータ:
limit(数値、オプション): 返されるトラックの最大数を指定する数値。
戻り値: トラックが見つかった場合は、最近再生されたトラックのフォーマットされたリストを返します。そうでない場合は、「Spotify で最近再生されたトラックはありません」というメッセージを返します。
例:
getRecentlyPlayed({ limit: 10 })
再生/作成操作
音楽を再生する
説明: 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開発者アプリケーション
インストール
git clone https://github.com/marcelmarais/spotify-mcp-server.git
cd spotify-mcp-server
npm install
npm run buildSpotify開発者アプリケーションの作成
Spotifyアカウントでログイン
「アプリを作成」ボタンをクリックします
アプリ名と説明を入力してください
利用規約に同意して「作成」をクリックします
新しいアプリのダッシュボードにクライアントIDが表示されます
「クライアントシークレットを表示」をクリックするとクライアントシークレットが表示されます
「設定の編集」をクリックし、リダイレクト URI を追加します (例:
http://localhost:8888/callback)変更を保存する
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を使用します。アプリケーションの認証は以下の手順に従ってください。
認証スクリプトを実行します。
npm run authスクリプトは認証URLを生成します。このURLをWebブラウザで開いてください。
Spotify にログインしてアプリケーションを承認するように求められます。
承認後、Spotify は URL にコード パラメータを含む指定されたリダイレクト URI にリダイレクトします。
認証スクリプトは、このコードをアクセス トークンとリフレッシュ トークンに自動的に交換します。
これらのトークンは
spotify-config.jsonファイルに保存され、次のような内容になります。
{
"clientId": "your-client-id",
"clientSecret": "your-client-secret",
"redirectUri": "http://localhost:8888/callback",
"accessToken": "BQAi9Pn...kKQ",
"refreshToken": "AQDQcj...7w",
"expiresAt": 1677889354671
}サーバーは、必要に応じてリフレッシュ トークンを使用してアクセス トークンを自動的に更新します。
Cline モデル拡張を介してClaude Desktop、Cursor、VsCode と統合する
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.jsCline を使用して MCP を正しく設定するには、次のファイル構成が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.
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