Spotify MCP Server (Express.js) について
Spotify API を AI アシスタントから利用できる Express.js 製 MCP サーバーです。音楽検索やアーティスト、プレイリスト情報の取得に加え、認証後のユーザーデータ参照と Spotify OAuth のトークン更新に対応します。
主な機能
- 01曲、アーティスト、アルバムの検索
- 02アーティスト、曲、プレイリスト情報の取得
- 03ユーザーの人気曲と保存済み曲の参照
- 04Spotify OAuth ログインとトークン更新
活用シーン
- 01Spotify の音楽検索
- 02アーティストや曲の詳細確認
- 03認証済みアカウントのプレイリスト参照
- 04ユーザーの人気曲と保存済み曲の取得
MCP 対応
MCP エンドポイントを通じて、Spotify の検索、詳細情報、認証済みユーザーデータへのアクセスを AI アシスタントに提供します。OAuth ログインとトークン更新にも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Spotify MCP サーバー(Express.js)
これは、AI アシスタントが Spotify の API と連携できるようにする Model Context Protocol(MCP)サーバーの実装です。このサーバーは、トラックの検索、アーティスト情報の取得、プレイリストの管理を行うエンドポイントを提供します。
セットアップ
- Spotify Developer アカウントを作成し、Spotify Developer Dashboard で新しいアプリケーションを作成します。
- Spotify アプリケーションから Client ID と Client Secret を取得します。
- ルートディレクトリに以下の内容を含む
.envファイルを作成します。
SPOTIFY_CLIENT_ID=your_client_id
SPOTIFY_CLIENT_SECRET=your_client_secret
SPOTIFY_REDIRECT_URI=http://localhost:3000/callback
- 依存関係をインストールします。
npm install
- サーバーを起動します。
npm start
利用可能なエンドポイント
このサーバーは、以下の MCP エンドポイントを実装しています。
- POST
/mcp/search- トラック、アーティスト、またはアルバムを検索します。 - GET
/mcp/artist/{artistId}- アーティストの詳細情報を取得します。 - GET
/mcp/track/{trackId}- トラックの詳細情報を取得します。 - GET
/mcp/playlist/{playlistId}- プレイリストの情報を取得します。 - GET
/mcp/me/top-tracks- ユーザーのトップトラックを取得します(認証が必要です)。 - GET
/mcp/me/playlists- ユーザーのプレイリストを取得します(認証が必要です)。 - GET
/mcp/me/tracks- ユーザーが保存したトラックを取得します(認証が必要です)。 - GET
/mcp/auth/login- ユーザー認証用の Spotify ログイン URL を生成します。 - GET
/callback- Spotify OAuth コールバックを処理し、認証コードをアクセストークンと交換します。 - POST
/mcp/auth/refresh- ユーザーのアクセストークンを更新します。
使用例
AI アシスタントがこのサーバーと連携する方法の例を以下に示します。
// Search for a track
const searchResponse = await fetch('http://localhost:3000/mcp/search', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
query: 'Bohemian Rhapsody',
type: 'track'
})
});
const searchData = await searchResponse.json();
// Get artist information
const artistResponse = await fetch('http://localhost:3000/mcp/artist/1dfeR4HaWDbWqJHLk5g1d1');
const artistData = await artistResponse.json();
MCP プロトコルの実装
このサーバーは Model Context Protocol を実装しており、AI アシスタントは次の操作を行えます。
- Spotify で認証します。
- 音楽コンテンツを検索します。
- アーティスト、トラック、プレイリストの詳細情報を取得します。
- 適切な認証を使用して、パーソナライズされたユーザーデータにアクセスします。
セキュリティに関する注意
.env ファイルを安全に保管し、バージョン管理に決してコミットしないでください。このサーバーは、機密性の高い認証情報を管理するために環境変数を使用します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。