article
README
🚀 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 音乐库。在主音乐库上使用前,请使用备份副本进行全面测试。
使用此软件即表示你已了解这些风险,并同意自行承担使用责任。
微信扫一扫