Spotify Playlist Curator MCP Server について
Spotify ユーザー向けの MCP サーバーです。プレイリストの音響特性を分析し、Claude による楽曲推薦や検索、プレイリスト編集を行えます。
主な機能
- 01プレイリストの音響特性分析
- 02ムード、エネルギー、テンポの要約
- 03Claude による楽曲推薦
- 04Spotify の楽曲検索
- 05楽曲追加とプレイリスト作成
活用シーン
- 01プレイリストのムードやテンポの把握
- 02既存のプレイリストに合う楽曲探し
- 03推薦された楽曲のプレイリストへの追加
- 04新しい Spotify プレイリストの作成
MCP 対応
プレイリストの一覧取得と分析、Claude による推薦、楽曲検索、プレイリストの作成・編集を MCP クライアント向けのツールとして公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Spotify プレイリストキュレーター MCP サーバー
既存のトラックを分析し、Claude AI を使用して、ムード、雰囲気、BPM、その他の音楽的な特徴に基づいて曲をおすすめすることで、Spotify プレイリストのキュレーションを支援する MCP サーバーです。
機能
- Spotify アカウントに接続して、プレイリストにアクセスします
- プレイリスト内のトラックのオーディオ特徴を分析します
- プレイリストのムード、エネルギー、テンポ、その他の特徴の概要を生成します
- プレイリストの分析に基づいて、Claude AI から曲のおすすめを取得します
- Spotify でトラックを検索します
- おすすめのトラックをプレイリストに追加します
- 新しいプレイリストを作成します
セットアップ
前提条件
- Node.js(v14 以降)
- Spotify Developer アカウントと登録済みのアプリケーション
- MCP(Machine Conversation Protocol)経由での Claude アクセス
インストール
-
このリポジトリをクローンします:
git clone https://github.com/lechiffre1/Spotify-Playlist-Curator-MCP-Server.git cd Spotify-Playlist-Curator-MCP-Server -
依存関係をインストールします:
npm install -
用意されている
.env.exampleを基に.envファイルを作成します:cp .env.example .env -
Spotify Developer の認証情報を設定します:
- Spotify Developer Dashboard にアクセスします
- 新しいアプリケーションを作成します
- リダイレクト URI として
http://localhost:3000/callbackを追加します - Client ID と Client Secret を
.envファイルにコピーします
-
サーバーを起動します:
npm start
使い方
認証
サーバーを起動したら、まず Spotify で認証する必要があります:
- ブラウザーで
http://localhost:3000/loginにアクセスします - Spotify アカウントにログインし、アプリケーションを認証します
- 認証が成功したら、ブラウザーウィンドウを閉じて MCP クライアントに戻ります
MCP メソッド
次の MCP メソッドを利用できます:
getPlaylists
Spotify プレイリストの一覧を返します。
const response = await client.getPlaylists();
getPlaylistDetails
トラックの分析を含む、特定のプレイリストの詳細情報を取得します。
const response = await client.getPlaylistDetails({
playlistId: "your_playlist_id"
});
getClaudeRecommendations
プレイリストの分析に基づいて、Claude AI から曲のおすすめを取得します。
const response = await client.getClaudeRecommendations({
playlistId: "your_playlist_id",
count: 10 // Optional, defaults to 10
});
addRecommendationsToPlaylist
おすすめのトラックをプレイリストに追加します。
const response = await client.addRecommendationsToPlaylist({
playlistId: "your_playlist_id",
trackUris: ["spotify:track:id1", "spotify:track:id2", ...]
});
searchTracks
Spotify でトラックを検索します。
const response = await client.searchTracks({
query: "search query",
limit: 10 // Optional, defaults to 10
});
createPlaylist
新しい Spotify プレイリストを作成します。
const response = await client.createPlaylist({
name: "My New Playlist",
description: "Created by Spotify Playlist Curator", // Optional
isPublic: false // Optional, defaults to false
});
クライアントの使用例
import { createClient } from '@anthropic-ai/mcp-client';
async function main() {
// Create MCP client
const client = createClient({
serverUrl: 'http://localhost:3000',
anthropicApiKey: 'your_anthropic_api_key' // Required for Claude integration
});
// 1. Get user playlists
const playlists = await client.getPlaylists();
console.log('Your playlists:', playlists);
// 2. Select a playlist and get its details
const playlistId = playlists.playlists[0].id;
const playlistDetails = await client.getPlaylistDetails({ playlistId });
console.log('Playlist summary:', playlistDetails.summary);
// 3. Get recommendations from Claude
const recommendations = await client.getClaudeRecommendations({ playlistId });
console.log('Claude recommendations:', recommendations.claudeRecommendations);
// 4. Add recommendations to the playlist
const trackUris = recommendations.claudeRecommendations
.filter(track => track.matched)
.map(track => track.uri);
if (trackUris.length > 0) {
const result = await client.addRecommendationsToPlaylist({ playlistId, trackUris });
console.log('Added recommendations:', result);
}
}
main().catch(console.error);
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。