Spotify MCP サーバー
Spotify Web APIおよびModel Context Protocol(MCP)と統合されたNode.jsベースのサーバーで、Spotifyコンテンツの検索、再生制御、管理ツールを提供します。ユーザーは、stdioトランスポートを介した標準化されたMCPインターフェースを介して、プログラムでSpotifyアカウントを操作できます。
🧠 プロジェクト概要
名前: Spotify MCP サーバー
説明: Spotify Web API を MCP 標準に接続し、stdio 経由の JSON ベースのツールを使用して検索、再生制御、プレイリスト管理を可能にするプログラム可能なインターフェイスです。
主な機能:
🔍 Spotifyでトラックを検索
🎵 現在の再生状態を確認する
▶️ URIで特定のトラックを再生する
📋 ユーザーのプレイリストを取得する
⏸ 再生中の動画を一時停止する
🔐 Spotify での OAuth 認証
📉 Spotify APIリクエストのレート制限処理
⚙️ 前提条件
Node.js (v16以上を推奨)
アプリの認証情報を持つSpotify開発者アカウント
npm (ノード パッケージ マネージャー)
📦 インストール手順
注:
your_spotify_client_idとyour_spotify_client_secretをSpotify Developerアプリの認証情報に置き換えてください。リダイレクトURIはSpotifyアプリの設定で設定されているものと一致している必要があります。
これにより、Spotify 認証用のブラウザが開き、stdio トランスポートを使用してサーバーが起動します。
🔧 ツール
1. search_tracks
**説明:**クエリ文字列に基づいて Spotify 上のトラックを検索します。
入力スキーマ:
query(文字列、必須): 検索用語 (例: アーティスト名、曲のタイトル)。
出力:
name、artist、album、release_date、popularity、id、uriを含む最大 5 つのトラック オブジェクトの JSON 配列。例:
2. get_playback_state
**説明:**ユーザーの Spotify アカウントの現在の再生状態を取得します。
**入力スキーマ:**なし
**出力:**現在のトラック情報、再生ステータス、デバイスの詳細を含む JSON オブジェクト。何も再生されていない場合は「アクティブな再生なし」が表示されます。
例:
3. play_track
説明: Spotify URI を使用して特定のトラックを再生します。
入力スキーマ:
uri(文字列、必須): Spotify トラックの URI (例:spotify:track:xxx)。
出力:
statusとuriを含む JSON 確認。例:
4. get_user_playlists
説明: Spotify からユーザーのプレイリストを取得します。
入力スキーマ:
limit(数値、オプション): 返されるプレイリストの最大数 (デフォルト: 20)。
出力:
name、id、track_count、uri、およびpublicステータスを持つプレイリスト オブジェクトの JSON 配列。例:
5. pause_playback
**説明:**ユーザーのアクティブな Spotify デバイスで現在の再生を一時停止します。
**入力スキーマ:**なし
出力: 「再生が一時停止されました」というステータスの JSON 確認。
例:
🌐 ユースケース
音楽発見ボット:
search_tracksとplay_trackを使用して、気分に基づいた音楽チャットボットを実装します。
プレイリスト管理ツール:
get_user_playlistsとsearch_tracksを使用して、プレイリストをプレビューおよび整理します。
再生コントロールの自動化:
get_playback_state、play_track、pause_playbackを使用して再生アクションを自動化します。
Spotifyダッシュボード:
get_playback_state、get_user_playlists、pause_playback、play_trackを使用してデスクトップ ウィジェットを構築します。
Spotify API の学習:
すべてのツールを試して、Spotify Web API がどのように機能するかを学習します。
🔐 認証の詳細
初回実行時に、サーバーは Spotify OAuth 認証用のブラウザを開きます。
http://localhost:8888/callback経由でコードを受信します。コードをアクセス トークンおよびリフレッシュ トークンと交換します。
有効期限の 5 分以内にトークンが自動的に更新されます。
⏱ レート制限
再試行戦略を使用して Spotify API レート制限を処理します。
各リクエスト後に 10 秒間のクールダウンが発生します。
429 Too Many Requests エラーが発生した場合は 1 分間待機します。
📊 依存関係
dotenv:.envから環境変数を読み込みます。spotify-web-api-node: Spotify API クライアント。@modelcontextprotocol/sdk: MCP サーバーを実装します。http、url: OAuth リダイレクト サーバー用の Node.js 組み込み。open: 認証用のデフォルトのブラウザを開きます。
📁 開発情報
エントリポイント:
index.js言語: JavaScript (ES モジュール付き Node.js)
実行コマンド:
node index.js**デバッグ:**コンソール ログで MCP または認証エラーを確認します。
⚠️制限事項
再生コントロールにはSpotify Premiumが必要です。
stdio トランスポートのみをサポートします (HTTP、WebSocket などはサポートされません)。
search_tracks最大 5 件の結果を返します。再生には 1 つのアクティブデバイスを想定します。
🚀 貢献する
お気軽に問題を開いたり、プル リクエストを送信してください。
新しいツールを追加する
既存の機能を強化する
ドキュメントの改善
✍️ ライセンス
MIT ライセンス - 個人または商用目的での使用、変更、配布が自由です。
❤️ フッター
2025年3月17日、Rakshitha C Devadiga が❤️を込めて作成
This server cannot be installed
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityEnables interaction with Spotify's music catalog via the Spotify Web API, supporting searches, artist information retrieval, playlist management, and automatic token handling.Last updated -54718MIT License
- -securityFlicense-qualityEnables interaction with the Audius music platform API, supporting user, track, and playlist operations through the Model Context Protocol.Last updated -4
- AsecurityFlicenseAqualityA lightweight Model Context Protocol server that enables AI assistants like Cursor & Claude to control Spotify playback and manage playlists.Last updated -18186
- -securityFlicense-qualityA 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