Skip to main content
Glama
davehenke

rekordbox-mcp

Rekordbox MCP-Server

Ein umfassender Model Context Protocol (MCP)-Server für die rekordbox-Datenbankverwaltung mit Echtzeit-Datenbankzugriff.

Erstellt mit pyrekordbox – Dieses Projekt steht in keiner Verbindung zum pyrekordbox-Projekt oder dessen Betreuern.

Funktionen

🗄️ Datenbankzugriff

  • Direkte SQLite-Datenbankverbindung: Zugriff auf die verschlüsselte rekordbox-Datenbank direkt über pyrekordbox

  • Echtzeit-Abfragen: Suchen und Filtern von Titeln mit umfassenden Kriterien

  • Sichere Mutationsvorgänge: Wiedergabelistenverwaltung mit automatischen Backups und Sicherheitsanmerkungen

🔍 Suche & Entdeckung

  • Erweiterte Suche: Suche über mehrere Felder hinweg, einschließlich Interpret, Titel, Genre, Tonart, BPM und mehr

  • Filterung nach musikalischer Tonart: Finden Sie Titel in kompatiblen Tonarten für harmonisches Mixing

  • BPM-Bereichsabfragen: Suche nach Tempo-Bereichen für Beatmatching

  • Bewertungs- und Wiedergabefilter: Entdecken Sie Ihre beliebtesten und am häufigsten gespielten Titel

📊 Analysen & Einblicke

  • Bibliotheksstatistiken: Umfassende Statistiken, einschließlich Genre-Verteilung, durchschnittlicher BPM und Gesamtabspielzeit

  • Wiedergabe-Analysen: Nachverfolgung von Hörgewohnheiten und Mustern

  • Sammlungseinblicke: Verstehen Sie die Zusammensetzung Ihrer Musikbibliothek

  • Zugriff auf DJ-Verlauf: Voller Zugriff auf Ihren DJ-Sitzungsverlauf und Leistungsdaten

⚙️ Datenbankoperationen

  • Wiedergabelistenverwaltung: Erstellen, Ändern und Löschen von Wiedergabelisten mit Sicherheitsschutz

  • Stapelverarbeitung: Effizientes Hinzufügen mehrerer Titel zu Wiedergabelisten

  • Verlaufsanalyse: Zugriff auf den vollständigen DJ-Sitzungsverlauf und Leistungsdaten

  • Bibliotheksstatistiken: Umfassende Analysen und Einblicke

Related MCP server: MySQL Database Access

Architektur

  • FastMCP-Framework: Moderner Python-MCP-Server unter Verwendung von FastMCP 2.0

  • pyrekordbox-Integration: Ausgereifte Bibliothek für den Zugriff auf verschlüsselte Datenbanken

  • Echtzeit-Datenbankabfragen: Direkte SQLite-Operationen mit SQLCipher-Unterstützung

  • Produktionsbereit: Integrierte Protokollierung, Fehlerbehandlung und Sicherheitsfunktionen

⚠️ Wichtiger Sicherheitshinweis

ERSTELLEN SIE VOR DER VERWENDUNG EIN BACKUP IHRER REKORDBOX-BIBLIOTHEK

Diese Software greift direkt auf Ihre rekordbox-Datenbank zu. Erstellen Sie als Vorsichtsmaßnahme immer ein Backup Ihrer gesamten rekordbox-Bibliothek, bevor Sie dieses Tool verwenden.

Backup-Anforderungen

Sie sollten ein vollständiges Backup Ihrer rekordbox-Bibliothek erstellen, bevor Sie diese Software verwenden. Konsultieren Sie die rekordbox-Dokumentation oder Support-Ressourcen für die korrekten Backup-Verfahren für Ihr spezifisches Setup und Ihre rekordbox-Version.

Anerkennung der Risiken

  • ⚠️ Dieses Projekt greift direkt auf Ihre rekordbox-Datenbank zu

  • ⚠️ Verwendung auf eigene Gefahr – keine Gewährleistung

  • ⚠️ Vor der Verwendung mit Ihrer Hauptbibliothek gründlich mit Backups testen

  • ⚠️ Die Entwickler sind nicht für Datenverlust oder Schäden verantwortlich

Wenn Sie sich mit diesen Risiken nicht wohl fühlen, verwenden Sie stattdessen die schreibgeschützte XML-Exportfunktion.

