🚀 Rekordbox MCP Server
Rekordbox MCP Serverは、リアルタイムのデータベースアクセスを備えたrekordboxデータベース管理用の包括的なModel Context Protocol (MCP)サーバーです。このサーバーを使用することで、rekordboxのデータベースを効率的に管理し、音楽ライブラリを分析することができます。
pyrekordboxを使用して構築 - このプロジェクトは、pyrekordboxプロジェクトまたはそのメンテナとは関係がありません。
🚀 クイックスタート
前提条件
- Python 3.12以上
- 既存のライブラリがあるrekordbox 6または7がインストールされていること
- rekordboxライブラリの完全なバックアップ(下記の安全注意事項を参照)
- このツールを使用する際には、rekordboxを完全に閉じておく必要があります
- rekordboxデータベースへのアクセス(自動検出に対応)
インストール
uv sync
uv run rekordbox-mcp
設定
サーバーは、データベースの自動検出と手動設定の両方に対応しています。
uv run rekordbox-mcp
uv run rekordbox-mcp --database-path /path/to/rekordbox/Pioneer
MCPクライアントの設定
Claude Desktopの設定に追加します。
{
"mcpServers": {
"rekordbox-database": {
"command": "uv",
"args": ["run", "rekordbox-mcp"],
"cwd": "/path/to/rekordbox-mcp"
}
}
}
✨ 主な機能
🗄️ データベースアクセス
- 直接SQLiteデータベース接続:pyrekordboxを使用して、暗号化されたrekordboxデータベースに直接アクセスできます。
- リアルタイムクエリ:包括的な条件でトラックを検索およびフィルタリングできます。
- 安全な変更操作:自動バックアップと安全注釈を備えたプレイリスト管理が可能です。
🔍 検索と発見
- 高度な検索:アーティスト、タイトル、ジャンル、キー、BPMなどの複数のフィールドで検索できます。
- 音楽キーフィルタリング:ハーモニックミキシングに適したキーのトラックを見つけることができます。
- BPM範囲クエリ:ビートマッチングのためにテンポ範囲で検索できます。
- 評価と再生回数フィルター:最も愛され、最も多く再生されたトラックを発見できます。
📊 分析と洞察
- ライブラリ統計:ジャンル分布、平均BPM、総再生時間などの包括的な統計情報を提供します。
- 再生回数分析:聴取パターンと習慣を追跡できます。
- コレクション洞察:音楽ライブラリの構成を理解することができます。
- DJ履歴アクセス:完全なDJセッション履歴とパフォーマンスデータにアクセスできます。
⚙️ データベース操作
- プレイリスト管理:安全保護付きでプレイリストを作成、変更、削除できます。
- バッチ操作:複数のトラックを効率的にプレイリストに追加できます。
- 履歴分析:完全なDJセッション履歴とパフォーマンスデータにアクセスできます。
- ライブラリ統計:包括的な分析と洞察を提供します。
🔧 技術詳細
- FastMCPフレームワーク:FastMCP 2.0を使用した最新のPython MCPサーバーです。
- pyrekordbox統合:暗号化されたデータベースへのアクセスに成熟したライブラリを使用しています。
- リアルタイムデータベースクエリ:SQLCipherをサポートする直接SQLite操作が可能です。
- 本番環境対応:組み込みのロギング、エラーハンドリング、および安全機能を備えています。
💻 使用例
基本的な使用法
キーとBPMでトラックを検索
search_tracks(key="5A", bpm_min=120, bpm_max=130, limit=20)
DJ履歴にアクセス
get_recent_sessions(days=30)
get_session_tracks(session_id="12345")
ライブラリの洞察を取得
get_library_stats()
get_history_stats()
高度な使用法
プレイリスト管理
create_playlist(name="Hidden Bangers", parent_id="root")
add_track_to_playlist(playlist_id="136766232", track_id="218048716")
add_tracks_to_playlist(
playlist_id="136766232",
track_ids=["218048716", "253968855", "148359536", "76341043"]
)
remove_track_from_playlist(playlist_id="136766232", track_id="218048716")
delete_playlist(playlist_id="136766232")
⚠️ 重要提示
⚠️ 重要提示
このソフトウェアを使用する前に、rekordboxライブラリの完全なバックアップを作成してください。このソフトウェアはrekordboxデータベースに直接アクセスして分析およびクエリを行います。現在は読み取り専用ですが、予防策として、このツールを使用する前に常にrekordboxライブラリ全体のバックアップを作成してください。
💡 使用建议
これらの安全機能は補助的な保護です。常に独自のバックアップを維持し、このソフトウェアを自己責任で使用してください。
利用可能なツール
検索と発見
search_tracks - 高度な多フィールドトラック検索とフィルタリング(ジャンル、キー、BPM、アーティスト、タイトル、評価など)
get_library_stats - 包括的なライブラリ統計と分析
プレイリスト操作
get_playlists - スマートプレイリストを含むすべてのプレイリストをリスト表示
get_playlist_tracks - 特定のプレイリスト内のすべてのトラックを取得
create_playlist - 新しいプレイリストを作成 ⚠️(変更操作)
add_track_to_playlist - 単一のトラックをプレイリストに追加 ⚠️(変更操作)
add_tracks_to_playlist - 一度に複数のトラックをプレイリストに追加 ⚠️(変更操作)
remove_track_from_playlist - トラックをプレイリストから削除 ⚠️(変更操作)
delete_playlist - プレイリストを永久に削除 ⚠️(破壊的操作)
DJ履歴と分析
get_recent_sessions - 直近のDJセッション履歴とパフォーマンスデータにアクセス
get_session_tracks - 特定のセッションで再生されたすべてのトラックを取得
get_history_stats - 包括的なDJパフォーマンス統計と洞察
リソース
database-status - 現在の接続状態と基本的な統計情報
⚠️ 変更操作はrekordboxデータベースを変更し、自動的にバックアップを作成します。
⚠️ 破壊的操作はデータを永久に削除し、追加の確認が必要です。
安全機能
- 自動バックアップ:すべての変更操作の前に自動的にデータベースのバックアップを作成します。
- FastMCP安全注釈:変更操作と破壊的操作に適切な安全ヒントを提供します。
- スマートプレイリスト保護:インテリジェントプレイリストの削除を防止します。
- 接続検証:データベース接続とアクセスを検証します。
- エラーハンドリング:詳細なロギングとロールバックを備えた包括的なエラーハンドリングを行います。
- 入力検証:すべてのデータベース操作の入力検証を行います。
- バッチ操作の安全性:バッチ操作の成功/失敗に関する詳細なレポートを提供します。
開発
プロジェクト構造
rekordbox_mcp/
__init__.py # パッケージの初期化
server.py # FastMCPサーバーとツールの定義
database.py # データベース接続と操作
models.py # Pydanticデータモデル
テストの実行
uv run pytest
コード品質
uv run black rekordbox_mcp/
uv run ruff rekordbox_mcp/
uv run mypy rekordbox_mcp/
📄 ライセンス
このプロジェクトはMITライセンスの下で公開されています。
免責事項
⚠️ 自己責任で使用してください ⚠️
- このプロジェクトは、AlphaTheta (Pioneer DJ)またはpyrekordboxプロジェクトとは関係がありません。
- このソフトウェアはrekordboxデータベースに直接アクセスします。
- 保証または保証は一切提供されません。
- 開発者はrekordboxライブラリへの損害について責任を負いません。
- このソフトウェアを使用する際には、すべてのリスクを自己責任で負います。
使用する前に常にrekordboxライブラリのバックアップを作成してください。メインライブラリで使用する前に、バックアップコピーで十分にテストしてください。
このソフトウェアを使用することで、これらのリスクを理解し、自己責任で使用することに同意したことになります。