Spotify MCP Server について
Spotify の再生を操作する MCP サーバーです。アプリ、コマンドライン、自然言語、音声で Spotify を制御したいユーザー向けで、REST API、AI webhook ブリッジ、音声操作画面も備えています。
主な機能
- 01再生・一時停止・曲送り・音量調整
- 02曲・アルバム・プレイリストの検索と再生
- 03現在の再生情報の取得
- 04REST API とコマンドライン画面
- 05AI webhook と音声操作
活用シーン
- 01AI アシスタントから Spotify を操作
- 02コマンドラインで状態確認や曲の変更
- 03音声操作でハンズフリー再生
MCP 対応
再生操作、音量調整、コンテンツ検索、現在の再生情報などを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Spotify MCP サーバー
さまざまなデバイスやアプリケーションで Spotify の再生を制御するための、統一されたインターフェースを提供する Media Control Protocol(MCP)サーバーです。
機能
- Spotify の再生を制御(再生、一時停止、スキップ、前の曲)
- 音量を調整
- 特定のトラック、アルバム、プレイリストを検索して再生
- 現在の再生情報を取得
- 他のアプリケーションと簡単に連携できる RESTful API
- 自然言語コマンドで Spotify を制御する AI アシスタント連携
- Spotify に音声でコマンドを伝える音声制御インターフェース
前提条件
- Node.js(v16 以降)
- npm(v8 以降)
- Spotify Premium アカウント
- Spotify Developer アカウントと登録済みアプリケーション
セットアップ
-
このリポジトリをクローンします:
git clone https://github.com/Jopgood/spotify-mcp-server.git cd spotify-mcp-server -
依存関係をインストールします:
npm install -
ルートディレクトリに次の内容の
.envファイルを作成します:CLIENT_ID=your_spotify_client_id CLIENT_SECRET=your_spotify_client_secret REDIRECT_URI=http://localhost:8888/callback PORT=8888 SESSION_SECRET=your_random_session_secret AI_WEBHOOK_API_KEY=your_secure_api_key_for_ai_assistant BRIDGE_PORT=3001 VOICE_PORT=3002 -
Spotify Developer Dashboard で Spotify アプリケーションを登録し、Client ID と Client Secret を控えておきます。
使用方法
-
MCP サーバーを起動します:
npm start -
ブラウザーを開き、
http://localhost:8888にアクセスして Spotify の認証を行います。 -
認証が完了したら、API エンドポイントを使用して Spotify を制御できます。
API エンドポイント
GET /api/status- 現在の再生状態を取得POST /api/play- 再生を開始または再開POST /api/pause- 再生を一時停止POST /api/next- 次のトラックにスキップPOST /api/previous- 前のトラックに戻るPOST /api/volume- 音量を設定(body:{ "volume": 50 })POST /api/seek- 再生位置を指定(body:{ "position_ms": 30000 })POST /api/playTrack- 特定のトラックを再生(body:{ "uri": "spotify:track:xxxx" })
クライアントの例
curl を使用する場合
# Play
curl -X POST http://localhost:8888/api/play
# Pause
curl -X POST http://localhost:8888/api/pause
# Next track
curl -X POST http://localhost:8888/api/next
JavaScript(fetch)を使用する場合
// Play a specific track
fetch('http://localhost:8888/api/playTrack', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
uri: 'spotify:track:6rqhFgbbKwnb9MLmUQDhG6'
})
})
.then(response => response.json())
.then(data => console.log(data));
コマンドラインインターフェース
ターミナルから Spotify を制御するためのコマンドラインインターフェースが含まれています:
# Run the CLI
node client/spotify-cli.js
# Available commands
status # Show current playback status
play # Start/resume playback
pause # Pause playback
next # Skip to next track
prev # Go to previous track
volume 50 # Set volume to 50%
search bohemian # Search for tracks with "bohemian" in the title
play-track spotify:track:xxxx # Play a specific track by URI
AI アシスタント連携
この MCP サーバーには、Claude などの AI アシスタントが自然言語コマンドで Spotify を制御できる AI ウェブフックが含まれています。
連携の設定
-
.envファイルでウェブフック API キーを設定します:AI_WEBHOOK_API_KEY=your_secure_random_key -
Claude-Spotify ブリッジサービスを起動します:
node bridge/claude-spotify-bridge.js -
ブリッジはデフォルトでポート 3001 で実行されます。
.envファイルにBRIDGE_PORT=xxxxを追加すると、ポートを変更できます。
Claude Spotify コマンドの実行
付属のクライアントスクリプトを使用して、Claude の Spotify コマンドを実行します:
node client/claude-spotify-client.js "play bohemian rhapsody"
対応する自然言語コマンド
AI ウェブフックは、次のようなコマンドに対応しています:
- 「Queen の Bohemian Rhapsody を再生して」
- 「chill vibes のプレイリストを再生して」
- 「音楽を一時停止して」
- 「再生を再開して」
- 「次のトラックにスキップして」
- 「前の曲に戻って」
- 「音量を 50% に設定して」
- 「音量を上げて」
- 「音量を下げて」
- 「今何が再生されている?」
音声制御
ハンズフリーで操作するには、音声制御インターフェースを使って Spotify に音声でコマンドを伝えられます。
音声制御の設定
-
音声制御サーバーを起動します:
node speech/voice-server.js -
ブラウザーを開き、
http://localhost:3002にアクセスして音声制御インターフェースを開きます。 -
ブリッジサービスが実行中であることを確認します:
node bridge/claude-spotify-bridge.js -
マイクボタンをクリックし、「Claude」から始まるコマンドを話します(例:「Claude、ジャズを再生して」)。
ブラウザーの互換性
音声制御インターフェースは Web Speech API を使用していますが、すべてのブラウザーでサポートされているわけではありません。最良の結果を得るには、次を使用してください:
- Google Chrome(推奨)
- Microsoft Edge
- Safari
Firefox の Web Speech API サポートは限定的なため、期待どおりに動作しない場合があります。
音声トリガーのカスタマイズ
トリガーフレーズを「Claude」から好きなフレーズに変更するには:
- 音声制御インターフェースの設定セクションを開きます
- 使用したいトリガーフレーズを入力します
- 「Save Settings」をクリックします
設定は次回以降のセッションでも使えるよう、ブラウザーに保存されます。
すべてを一度に実行する
システム全体(MCP サーバー、ブリッジ、音声インターフェース)を実行するには、次のいずれかの方法があります。
-
各コンポーネントを別々のターミナルウィンドウで起動します。
# Terminal 1: Start MCP server npm start # Terminal 2: Start Claude bridge node bridge/claude-spotify-bridge.js # Terminal 3: Start voice interface node speech/voice-server.js -
または、すべてを一度に実行する簡単な起動スクリプトを作成します。
// Create a file called start-all.js in the root directory with: const { spawn } = require('child_process'); const mcp = spawn('npm', ['start'], { stdio: 'inherit' }); setTimeout(() => { const bridge = spawn('node', ['bridge/claude-spotify-bridge.js'], { stdio: 'inherit' }); const voice = spawn('node', ['speech/voice-server.js'], { stdio: 'inherit' }); }, 2000); // Usage: node start-all.js
トラブルシューティング
-
「ポートはすでに使用中です」エラー:
.envファイルでポート番号(PORT、BRIDGE_PORT、VOICE_PORT)を変更してください。
-
認証の問題:
http://localhost:8888のウェブインターフェースにアクセスし、Spotify で認証したことを確認してください。.envの Client ID と Secret が正しいことを確認してください。
-
音声コントロールが機能しない場合:
- 互換性のあるブラウザー(Chrome を推奨)を使用していることを確認してください。
- マイクが動作しており、必要な権限が付与されていることを確認してください。
- 音声インターフェースの設定にあるブリッジ URL が、ブリッジサーバーのアドレスと一致していることを確認してください。
-
「アクティブなデバイスがありません」エラー:
- 任意のデバイスで Spotify の再生を開始してから、もう一度お試しください。
- Spotify で再生を操作するには、アクティブなデバイスが必要です。
開発
自動リロードを有効にして開発モードで実行するには、次のコマンドを使用します。
npm run dev
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。