Schnellstart

Voraussetzungen

  • Python 3.12+

  • rekordbox 6 oder 7 installiert mit einer bestehenden Bibliothek

  • VOLLSTÄNDIGES BACKUP Ihrer rekordbox-Bibliothek (siehe Sicherheitshinweis oben)

  • Schreibgeschützte Tools (Suche, Statistiken, Verlauf) funktionieren, während rekordbox geöffnet ist

  • Schreib-Tools (Wiedergabeliste erstellen, Titel hinzufügen, Bereinigung) erfordern, dass rekordbox geschlossen ist – pyrekordbox blockiert Commits, wenn rekordbox läuft

  • Zugriff auf Ihre rekordbox-Datenbank (automatische Erkennung wird unterstützt)

Installation

# Install dependencies with uv
uv sync

# Run the server
uv run rekordbox-mcp

Konfiguration

Der Server unterstützt sowohl die automatische Datenbankerkennung als auch die manuelle Konfiguration:

# Auto-detect rekordbox database (recommended)
uv run rekordbox-mcp

# Specify custom database path
uv run rekordbox-mcp --database-path /path/to/rekordbox/Pioneer

MCP-Client-Einrichtung

Fügen Sie dies zu Ihrer Claude Desktop-Konfiguration hinzu:

{
  "mcpServers": {
    "rekordbox-database": {
      "command": "uv",
      "args": ["run", "rekordbox-mcp"],
      "cwd": "/path/to/rekordbox-mcp"
    }
  }
}

Verfügbare Tools (29 Tools + 1 Ressource)

Suche & Entdeckung

  • search_tracks - Erweiterte Suche über mehrere Felder mit Filterung (Genre, Tonart, BPM, Interpret, Titel, Bewertung usw.)

  • get_track_details - Abrufen vollständiger Metadaten für einen bestimmten Titel per ID

  • get_tracks_by_key - Finden von Titeln in einer bestimmten musikalischen Tonart (z. B. "5A", "12B")

  • get_tracks_by_bpm_range - Finden von Titeln innerhalb eines BPM-Bereichs

  • get_genre_filepaths - Abrufen von Dateipfaden für Titel, die einem Genre entsprechen (token-effizient, gibt nur Pfade zurück)

  • get_most_played_tracks - Abrufen von Titeln, sortiert nach Wiedergabeanzahl

  • get_top_rated_tracks - Abrufen von Titeln, sortiert nach Bewertung

  • get_unplayed_tracks - Abrufen von Titeln mit null Wiedergaben

  • get_track_file_path - Abrufen des Dateisystempfads für einen bestimmten Titel

  • search_tracks_by_filename - Suchen von Titeln nach teilweiser Übereinstimmung des Dateinamens

Bibliotheksanalysen

  • get_library_stats - Umfassende Bibliotheksstatistiken (Titelanzahl, Abspielzeit, BPM, Genres)

  • analyze_library - Benutzerdefinierte Gruppierung und Aggregation (nach Genre, Tonart, Jahr, Interpret oder Bewertung)

  • validate_track_ids - Überprüfen einer Liste von Titel-IDs und Berichten, welche gültig/ungültig sind

Wiedergabelisten-Operationen

  • get_playlists - Auflisten aller Wiedergabelisten, einschließlich intelligenter Wiedergabelisten

  • get_playlist_tracks - Abrufen aller Titel in einer bestimmten Wiedergabeliste

  • create_playlist - Erstellen einer neuen Wiedergabeliste oder eines Ordners ⚠️ (Mutation)

  • add_track_to_playlist - Hinzufügen eines einzelnen Titels zur Wiedergabeliste ⚠️ (Mutation)

  • add_tracks_to_playlist - Hinzufügen mehrerer Titel zur Wiedergabeliste in einem Vorgang ⚠️ (Mutation)

  • remove_track_from_playlist - Entfernen eines Titels aus der Wiedergabeliste ⚠️ (Mutation)

  • delete_playlist - Dauerhaftes Löschen einer Wiedergabeliste ⚠️ (Destruktiv)

DJ-Verlauf & Analysen

  • get_history_sessions - Abrufen aller DJ-Verlaufssitzungen mit Metadaten

  • get_session_tracks - Abrufen aller in einer bestimmten Sitzung gespielten Titel

  • get_recent_sessions - Abrufen von Sitzungen innerhalb einer bestimmten Anzahl von Tagen

  • search_history_sessions - Suchen von Sitzungen nach Name, Jahr, Monat oder Mindestanzahl an Titeln

  • get_history_stats - Umfassende Statistiken und Einblicke zur DJ-Performance

