mcpField
S
Spotify Bulk Actions Mcp

Spotify Bulk Actions Mcp

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

Spotify Bulk Actions Mcp について

Spotify Bulk Actions MCPは、Spotifyのライブラリ管理や曲リストからのプレイリスト作成に使うMCPサーバーです。検索結果に信頼度を付け、不確かな一致は人が確認できるようにします。

主な機能

  1. 01信頼度付きのトラック一括検索
  2. 02CSVからのプレイリスト作成
  3. 03ライブラリとプレイリストのエクスポート
  4. 04アーティストの一括フォローとトラック保存
  5. 05プレイリストの管理・比較・重複整理

活用シーン

  1. 01ポッドキャストの曲リストからプレイリストを作成
  2. 02信頼度の低い曲の一致を確認
  3. 03整理用にライブラリやプレイリストをエクスポート
  4. 04重複曲の検出とプレイリストの一括編集

MCP 対応

MCPクライアント向けに、Spotifyライブラリ、プレイリスト、検索、一括操作のツールを提供します。ローカル実行に加え、Streamable HTTPによるリモート接続にも対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"spotify-bulk-actions": {
"command": "uvx",
"args": [
"spotify-bulk-actions-mcp"
],
"env": {
"SPOTIFY_CLIENT_ID": "<SPOTIFY_CLIENT_ID>",
"SPOTIFY_CLIENT_SECRET": "<SPOTIFY_CLIENT_SECRET>"
}
}
}
}
起動コマンドuvx spotify-bulk-actions-mcp
設定が必要な環境変数
SPOTIFY_CLIENT_IDSpotify API Client ID from developer.spotify.com
SPOTIFY_CLIENT_SECRETシークレットSpotify API Client Secret from developer.spotify.com

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypispotify-bulk-actions-mcp0.1.1

ツール

32

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

Spotify Bulk Actions MCP

Spotify Bulk Actions MCP

Spotify の一括操作に対応した Model Context Protocol(MCP)サーバーです。プレイリストの一括作成、ライブラリのエクスポート、大規模なライブラリ管理を実行できます。

ほかの Spotify MCP と異なる点は?

  • 信頼度スコア - 一括検索では、各候補に HIGH/MEDIUM/LOW の信頼度が付与されます
  • 人間による確認 - 不確かな候補をエクスポートして確認し、その後再インポートできます
  • 一括操作 - レート制限機能を備え、500 曲以上を効率的に処理します
  • ライブラリのエクスポート - ライブラリの全データをエクスポートできます
  • ポッドキャストのプレイリストに特化 - ポッドキャストの番組ノートにある曲リストをインポートするために開発されました

このプロジェクトを支援する

ヘッドフォンを常に着けているために作りました。80k+ のポッドキャスト登録を支援してください。 コーヒーをおごる


掲載先

ディレクトリリンク
PyPIpypi.org/project/spotify-bulk-actions-mcp
mcp.somcp.so/server/spotify-bulk-actions-mcp
awesome-mcp-serversPR #1541 (保留中)

これを使って作成したプロジェクト

プロジェクト説明リンク
recordOSいちばん好きなアルバムはどれですか?ビジュアルで楽しめるアルバムコレクションアプリ公開版 · リポジトリ
Festival Navigator友人と一緒に複数日にわたるフェスティバルを巡りましょうリポジトリ
この MCP で管理しているプレイリスト

近日公開:Switched On Pop、This American Life などのポッドキャストプレイリスト


このサーバーでできること

ライブラリ分析:

  • フォローしているアーティストをすべて取得
  • 保存済み/「いいね」した曲をすべて取得(最大 10k 曲のライブラリに対応)
  • ライブラリ内のユニークなアーティストを曲数順に検索
  • 保存済みの曲が 6 曲以上あるアルバムを検索(レコード購入に最適です!)
  • ライブラリの完全な概要をエクスポート

リスニングインサイト:

  • 上位のアーティストとトラック(短期/中期/長期)
  • 最近再生した履歴

プレイリストの一括作成:

  • CSV ファイルから曲リストをインポート(ポッドキャストのプレイリストなど)
  • 信頼度スコア付きの一括検索(HIGH/MEDIUM/LOW)
  • 不確かな候補を自動的に処理し、人間による確認に回します
  • 検索結果からプレイリストを作成

プレイリストのメンテナンス:

  • 重複トラックを検索して削除
  • 2 つのプレイリストを比較(共通トラックと固有トラック)
  • トラックの一括削除と並べ替え、プレイリストの詳細の更新
  • 任意のプレイリストを CSV にエクスポート

