Spotify Playlist Generator Mcp Server について
Spotify Playlist Generator Mcp Serverは、Spotify Web APIを使って検索やプレイリスト管理を行うAIアプリ向けMCPサーバーです。OAuth認証により、プレイリストの作成・編集や曲の追加・削除ができます。
主な機能
- 01Spotifyの曲を検索
- 02曲の詳細を取得
- 03プレイリストの作成と編集
- 04プレイリストの曲を追加・削除
- 05プレイリストと収録曲の一覧表示
活用シーン
- 01クエリや市場を指定して曲を検索
- 02公開設定を指定してプレイリストを作成
- 03既存プレイリストの曲を確認
MCP 対応
stdio経由で、Spotify検索、曲情報の取得、プレイリスト管理のツールをMCPクライアントに提供します。すべての機能にSpotify OAuth認証が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Spotify プレイリスト生成 MCP サーバー
Spotify の公式 Web API を使用して、AI アプリケーションから楽曲を検索し、プレイリストを管理できる Model Context Protocol(MCP)サーバーです。
機能
- 楽曲の検索:カスタマイズ可能な検索パラメーターで、Spotify の楽曲を検索します
- トラックの詳細情報の取得:特定のトラックに関する詳細情報を取得します
- プレイリストのトラックの取得:プレイリストに含まれるトラックを一覧表示します
- プレイリストの管理:プレイリストの作成、編集、管理を含む包括的なプレイリスト管理機能を利用できます(OAuth の設定が必要です)
セットアップ
前提条件
- Node.js 18 以降
- Spotify Developer Account
- Spotify アプリの認証情報(Client ID と Client Secret)
インストール
- このリポジトリをクローンします:
git clone https://github.com/danisss9/spotify-playlist-generator-mcp-server
- 依存関係をインストールします:
npm install
-
Spotify アプリを作成します:
- Spotify Developer Dashboard に移動します
- 新しいアプリを作成します
- Client ID と Client Secret を控えます
- リダイレクト URI に
http://localhost:8888/callbackを追加します
-
環境変数を設定します:
# Create a .env file
echo "SPOTIFY_CLIENT_ID=your_client_id_here" > .env
echo "SPOTIFY_CLIENT_SECRET=your_client_secret_here" >> .env
- TypeScript コードをビルドします:
npm run build
サーバーの起動
自動リビルドを有効にして開発する場合:
npm run dev
本番環境の場合:
npm start
MCP クライアントでの使用
このサーバーは stdio トランスポートを使用するため、stdio に対応する任意の MCP クライアントで使用できます。
Claude Desktop の設定
Claude Desktop の設定ファイルに追加します:
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"spotify-playlist-generator": {
"command": "node",
"args": ["/absolute/path/to/spotify-playlist-generator/build/index.js"],
"env": {
"SPOTIFY_CLIENT_ID": "your_client_id_here",
"SPOTIFY_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}
GitHub Copilot を使用する Visual Studio Code の設定
Visual Studio Code で GitHub Copilot とこの MCP サーバーを使用するには、VS Code の設定で構成する必要があります:
-
VS Code の設定を開く:
Ctrl+,(Windows/Linux)またはCmd+,(macOS)を押します -
MCP を検索する:検索バーに「mcp」と入力します
-
MCP サーバーの設定を追加する:以下を VS Code の設定 JSON に追加します:
{
"github.copilot.chat.mcp.servers": {
"spotify-playlist-generator": {
"command": "node",
"args": ["/absolute/path/to/spotify-playlist-generator/build/index.js"],
"env": {
"SPOTIFY_CLIENT_ID": "your_client_id_here",
"SPOTIFY_CLIENT_SECRET": "your_client_secret_here"
}
}
}
}
別の方法:設定 UI を使用する
- File > Preferences > Settings に移動します(または
Ctrl+,を使用します) - 「GitHub Copilot MCP」を検索します
- 「Github › Copilot › Chat: Mcp Servers」の横にある「Edit in settings.json」をクリックします
- 上記の例のようにサーバーの設定を追加します
環境変数の設定
セキュリティのため、設定ファイルではなく、システム全体に環境変数を設定することもできます:
Windows(PowerShell):
[Environment]::SetEnvironmentVariable("SPOTIFY_CLIENT_ID", "your_client_id_here", "User")
[Environment]::SetEnvironmentVariable("SPOTIFY_CLIENT_SECRET", "your_client_secret_here", "User")
Windows(コマンドプロンプト):
setx SPOTIFY_CLIENT_ID "your_client_id_here"
setx SPOTIFY_CLIENT_SECRET "your_client_secret_here"
macOS/Linux:
export SPOTIFY_CLIENT_ID="your_client_id_here"
export SPOTIFY_CLIENT_SECRET="your_client_secret_here"
# Add to ~/.bashrc, ~/.zshrc, or ~/.profile to persist
echo 'export SPOTIFY_CLIENT_ID="your_client_id_here"' >> ~/.bashrc
echo 'export SPOTIFY_CLIENT_SECRET="your_client_secret_here"' >> ~/.bashrc
その後、VS Code の設定から env セクションを削除します:
{
"github.copilot.chat.mcp.servers": {
"spotify-playlist-generator": {
"command": "node",
"args": ["/absolute/path/to/spotify-playlist-generator/build/index.js"]
}
}
}
VS Code での使用
設定が完了すると、GitHub Copilot Chat を通じて MCP サーバーを使用できます:
- Copilot Chat を開きます(
Ctrl+Alt+Iを押すか、チャットアイコンをクリックします) - 自然言語で Spotify を操作します:
- 「ジャズの楽曲を検索して」
- 「『My Favorites』という新しいプレイリストを作成して」
- 「これらのトラックを自分のプレイリストに追加して」
- 「この Spotify のトラックの詳細を教えて」
利用可能なツール
OAuth が必要なツール(すべての機能で認証が必要です)
authenticate_spotify
Spotify OAuth で認証し、楽曲の検索とプレイリスト管理の機能を有効にします。
パラメーター:
getAuthUrl(boolean、デフォルト:false):認証 URL を取得するには true に設定しますauthCode(string、省略可能):OAuth フローで取得した認証コード
get_auth_status
現在の Spotify 認証状態を確認します。
パラメーター: なし
search_tracks
Spotify の楽曲を検索します。
パラメーター:
query(string):トラックの検索クエリlimit(number、1~50、デフォルト:20):結果の最大数market(string、省略可能):結果を絞り込む ISO 3166-1 alpha-2 国コード
get_track_details
特定の Spotify トラックの詳細情報を取得します。
パラメーター:
trackId(string):Spotify のトラック IDmarket(string、省略可能):マーケットの ISO 3166-1 alpha-2 国コード
create_playlist
新しい Spotify プレイリストを作成します(認証が必要です)。
パラメーター:
name(string):プレイリスト名description(string、任意):プレイリストの説明public(boolean、デフォルト:false):プレイリストを公開するかどうかcollaborative(boolean、デフォルト:false):プレイリストを共同編集可能にするかどうか
edit_playlist
既存のプレイリスト情報を編集します(認証が必要です)。
パラメーター:
playlistId(string):編集するプレイリストの IDname(string、任意):プレイリストの新しい名前description(string、任意):プレイリストの新しい説明public(boolean、任意):新しい公開設定collaborative(boolean、任意):新しい共同編集設定
注: 更新するには、少なくとも 1 つのフィールド(name、description、public、collaborative)を指定する必要があります。
add_to_playlist
Spotify プレイリストにトラックを追加します(認証が必要です)。
パラメーター:
playlistId(string):対象プレイリストの IDtrackUris(文字列の配列):追加する Spotify トラック URI の配列position(number、任意):トラックを挿入する位置(0 始まりのインデックス)
list_playlists
ユーザーの Spotify プレイリストを一覧表示します(認証が必要です)。
パラメーター:
limit(number、1~50、デフォルト:20):プレイリストの最大数offset(number、最小値:0、デフォルト:0):ページネーションのインデックスオフセット
get_playlist_tracks
Spotify プレイリストのトラックを取得します(認証が必要です)。
パラメーター:
playlistId(string):トラックを取得するプレイリストの IDlimit(number、1~100、デフォルト:50):返すトラックの最大数offset(number、最小値:0、デフォルト:0):ページネーションのインデックスオフセット
remove_from_playlist
Spotify プレイリストからトラックを削除します(認証が必要です)。
パラメーター:
playlistId(string):トラックを削除するプレイリストの IDtrackUris(文字列の配列):削除する Spotify トラック URI の配列snapshotId(string、任意):バージョン管理用のプレイリストスナップショット ID
OAuth 認証の設定
すべての機能を利用するには、Spotify の OAuth 2.0 を設定する必要があります。
1. Spotify Developer Dashboard の設定
- Spotify Developer Dashboard にアクセスします
- Spotify アカウントでログインします
- 「Create an App」をクリックします
- アプリ名と説明を入力します
- リダイレクト URI に
http://localhost:8888/callbackを追加します - Client ID と Client Secret をコピーします
2. 環境設定
OAuth 認証情報を .env ファイルに追加します。
SPOTIFY_CLIENT_ID=your_client_id_here
SPOTIFY_CLIENT_SECRET=your_client_secret_here
3. 認証フロー
authenticate_spotifyツールでgetAuthUrl: trueを指定します- 表示された URL をブラウザーで開きます
- Spotify アカウントにサインインし、アクセス許可を付与します
- コールバック URL から認証コードをコピーします
authenticate_spotifyツールを再度使用し、authCodeパラメーターを指定します
4. 認証が必要な機能の使用
認証が完了すると、次の操作を実行できます。
- 音楽トラックを検索する
- トラックの詳細情報を取得する
- 新しいプレイリストを作成する
- 既存のプレイリスト情報(名前、説明、公開設定)を編集する
- プレイリストにトラックを追加する
- プレイリストを一覧表示する
- プレイリストからトラックを取得する
- プレイリストからトラックを削除する
API の制限事項
- レート制限:Spotify API にはレート制限があります(エンドポイントによって異なります)
- OAuth トークン:アクセストークンの有効期限は 1 時間で、更新が必要です
- マーケットの制限:一部のトラックは特定のマーケットでは利用できない場合があります
- アクセス許可:利用可能な操作は OAuth スコープによって決まります
開発
ビルド
npm run build
開発モード
npm run dev
プロジェクト構成
src/
└── index.ts # Main server implementation
build/ # Compiled JavaScript output
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更を加えます
- 十分にテストします
- プルリクエストを送信します
ライセンス
MIT ライセンス - 詳細は LICENSE ファイルを参照してください
トラブルシューティング
よくある問題
-
「SPOTIFY_CLIENT_ID and SPOTIFY_CLIENT_SECRET environment variables are required」
- 両方の環境変数が設定されていることを確認してください
- Spotify アプリの認証情報が有効であることを確認してください
-
「Authentication required」エラー
- まず
authenticate_spotifyツールを使って認証してください - アクセストークンの有効期限が切れていないか確認し、必要に応じて再認証してください
- まず
-
「Rate limit exceeded」エラー
- レート制限がリセットされるまで待ってください
- API 呼び出しの頻度を減らしてください
-
ビルドエラー
- Node.js 18+ がインストールされていることを確認してください
npm installを実行して、すべての依存関係がインストールされていることを確認してくださいnpm run buildで TypeScript のコンパイルを確認してください
-
「Track not available」エラー
- 一部のトラックはお使いの地域では利用できない場合があります
- 別のマーケットパラメーターを指定してみてください
セキュリティに関する考慮事項
- API キーをバージョン管理にコミットしないでください
- 機密性の高い設定には環境変数を使用してください
- すべてのユーザー入力を検証してください
- 適切なエラー処理とログ記録を実装してください
- Spotify の API 利用規約を遵守してください
このプロジェクトは GitHub Copilot を使用して作成されました
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。