Rekordbox Mcp

Rekordbox Mcp

🚀 Rekordbox MCP Server

Rekordbox MCP Server 是一个全面的模型上下文协议(MCP)服务器,用于 rekordbox 数据库管理,支持实时数据库访问。

基于 pyrekordbox 构建 - 本项目与 pyrekordbox 项目或其维护者无关联。

🚀 快速开始

前提条件

  • Python 3.12 及以上版本
  • 安装了 rekordbox 6 或 7 并已有音乐库
  • 完整备份你的 rekordbox 音乐库(详见下方重要安全提示)
  • 使用此工具时,rekordbox 必须完全关闭
  • 能够访问你的 rekordbox 数据库(支持自动检测)

安装

# 使用 uv 安装依赖
uv sync

# 运行服务器
uv run rekordbox-mcp

配置

服务器支持自动检测数据库和手动配置:

# 自动检测 rekordbox 数据库(推荐)
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 搜索曲目
# 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")

⚠️ 重要提示

⚠️ 重要提示

本软件直接访问你的 rekordbox 数据库进行分析和查询。虽然目前为只读模式,但作为预防措施,使用此工具前请始终备份你的整个 rekordbox 音乐库。

你应该在使用此软件前完整备份你的 rekordbox 音乐库。请参考 rekordbox 文档或支持资源,了解适合你特定设置和 rekordbox 版本的正确备份程序。

  • ⚠️ 本项目直接访问你的 rekordbox 数据库
  • ⚠️ 使用风险自负 - 不提供任何保证
  • ⚠️ 在主音乐库上使用前,请使用备份进行全面测试
  • ⚠️ 开发者对任何数据丢失或损坏不承担责任

如果你对这些风险感到不安,请使用只读 XML 导出功能

📄 许可证

本项目采用 MIT 许可证。

免责声明

⚠️ 使用风险自负 ⚠️

  • 本项目与 AlphaTheta(Pioneer DJ)或 pyrekordbox 项目无关联
  • 本软件直接访问你的 rekordbox 数据库
  • 不提供任何保证或担保
  • 开发者对任何损坏你的 rekordbox 音乐库的情况不承担责任
  • 使用此软件时,你需承担所有风险

使用前请始终备份你的 rekordbox 音乐库。在主音乐库上使用前,请使用备份副本进行全面测试。

使用此软件即表示你已了解这些风险,并同意自行承担使用责任。

  • 0 关注
  • 0 收藏,11 浏览
  • system 提出于 2025-09-27 21:33

相似服务问题