Bibliotheksbereinigung

  • find_broken_tracks - Scannen nach fehlenden Dateien, Apple Music-Streams, leeren Pfaden und verwaisten Wiedergabelisten-Referenzen

  • cleanup_orphaned_playlist_entries - Entfernen veralteter Wiedergabelisteneinträge, die auf gelöschte Titel verweisen ⚠️ (Mutation)

  • remove_broken_tracks - Soft-Löschen von Titeln nach ID und Entfernen aus allen Wiedergabelisten ⚠️ (Destruktiv)

Datenbankverwaltung

  • connect_database - Explizites Verbinden mit optionalem benutzerdefiniertem Datenbankpfad

Ressourcen

  • database-status - Aktueller Verbindungsstatus und grundlegende Statistiken

⚠️ Mutationsvorgänge ändern Ihre rekordbox-Datenbank und erstellen automatische Backups ⚠️ Destruktive Vorgänge löschen Daten dauerhaft und erfordern eine zusätzliche Bestätigung

Beispiele

Suche nach Titeln nach Tonart und BPM

# Find tracks in 5A key with BPM between 120-130
search_tracks(key="5A", bpm_min=120, bpm_max=130, limit=20)

Zugriff auf den DJ-Verlauf

# Get recent DJ sessions
get_recent_sessions(days=30)

# Get tracks from a specific session
get_session_tracks(session_id="12345")

Einblicke in die Bibliothek erhalten

# Comprehensive library statistics
get_library_stats()

# DJ performance statistics
get_history_stats()

Wiedergabelistenverwaltung

# 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")

Sicherheitsfunktionen

  • Automatische Backups: Alle Mutationsvorgänge erstellen vor Änderungen automatische Datenbank-Backups

  • FastMCP-Sicherheitsanmerkungen: Korrekte Sicherheitshinweise für Mutations- und destruktive Vorgänge

  • Schutz intelligenter Wiedergabelisten: Verhindert das Löschen intelligenter Wiedergabelisten

  • Verbindungsvalidierung: Validiert Datenbankverbindungen und Zugriff

  • Fehlerbehandlung: Umfassende Fehlerbehandlung mit detaillierter Protokollierung und Rollback

  • Eingabevalidierung: Eingabevalidierung für alle Datenbankoperationen

  • Sicherheit bei Stapelverarbeitung: Detaillierte Berichterstattung über Erfolg/Misserfolg von Stapelvorgängen

⚠️ Wichtig: Diese Sicherheitsfunktionen sind ergänzende Schutzmaßnahmen. Führen Sie immer Ihre eigenen Backups durch und verwenden Sie diese Software auf eigene Gefahr.

Entwicklung

Projektstruktur

rekordbox_mcp/
   __init__.py          # Package initialization
   server.py            # FastMCP server and tool definitions
   database.py          # Database connection and operations
   models.py            # Pydantic data models

Tests ausführen

uv run pytest

Code-Qualität

# Format code
uv run black rekordbox_mcp/

# Lint code
uv run ruff rekordbox_mcp/

# Type checking
uv run mypy rekordbox_mcp/

Lizenz

MIT-Lizenz

Haftungsausschluss

⚠️ VERWENDUNG AUF EIGENE GEFAHR ⚠️

  • Dieses Projekt ist nicht mit AlphaTheta (Pioneer DJ) oder dem pyrekordbox-Projekt verbunden

  • Diese Software greift direkt auf Ihre rekordbox-Datenbank zu

  • Es wird keine Gewährleistung oder Garantie übernommen

  • Die Entwickler sind nicht verantwortlich für Schäden an Ihrer rekordbox-Bibliothek

  • Sie tragen das volle Risiko, wenn Sie diese Software verwenden

Erstellen Sie IMMER ein Backup Ihrer rekordbox-Bibliothek vor der Verwendung. Testen Sie gründlich mit Backup-Kopien, bevor Sie sie auf Ihrer Hauptbibliothek verwenden.

Durch die Nutzung dieser Software bestätigen Sie, dass Sie diese Risiken verstehen und zustimmen, sie auf eigene Verantwortung zu nutzen.

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