ライブラリの一括操作:

  • アーティストの一括フォロー/フォロー解除
  • トラックの一括保存/保存解除

クイックスタート

1. 前提条件
  • Python 3.10+
  • Spotify アカウント
  • Spotify Developer の認証情報(こちらで取得)
2. クローンとセットアップ
# Clone the repo
git clone https://github.com/khglynn/spotify-bulk-actions-mcp.git
cd spotify-bulk-actions-mcp

# Create and activate virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install the package
pip install -e .

# Copy env example and add your credentials
cp .env.example .env
# Edit .env with your SPOTIFY_CLIENT_ID and SPOTIFY_CLIENT_SECRET

PyPI からもインストールできます: pip install spotify-bulk-actions-mcp - ただし、ローカルの .env と認証のセットアップは引き続き必要です。

3. Spotify の認証(一度だけ)

ログイン用のブラウザーが開きます:

python setup_auth.py

ログインすると、トークンが .spotify_cache/ にローカル保存されます。

4. 動作確認
source venv/bin/activate
python -c "from spotify_bulk_actions_mcp.utils.auth import is_authenticated; print('Auth OK!' if is_authenticated() else 'Not authenticated')"
オプション B:ホスト型(claude.ai カスタムコネクター)

このサーバーはストリーミング可能な HTTP(MCP_TRANSPORT=http)経由のリモート MCP としても動作し、 OAuth 2.1(WorkOS AuthKit)と、フェイルクローズ方式のユーザー許可リストで保護されています。作成者は Cloud Run と Secret Manager を使って Spotify のリフレッシュトークンを管理し、 claude.ai にカスタムコネクターとして追加して運用しています。ツールには readOnlyHint/destructiveHint アノテーションが付与されているため、クライアントは読み取り操作と書き込み操作を分類できます。Dockerfile と 親コレクションリポジトリのデプロイ手順を参照してください。

5. Claude Code に接続する

Claude Code の設定(~/.claude/settings.local.json)に以下を追加します。

{
  "mcpServers": {
    "spotify": {
      "command": "/path/to/spotify-bulk-actions-mcp/venv/bin/spotify-bulk-actions-mcp"
    }
  }
}

追加した後、Claude Code を再起動します。

利用可能なツール(33 個)

ライブラリの分析
ツール説明
check_auth_statusSpotify の認証が機能していることを確認します
get_followed_artistsフォローしているすべてのアーティストを取得します
get_saved_tracksいいねしたすべての曲を取得します
get_library_artists保存した曲に含まれるアーティストを、件数順に取得します
get_albums_by_song_count保存した曲が N 曲以上あるアルバムを取得します
export_library_summaryライブラリ全体をエクスポートします
リスニングインサイト
ツール説明
get_top_artistsトップアーティストを取得します(短期/中期/長期)
get_top_tracksトップトラックを取得します(短期/中期/長期)
get_recently_played最近再生したトラックを取得します
ライブラリの一括操作
ツール説明
follow_artistsアーティストを一括でフォローします
unfollow_artistsアーティストのフォローを一括解除します
save_tracksトラックを一括でいいね/保存します
unsave_tracksトラックのいいね/保存を一括解除します
検索
ツール説明
search_track1 曲を検索します
search_track_fuzzy完全一致で見つからない場合に、より広範囲に検索します
batch_search_tracks信頼度スコア付きで複数のトラックを検索します
get_track_preview_url30 秒のプレビュー URL を取得します
プレイリストの作成
ツール説明
create_playlist新しいプレイリストを作成します
add_tracks_to_playlist既存のプレイリストにトラックを追加します
import_and_create_playlistCSV のインポートからプレイリスト作成までを実行します
create_playlist_from_search_results一括検索の結果からプレイリストを作成します
add_reviewed_tracks確認・修正済みのトラックを追加します
プレイリストの管理
ツール説明
get_playlist_infoプレイリストの詳細を取得します
update_playlist名前、説明、公開状態を更新します
get_playlist_tracksプレイリスト内のすべてのトラックを取得します
export_playlist_to_csvプレイリストを CSV にエクスポートします
compare_playlists2 つのプレイリスト間で、共通するトラックと固有のトラックを比較します
find_duplicate_tracksプレイリスト内の重複トラックを見つけます
remove_duplicate_tracks最初の出現を残して、重複を削除します
remove_tracks_from_playlist指定したトラックを一括削除します
reorder_playlist_tracksプレイリスト内のトラックの順序を変更します
ユーティリティ
ツール説明
parse_song_list_csv曲の CSV を検証します
export_review_csv確信度の低い一致を確認用にエクスポートします

