mcpField
S
Spotify MCP Server

Spotify MCP Server

ローカル
github.com/Jopgoodメディア・デザイン082 週間前に更新

Spotify MCP Server について

Spotify の再生を操作する MCP サーバーです。アプリ、コマンドライン、自然言語、音声で Spotify を制御したいユーザー向けで、REST API、AI webhook ブリッジ、音声操作画面も備えています。

主な機能

  1. 01再生・一時停止・曲送り・音量調整
  2. 02曲・アルバム・プレイリストの検索と再生
  3. 03現在の再生情報の取得
  4. 04REST API とコマンドライン画面
  5. 05AI webhook と音声操作

活用シーン

  1. 01AI アシスタントから Spotify を操作
  2. 02コマンドラインで状態確認や曲の変更
  3. 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 アカウントと登録済みアプリケーション

セットアップ

  1. このリポジトリをクローンします:

    git clone https://github.com/Jopgood/spotify-mcp-server.git
    cd spotify-mcp-server
    
  2. 依存関係をインストールします:

    npm install
    
  3. ルートディレクトリに次の内容の .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
    
  4. Spotify Developer Dashboard で Spotify アプリケーションを登録し、Client ID と Client Secret を控えておきます。

使用方法

  1. MCP サーバーを起動します:

    npm start
    
  2. ブラウザーを開き、http://localhost:8888 にアクセスして Spotify の認証を行います。

  3. 認証が完了したら、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 ウェブフックが含まれています。

連携の設定
  1. .env ファイルでウェブフック API キーを設定します:

    AI_WEBHOOK_API_KEY=your_secure_random_key
    
  2. Claude-Spotify ブリッジサービスを起動します:

    node bridge/claude-spotify-bridge.js
    
  3. ブリッジはデフォルトでポート 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 に音声でコマンドを伝えられます。

音声制御の設定
  1. 音声制御サーバーを起動します:

    node speech/voice-server.js
    
  2. ブラウザーを開き、http://localhost:3002 にアクセスして音声制御インターフェースを開きます。

  3. ブリッジサービスが実行中であることを確認します:

    node bridge/claude-spotify-bridge.js
    
  4. マイクボタンをクリックし、「Claude」から始まるコマンドを話します(例:「Claude、ジャズを再生して」)。

ブラウザーの互換性

音声制御インターフェースは Web Speech API を使用していますが、すべてのブラウザーでサポートされているわけではありません。最良の結果を得るには、次を使用してください:

  • Google Chrome(推奨)
  • Microsoft Edge
  • Safari

Firefox の Web Speech API サポートは限定的なため、期待どおりに動作しない場合があります。

音声トリガーのカスタマイズ

トリガーフレーズを「Claude」から好きなフレーズに変更するには:

  1. 音声制御インターフェースの設定セクションを開きます
  2. 使用したいトリガーフレーズを入力します
  3. 「Save Settings」をクリックします

設定は次回以降のセッションでも使えるよう、ブラウザーに保存されます。

すべてを一度に実行する

システム全体(MCP サーバー、ブリッジ、音声インターフェース)を実行するには、次のいずれかの方法があります。

  1. 各コンポーネントを別々のターミナルウィンドウで起動します。

    # 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
    
  2. または、すべてを一度に実行する簡単な起動スクリプトを作成します。

    // 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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。