Skip to main content
Glama
davehenke

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/Pioneer

MCPクライアントの設定

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