Spotify 公式コネクターとの違い

Claude には Spotify が開発した公式 Spotify コネクター(2026 年 4 月公開)があります。対応する機能は優れていますが、提供するツールは少なく、この MCP は公式コネクターではカバーされない機能をすべて提供します。2026 年 8 月時点で、公式コネクターが提供するツールは 8 つです。Spotify を検索、プレイリストを作成、再生中の曲を取得、ライブラリに追加、ライブラリから削除、プレイリスト内のトラックを取得する機能と、認証ユーティリティ 2 つです。

機能公式コネクターこの MCP
検索、再生状況、ムード別プレイリスト✅検索のみ
プレイリストの作成✅✅(信頼度スコア付きの CSV インポートも可能)
いいねした曲の追加/削除✅(一度に 1 曲)✅ 一括操作
ライブラリ全体の読み込み(保存したトラック、フォロー中のアーティスト)❌✅
リスニングインサイト(トップアーティスト/トラック、最近再生した曲)❌✅
既存プレイリストの編集(一括削除、順序変更、詳細の更新)❌✅
プレイリストの重複排除/比較/CSV エクスポート❌✅
アーティストの一括フォロー/フォロー解除❌✅

もう 1 つの違いは、公式コネクターが Spotify のパートナー限定 MCP ゲートウェイで実行されることです(動的なクライアント登録には対応しておらず、通常の開発者アプリのトークンは拒否されます)。そのため、提携している AI サービス内でしか利用できません。この MCP は独自の Spotify 開発者アプリ上で動作します。開発モードには制限があります(2026 年 2 月時点で、クライアント ID ごとに許可リストへ登録できるユーザーは 5 人)が、すべてを自分で管理できます。

ワークフローの例

ライブラリの統計情報を確認する

Claude に質問します:

「保存している曲が最も多いアーティストは誰ですか?」

Claude は get_library_artists を使用して、結果を表示します。

レコード用のアルバムを探す

Claude に質問します:

「保存している曲が6曲以上あるアルバムを探してください」

Claude は min_songs=6 を指定して get_albums_by_song_count を使用します。

曲リストからプレイリストを作成する
  1. CSV ファイルを作成します:
title,artist
Bohemian Rhapsody,Queen
Hotel California,Eagles
Billie Jean,Michael Jackson
  1. Claude に質問します:

「この CSV から『My Mix』というプレイリストを作成してください:[CSV を貼り付け]」

Claude は次の処理を行います:

  1. CSV を解析します
  2. 信頼度スコアを算出しながら各曲を検索します
  3. 信頼度の高い一致曲でプレイリストを作成します
  4. 確認が必要な不確かな一致候補を表示します
ポッドキャスト用の一括プレイリスト

大量のリスト(500曲以上)の場合:

  1. 曲リストを使って batch_search_tracks を実行するよう Claude に依頼します
  2. 結果を確認します(信頼度が高い曲は自動的に追加されます)
  3. export_review_csv を使って不確かな一致候補を取得します
  4. スプレッドシートで確認・修正します
  5. add_reviewed_tracks を使って修正した曲を追加します

レート制限

サーバーは Spotify のレート制限に自動的に対応します:

  • API 呼び出しの間に短い待機を入れます
  • 429 エラーが発生すると自動的に再試行します
  • 繰り返しの呼び出しを減らすためにキャッシュします

1万曲の場合、最初のライブラリ取得には2~3分かかります。

ファイルとデータ

場所用途
.envSpotify の認証情報(gitignore 対象)
.spotify_cache/認証トークンとキャッシュデータ(gitignore 対象)
spotify_bulk_actions_mcp/server.pyメインの MCP サーバー
spotify_bulk_actions_mcp/tools/ツールの実装

トラブルシューティング

「認証されていません」エラー:

python setup_auth.py

レート制限エラー: 数分待ってから、もう一度お試しください。サーバーは自動的に再試行します。

トークンの有効期限切れ: サーバーはトークンを自動更新します。問題が解決しない場合は、setup_auth.py を再実行してください。

セキュリティに関する注意事項

  • 認証情報は .env に保存されます(gitignore 対象で、コミットされることはありません)
  • 認証トークンはローカルの .spotify_cache/ に保存されます
  • .env ファイルやトークンファイルを共有しないでください
  • 認証情報が漏えいした場合は、Spotify Dashboard で認証情報をローテーションしてください

ライセンス

MIT


ヘッドホンを着けずにはいられないので作りました。お役に立てたら、コーヒーをおごってください!

コメント

MCP は初めてですか?

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

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