mcpField
S
Spotify Playlist Generator Mcp Server

Spotify Playlist Generator Mcp Server

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

Spotify Playlist Generator Mcp Server について

Spotify Playlist Generator Mcp Serverは、Spotify Web APIを使って検索やプレイリスト管理を行うAIアプリ向けMCPサーバーです。OAuth認証により、プレイリストの作成・編集や曲の追加・削除ができます。

主な機能

  1. 01Spotifyの曲を検索
  2. 02曲の詳細を取得
  3. 03プレイリストの作成と編集
  4. 04プレイリストの曲を追加・削除
  5. 05プレイリストと収録曲の一覧表示

活用シーン

  1. 01クエリや市場を指定して曲を検索
  2. 02公開設定を指定してプレイリストを作成
  3. 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)
インストール
  1. このリポジトリをクローンします:
git clone https://github.com/danisss9/spotify-playlist-generator-mcp-server
  1. 依存関係をインストールします:
npm install
  1. Spotify アプリを作成します:

    • Spotify Developer Dashboard に移動します
    • 新しいアプリを作成します
    • Client ID と Client Secret を控えます
    • リダイレクト URI に http://localhost:8888/callback を追加します
  2. 環境変数を設定します:

# Create a .env file
echo "SPOTIFY_CLIENT_ID=your_client_id_here" > .env
echo "SPOTIFY_CLIENT_SECRET=your_client_secret_here" >> .env
  1. 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 の設定で構成する必要があります:

  1. VS Code の設定を開く:Ctrl+,(Windows/Linux)または Cmd+,(macOS)を押します

  2. MCP を検索する:検索バーに「mcp」と入力します

  3. 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 を使用する

  1. File > Preferences > Settings に移動します(または Ctrl+, を使用します)
  2. 「GitHub Copilot MCP」を検索します
  3. 「Github › Copilot › Chat: Mcp Servers」の横にある「Edit in settings.json」をクリックします
  4. 上記の例のようにサーバーの設定を追加します

環境変数の設定

セキュリティのため、設定ファイルではなく、システム全体に環境変数を設定することもできます:

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 サーバーを使用できます:

  1. Copilot Chat を開きます(Ctrl+Alt+I を押すか、チャットアイコンをクリックします)
  2. 自然言語で 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 のトラック ID
  • market(string、省略可能):マーケットの ISO 3166-1 alpha-2 国コード
create_playlist

新しい Spotify プレイリストを作成します(認証が必要です)。

パラメーター:

  • name(string):プレイリスト名
  • description(string、任意):プレイリストの説明
  • public(boolean、デフォルト:false):プレイリストを公開するかどうか
  • collaborative(boolean、デフォルト:false):プレイリストを共同編集可能にするかどうか
edit_playlist

既存のプレイリスト情報を編集します(認証が必要です)。

パラメーター:

  • playlistId(string):編集するプレイリストの ID
  • name(string、任意):プレイリストの新しい名前
  • description(string、任意):プレイリストの新しい説明
  • public(boolean、任意):新しい公開設定
  • collaborative(boolean、任意):新しい共同編集設定

注: 更新するには、少なくとも 1 つのフィールド(name、description、public、collaborative)を指定する必要があります。

add_to_playlist

Spotify プレイリストにトラックを追加します(認証が必要です)。

パラメーター:

  • playlistId(string):対象プレイリストの ID
  • trackUris(文字列の配列):追加する Spotify トラック URI の配列
  • position(number、任意):トラックを挿入する位置(0 始まりのインデックス)
list_playlists

ユーザーの Spotify プレイリストを一覧表示します(認証が必要です)。

パラメーター:

  • limit(number、1~50、デフォルト:20):プレイリストの最大数
  • offset(number、最小値:0、デフォルト:0):ページネーションのインデックスオフセット
get_playlist_tracks

Spotify プレイリストのトラックを取得します(認証が必要です)。

パラメーター:

  • playlistId(string):トラックを取得するプレイリストの ID
  • limit(number、1~100、デフォルト:50):返すトラックの最大数
  • offset(number、最小値:0、デフォルト:0):ページネーションのインデックスオフセット
remove_from_playlist

Spotify プレイリストからトラックを削除します(認証が必要です)。

パラメーター:

  • playlistId(string):トラックを削除するプレイリストの ID
  • trackUris(文字列の配列):削除する Spotify トラック URI の配列
  • snapshotId(string、任意):バージョン管理用のプレイリストスナップショット ID

OAuth 認証の設定

すべての機能を利用するには、Spotify の OAuth 2.0 を設定する必要があります。

1. Spotify Developer Dashboard の設定
  1. Spotify Developer Dashboard にアクセスします
  2. Spotify アカウントでログインします
  3. 「Create an App」をクリックします
  4. アプリ名と説明を入力します
  5. リダイレクト URI に http://localhost:8888/callback を追加します
  6. Client ID と Client Secret をコピーします
2. 環境設定

OAuth 認証情報を .env ファイルに追加します。

SPOTIFY_CLIENT_ID=your_client_id_here
SPOTIFY_CLIENT_SECRET=your_client_secret_here
3. 認証フロー
  1. authenticate_spotify ツールで getAuthUrl: true を指定します
  2. 表示された URL をブラウザーで開きます
  3. Spotify アカウントにサインインし、アクセス許可を付与します
  4. コールバック URL から認証コードをコピーします
  5. 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

コントリビューション

  1. リポジトリをフォークします
  2. 機能ブランチを作成します
  3. 変更を加えます
  4. 十分にテストします
  5. プルリクエストを送信します

ライセンス

MIT ライセンス - 詳細は LICENSE ファイルを参照してください

トラブルシューティング

よくある問題
  1. 「SPOTIFY_CLIENT_ID and SPOTIFY_CLIENT_SECRET environment variables are required」

    • 両方の環境変数が設定されていることを確認してください
    • Spotify アプリの認証情報が有効であることを確認してください
  2. 「Authentication required」エラー

    • まず authenticate_spotify ツールを使って認証してください
    • アクセストークンの有効期限が切れていないか確認し、必要に応じて再認証してください
  3. 「Rate limit exceeded」エラー

    • レート制限がリセットされるまで待ってください
    • API 呼び出しの頻度を減らしてください
  4. ビルドエラー

    • Node.js 18+ がインストールされていることを確認してください
    • npm install を実行して、すべての依存関係がインストールされていることを確認してください
    • npm run build で TypeScript のコンパイルを確認してください
  5. 「Track not available」エラー

    • 一部のトラックはお使いの地域では利用できない場合があります
    • 別のマーケットパラメーターを指定してみてください

セキュリティに関する考慮事項

  • API キーをバージョン管理にコミットしないでください
  • 機密性の高い設定には環境変数を使用してください
  • すべてのユーザー入力を検証してください
  • 適切なエラー処理とログ記録を実装してください
  • Spotify の API 利用規約を遵守してください

このプロジェクトは GitHub Copilot を使用して作成されました

コメント

MCP は初めてですか?

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

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