rekordbox-mcp
Rekordbox MCP Server
リアルタイムのデータベースアクセスを備えた、rekordboxデータベース管理用の包括的なModel Context Protocol (MCP) サーバーです。
pyrekordbox を使用して構築されています - このプロジェクトは、pyrekordboxプロジェクトやそのメンテナーとは提携していません。
機能
🗄️ データベースアクセス
直接的なSQLiteデータベース接続: pyrekordboxを使用して、暗号化されたrekordboxデータベースに直接アクセスします
リアルタイムクエリ: 包括的な条件でトラックを検索・フィルタリングします
安全な変更操作: 自動バックアップと安全注釈付きのプレイリスト管理
🔍 検索と発見
高度な検索: アーティスト、タイトル、ジャンル、キー、BPMなどを横断した複数フィールド検索
音楽キーフィルタリング: ハーモニックミキシングに適したキーのトラックを検索
BPM範囲クエリ: ビートマッチングのためのテンポ範囲による検索
評価と再生回数フィルタ: お気に入りのトラックや再生回数の多いトラックを発見
📊 分析とインサイト
ライブラリ統計: ジャンル分布、平均BPM、合計再生時間などの包括的な統計
再生回数分析: トラックのリスニングパターンと習慣を追跡
コレクションインサイト: 音楽ライブラリの構成を把握
DJ履歴アクセス: DJセッション履歴とパフォーマンスデータへの完全アクセス
⚙️ データベース操作
プレイリスト管理: 安全保護付きでプレイリストを作成、変更、削除
バッチ操作: 複数のトラックを効率的にプレイリストに追加
履歴分析: DJセッション履歴とパフォーマンスデータへの完全アクセス
ライブラリ統計: 包括的な分析とインサイト
Related MCP server: MySQL Database Access
アーキテクチャ
FastMCPフレームワーク: FastMCP 2.0を使用した最新のPython MCPサーバー
pyrekordbox統合: 暗号化されたデータベースアクセスのための成熟したライブラリ
リアルタイムデータベースクエリ: SQLCipherサポートを備えた直接的なSQLite操作
本番環境対応: 組み込みのログ記録、エラー処理、安全機能
⚠️ 重要な安全上の注意
使用前にREKORDBOXライブラリをバックアップしてください
このソフトウェアは、rekordboxデータベースに直接アクセスします。予防措置として、このツールを使用する前に、必ずrekordboxライブラリ全体のバックアップを作成してください。
バックアップ要件
このソフトウェアを使用する前に、rekordboxライブラリの完全なバックアップを作成する必要があります。 お使いの環境やrekordboxのバージョンに応じた適切なバックアップ手順については、rekordboxのドキュメントやサポートリソースを参照してください。
リスクの承認
⚠️ このプロジェクトはrekordboxデータベースに直接アクセスします
⚠️ 自己責任で使用してください - 保証は提供されません
⚠️ メインライブラリで使用する前に、バックアップで十分にテストしてください
⚠️ 開発者は、データの損失や損害に対して責任を負いません
これらのリスクに納得できない場合は、代わりに読み取り専用のXMLエクスポート機能を使用してください。
クイックスタート
前提条件
Python 3.12以上
既存のライブラリを持つrekordbox 6または7がインストールされていること
rekordboxライブラリの完全なバックアップ(上記の安全上の注意を参照)
読み取り専用ツール(検索、統計、履歴)は、rekordboxが開いている間も動作します
書き込みツール(プレイリスト作成、トラック追加、クリーンアップ)は、rekordboxが閉じている必要があります — rekordboxが実行されている間、pyrekordboxはコミットをブロックします
rekordboxデータベースへのアクセス(自動検出をサポート)
インストール
# Install dependencies with uv
uv sync
# Run the server
uv run rekordbox-mcp設定
サーバーは、データベースの自動検出と手動設定の両方をサポートしています:
# Auto-detect rekordbox database (recommended)
uv run rekordbox-mcp
# Specify custom database path
uv run rekordbox-mcp --database-path /path/to/rekordbox/PioneerMCPクライアントの設定
Claude Desktopの設定に追加してください:
{
"mcpServers": {
"rekordbox-database": {
"command": "uv",
"args": ["run", "rekordbox-mcp"],
"cwd": "/path/to/rekordbox-mcp"
}
}
}利用可能なツール(29ツール + 1リソース)
検索と発見
search_tracks- フィルタリング(ジャンル、キー、BPM、アーティスト、タイトル、評価など)を備えた高度な複数フィールドトラック検索get_track_details- IDによる特定のトラックの完全なメタデータを取得get_tracks_by_key- 特定の音楽キー(例: "5A", "12B")のトラックを検索get_tracks_by_bpm_range- BPM範囲内のトラックを検索get_genre_filepaths- ジャンルに一致するトラックのファイルパスを取得(トークン効率的、パスのみを返します)get_most_played_tracks- 再生回数順にランク付けされたトラックを取得get_top_rated_tracks- 評価順にランク付けされたトラックを取得get_unplayed_tracks- 再生回数がゼロのトラックを取得get_track_file_path- 特定のトラックのファイルシステムパスを取得search_tracks_by_filename- 部分的なファイル名一致でトラックを検索
ライブラリ分析
get_library_stats- 包括的なライブラリ統計(トラック数、再生時間、BPM、ジャンル)analyze_library- カスタムグループ化と集計(ジャンル、キー、年、アーティスト、または評価別)validate_track_ids- トラックIDのリストを検証し、有効/無効を報告
プレイリスト操作
get_playlists- スマートプレイリストを含むすべてのプレイリストを一覧表示get_playlist_tracks- 特定のプレイリスト内のすべてのトラックを取得create_playlist- 新しいプレイリストまたはフォルダを作成 ⚠️ (変更)add_track_to_playlist- 単一のトラックをプレイリストに追加 ⚠️ (変更)add_tracks_to_playlist- 1回の操作で複数のトラックをプレイリストに追加 ⚠️ (変更)remove_track_from_playlist- プレイリストからトラックを削除 ⚠️ (変更)delete_playlist- プレイリストを完全に削除 ⚠️ (破壊的)
DJ履歴と分析
get_history_sessions- メタデータを含むすべてのDJ履歴セッションを取得get_session_tracks- 特定のセッションで再生されたすべてのトラックを取得get_recent_sessions- 指定した日数以内のセッションを取得search_history_sessions- 名前、年、月、または最小トラック数でセッションを検索get_history_stats- 包括的なDJパフォーマンス統計とインサイト
ライブラリのクリーンアップ
find_broken_tracks- 見つからないファイル、Apple Musicストリーム、空のパス、孤立したプレイリスト参照をスキャンcleanup_orphaned_playlist_entries- 削除されたトラックを参照している古いプレイリストエントリを削除 ⚠️ (変更)remove_broken_tracks- IDでトラックをソフト削除し、すべてのプレイリストから削除 ⚠️ (破壊的)
データベース管理
connect_database- オプションのカスタムデータベースパスを指定して明示的に接続
リソース
database-status- 現在の接続状態と基本的な統計
⚠️ 変更操作はrekordboxデータベースを変更し、自動バックアップを作成します ⚠️ 破壊的操作はデータを完全に削除するため、追加の確認が必要です
例
キーとBPMによるトラック検索
# Find tracks in 5A key with BPM between 120-130
search_tracks(key="5A", bpm_min=120, bpm_max=130, limit=20)DJ履歴へのアクセス
# Get recent DJ sessions
get_recent_sessions(days=30)
# Get tracks from a specific session
get_session_tracks(session_id="12345")ライブラリインサイトの取得
# Comprehensive library statistics
get_library_stats()
# DJ performance statistics
get_history_stats()プレイリスト管理
# Create a new playlist
create_playlist(name="Hidden Bangers", parent_id="root")
# Add single track to playlist
add_track_to_playlist(playlist_id="136766232", track_id="218048716")
# Add multiple tracks efficiently (recommended for batch operations)
add_tracks_to_playlist(
playlist_id="136766232",
track_ids=["218048716", "253968855", "148359536", "76341043"]
)
# Remove track from playlist
remove_track_from_playlist(playlist_id="136766232", track_id="218048716")
# Delete playlist (with safety confirmation)
delete_playlist(playlist_id="136766232")安全機能
自動バックアップ: すべての変更操作は、変更前に自動データベースバックアップを作成します
FastMCP安全注釈: 変更および破壊的操作に対する適切な安全ヒント
スマートプレイリスト保護: インテリジェントプレイリストの削除を防止
接続検証: データベース接続とアクセスを検証
エラー処理: 詳細なログ記録とロールバックを備えた包括的なエラー処理
入力検証: すべてのデータベース操作に対する入力検証
バッチ操作の安全性: バッチ操作の成功/失敗に関する詳細なレポート
⚠️ 重要: これらの安全機能は補助的な保護です。常に独自のバックアップを維持し、自己責任でこのソフトウェアを使用してください。
開発
プロジェクト構造
rekordbox_mcp/
__init__.py # Package initialization
server.py # FastMCP server and tool definitions
database.py # Database connection and operations
models.py # Pydantic data modelsテストの実行
uv run pytestコード品質
# Format code
uv run black rekordbox_mcp/
# Lint code
uv run ruff rekordbox_mcp/
# Type checking
uv run mypy rekordbox_mcp/ライセンス
MITライセンス
免責事項
⚠️ 自己責任で使用してください ⚠️
このプロジェクトは、AlphaTheta (Pioneer DJ) やpyrekordboxプロジェクトとは提携していません
このソフトウェアはrekordboxデータベースに直接アクセスします
いかなる保証も提供されません
開発者は、rekordboxライブラリへのいかなる損害に対しても責任を負いません
このソフトウェアを使用する際は、すべてのリスクを負うものとします
使用前に必ずrekordboxライブラリをバックアップしてください。メインライブラリで使用する前に、バックアップコピーで十分にテストしてください。
このソフトウェアを使用することにより、これらのリスクを理解し、自己責任で使用することに同意したものとみなされます。
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/davehenke/rekordbox-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server