hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Allows interaction with Spotify, providing tools for music playback control, searching for tracks/albums/artists/playlists, creating and managing playlists, and getting personalized music recommendations.
MCP クロード Spotify
特徴
- Spotify認証
- トラック、アルバム、アーティスト、プレイリストを検索
- 再生コントロール(再生、一時停止、次、前)
- プレイリストの作成と管理
- パーソナライズされたおすすめ情報を入手
- さまざまな期間にわたってユーザーが最もよく再生したトラックにアクセスします
デモ
要件
- Node.js 16以上
- Spotifyアカウント
- クロードデスクトップ
- Spotify API 資格情報 (クライアント ID とクライアント シークレット)
インストール
Smithery経由でインストール
Smithery経由で Claude Desktop に MCP Claude Spotify を自動的にインストールするには:
手動でインストールする
- このリポジトリをクローンまたはダウンロードします:
- 依存関係をインストールします:
- プロジェクトをビルドします (ソース コードを変更する場合)。
リポジトリにはbuild
ディレクトリにすでにビルド済みのファイルが含まれているため、ソース コードを変更する予定がない場合は手順 3 をスキップできます。
Spotify認証情報の設定
この MCP を使用するには、Spotify API 資格情報を取得する必要があります。
- Spotify開発者ダッシュボードへ
- Spotifyアカウントでログイン
- 「アプリを作成」をクリックします
- アプリ情報を入力してください:
- アプリ名:「MCP Claude Spotify」(またはお好きな名前)
- アプリの説明: 「Claude Desktop 向け Spotify 統合」
- ウェブサイト: 空白のままにするか、任意のURLを入力してください
- リダイレクトURI:重要-
http://127.0.0.1:8888/callback
を追加
- 利用規約に同意して「作成」をクリックします
- アプリのダッシュボードに「クライアントID」が表示されます。
- 「クライアントシークレットを表示」をクリックすると「クライアントシークレット」が表示されます。
これらの資格情報は構成に必要となるため保存してください。
MCPサーバーの実行
MCP サーバーを実行するには 2 つの方法があります。
オプション 1: 手動で実行する (初回セットアップとトラブルシューティングに推奨)
- ターミナルまたはコマンドプロンプトを開きます
- プロジェクトディレクトリに移動する
- サーバーを直接実行します。
Claude Desktopの使用中は、このターミナルウィンドウを開いたままにしてください。ターミナルを閉じるまでサーバーは稼働し続けます。
オプション 2: Claude Desktop で自動起動 (通常の使用に推奨)
Claude Desktopは、必要に応じてMCPサーバーを自動的に起動できます。設定手順は次のとおりです。
構成
Claude Desktop の構成ファイルは次の場所にあります。
- macOS :
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows :
%APPDATA%\Claude\claude_desktop_config.json
このファイルを編集して、Spotify MCPの設定を追加します。ファイルが存在しない場合は作成してください。
重要: 置き換え:
ABSOLUTE_PATH_TO_DIRECTORY
は、MCP をインストールした完全な絶対パスです。- macOS/Linuxの例:
/Users/username/mcp-claude-spotify
- Windows の例:
C:\\Users\\username\\mcp-claude-spotify
- macOS/Linuxの例:
your_client_id_here
Spotify から取得したクライアント ID ですyour_client_secret_here
に Spotify から取得したクライアントシークレットを入力します。
すでに他の MCP が設定されている場合は、「mcpServers」オブジェクト内に「spotify」セクションを追加するだけです。
自動起動スクリプトの設定(オプション)
より信頼性の高いエクスペリエンスを実現するために、自動起動スクリプトを設定できます。
- プロジェクト ディレクトリに、次の内容を含む
start-spotify-mcp.bat
という名前のファイルを作成します。
- このBATファイルへのショートカットを作成します
Win+R
を押して、shell:startup
と入力してEnterを押します。- このフォルダにショートカットを移動すると、Windows で起動するようになります。
~/Library/LaunchAgents/
に次の内容を含むcom.spotify.mcp.plist
という名前のファイルを作成します。
- パスと資格情報を実際の値に置き換えます
- エージェントをロードするには、
launchctl load ~/Library/LaunchAgents/com.spotify.mcp.plist
~/.config/systemd/user/
にspotify-mcp.service
という名前のファイルを作成します (ディレクトリが存在しない場合は作成します)。
- パスと資格情報を実際の値に置き換えます
- サービスを有効にして開始します。
- ステータスを確認するには:
使用法
- 設定を変更した後、Claude Desktopを再起動します。
- Claudeでは、
auth-spotify
コマンドを使用して認証プロセスを開始します。 - アプリケーションを承認するためのブラウザウィンドウが開きます
- Spotifyアカウントでログインし、アプリケーションを承認します
- 重要: 認証が成功したら、Claude Desktopを再起動して、MCPのツールレジストリとWebSocketセッショントークンキャッシュを適切に初期化します。
- 再起動後、すべてのSpotify MCPツールが適切に登録され、使用できるようになります。
MCPサーバーは、Claude Desktopによって管理される子プロセスとして実行されます。Claudeの実行中は、 claude_desktop_config.json
の設定に基づいてNode.jsサーバープロセスが自動的に起動され、管理されます。
利用可能なツール
認証-Spotify
Spotify 認証プロセスを開始します。
Spotifyで検索
トラック、アルバム、アーティスト、またはプレイリストを検索します。
パラメータ:
query
: 検索テキストtype
: 検索の種類(トラック、アルバム、アーティスト、プレイリスト)limit
: 結果件数 (1-50)
再生トラック
特定のトラックを再生します。
パラメータ:
trackId
: SpotifyトラックIDdeviceId
: (オプション) 再生するSpotifyデバイスID
現在の再生を取得
現在の再生に関する情報を取得します。
一時停止-再生
再生を一時停止します。
次のトラック
次のトラックにスキップします。
前のトラック
前のトラックに戻ります。
ユーザーのプレイリストを取得する
ユーザーのプレイリストを取得します。
プレイリストを作成
新しいプレイリストを作成します。
パラメータ:
name
: プレイリスト名description
: (オプション) 説明public
: (オプション) 公開か非公開か
プレイリストにトラックを追加
プレイリストにトラックを追加します。
パラメータ:
playlistId
: プレイリストIDtrackIds
: トラックIDの配列
推奨事項を取得する
シードに基づいて推奨事項を取得します。
パラメータ:
seedTracks
: (オプション) トラックIDの配列seedArtists
: (オプション) アーティストIDの配列seedGenres
: (オプション) ジャンルの配列limit
: (オプション) 推奨の数 (1-100)
トップトラックを取得する
指定された期間内にユーザーが最も多く再生したトラックを取得します。
パラメータ:
limit
: (オプション) 返されるトラックの数 (1-50、デフォルト: 20)offset
: (オプション) 返される最初のトラックのインデックス (デフォルト: 0)time_range
: (オプション) 親和性を計算する期間:short_term
: 過去約4週間medium_term
: 過去約6か月(デフォルト)long_term
: 数年間のデータ
トラブルシューティング
「サーバーが切断されました」エラー
Claude Desktop で「MCP Spotify: サーバーが切断されました」というエラーが表示される場合:
- サーバーが実行中であることを確認します:
- ターミナルを開き、プロジェクトディレクトリから
node build/index.js
手動で実行します。 - サーバーが正常に起動したら、このターミナルを開いたままClaudeを使用します。
- ターミナルを開き、プロジェクトディレクトリから
- 設定を確認してください:
claude_desktop_config.json
の絶対パスがシステムに合っていることを確認してください- Windowsのパスに二重のバックスラッシュ(
\\
)を使用していることを確認してください - ファイルシステムのルートからの完全なパスを使用していることを確認してください
- 自動起動オプションを試してください:
- 「自動起動スクリプトの設定」セクションの説明に従って、オペレーティング システムの自動起動スクリプトを設定します。
- これにより、必要なときにサーバーが常に実行されるようになります。
ブラウザが自動的に開かない
認証中にブラウザが自動的に開かない場合は、手動でアクセスしてください: http://127.0.0.1:8888/login
認証エラー
Spotify 開発者ダッシュボードでリダイレクト URI が正しく設定されていることを確認してください: http://127.0.0.1:8888/callback
サーバー起動エラー
次の点を確認してください。
- 環境変数が
claude_desktop_config.json
または起動スクリプトで正しく設定されていること - Node.jsがインストールされ、互換性がある(v16以上)
- 必要なポート(8888)が利用可能であり、ファイアウォールによってブロックされていない
- 指定された場所でスクリプトを実行する権限があります
クロードにツールが表示されない
認証後も Spotify ツールが Claude に表示されない場合は:
- 認証が成功したら、Claude Desktopを再起動してください。
- Claude Desktop のログで MCP 通信エラーがないか確認します。
- MCP サーバー プロセスが実行されていることを確認します (手動で実行して確認してください)
- MCP サーバーが Claude Desktop MCP レジストリに正しく登録されていることを確認します。
サーバーが実行中かどうかを確認する
サーバーが実行中かどうかを確認するには:
- Windows : タスクマネージャーを開き、「詳細」タブに移動して「node.exe」を探します。
- macOS/Linux : ターミナルを開き、
ps aux | grep node
を実行します。
サーバーが実行中になっていない場合は、手動で起動するか、自動起動の方法を使用します。
テスト
このプロジェクトには、コードの品質と機能性を保証するための自動テストが含まれています。テストスイートはTypeScriptをサポートするJestを使用し、以下の項目をカバーしています。
- Zodスキーマ検証 - すべての入力スキーマが正しくデータを検証していることを確認します
- Spotify APIインタラクション - APIリクエスト処理とエラー処理をテストします
- MCP サーバー機能 - ツールの適切な登録と実行を保証します
テストの実行
まず、すべての開発依存関係がインストールされていることを確認します。
すべてのテストを実行するには:
特定のテスト ファイルを実行するには:
ESM モジュールで問題が発生した場合は、Node.js v16 以降を使用していること、および NODE_OPTIONS 環境変数に package.json で設定されている--experimental-vm-modules
フラグが含まれていることを確認してください。
テスト構造
tests/schemas.test.ts
: 入力検証スキーマのテストtests/spotify-api.test.ts
: Spotify API のインタラクションのテストtests/server.test.ts
: MCP サーバー機能のテスト
新しいテストの追加
新しい機能を追加するときは、対応するテストを含めてください。
- 新しいスキーマの場合は、
schemas.test.ts
に検証テストを追加します。 - Spotify API関数については、
spotify-api.test.ts
にテストを追加します。 - MCPツールの場合は、
server.test.ts
にテストを追加します。
すべてのテストは、Jest と TypeScript を使用した ESM モジュール形式を使用して記述する必要があります。
セキュリティノート
- クライアントIDとクライアントシークレットを決して共有しないでください
- アクセス トークンは、セッションと複数のインスタンス間の永続性を可能にするために、ユーザーのホーム ディレクトリの
~/.spotify-mcp/tokens.json
に保存されるようになりました。 - ユーザーデータはディスクに保存されません
アプリケーションアクセスの取り消し
セキュリティ上の理由から、次の場合にはアプリケーションの Spotify アカウントへのアクセスを取り消すことができます。
- この統合はもう使用していません
- 不正アクセスが疑われる
- 認証の問題をトラブルシューティングしています
アクセスを取り消すには:
- Spotifyアカウントページに移動します
- メニューの「アプリ」に移動します
- 「MCP Claude Spotify」(またはアプリに付けた名前)を見つけます
- 「アクセスを削除」をクリックします
これにより、すべてのアクセストークンとリフレッシュトークンが直ちに無効になります。次回auth-spotify
コマンドを使用する際は、アプリケーションを再度承認する必要があります。
貢献
貢献を歓迎します!以下のガイドラインに従ってください。
開発ワークフロー
- リポジトリをフォークする
- 機能ブランチを作成する (
git checkout -b feature/amazing-feature
) - 変更を加える
- テストを実行して合格することを確認する (
npm test
) - 変更をコミットします (
git commit -m 'Add some amazing feature'
) - ブランチにプッシュする (
git push origin feature/amazing-feature
) - プルリクエストを開く
コードスタイルガイドライン
このプロジェクトは次のコーディング標準に従います。
- 厳密な型チェックを備えたTypeScriptを使用する
- ESMモジュール形式に従う
- インデントには2つのスペースを使用します
- 変数と関数にはキャメルケースを使用する
- クラスとインターフェースにはパスカルケースを使用する
- JSDocコメントによるドキュメント関数
- 行の長さは100文字以下にしてください
プロジェクト構造
プロジェクトは次の構造に従います。
プルリクエストプロセス
- コードがスタイルガイドラインに従っていることを確認する
- 必要に応じてドキュメントを更新する
- 新しい機能のテストを追加する
- すべてのテストに合格することを確認する
- あなたのPRはメンテナーによってレビューされます
関連リンク
ライセンス
このプロジェクトは、Mozilla Public License 2.0 に基づいてライセンスされています。詳細については、 LICENSEファイルを参照してください。
You must be authenticated.
Claude Desktop が Spotify と対話できるようにする統合により、ユーザーは再生の制御、音楽の検索、プレイリストの管理、自然言語コマンドによる推奨事項の取得が可能になります。