🎤 RhymeBook - Music Artist MCP App
Your AI-powered creative studio for writing lyrics, finding beats, and tracking sessions.
40+ tools to supercharge your music workflow — from rhyme schemes to vocal separation.
⭐ Star on GitHub • 🐛 Report Bug • 💡 Request Feature
______________________________________________________________________
🎯 什么是RhymeBook?
RhymeBook是一本 人工智能音乐制作助手 它存在于你最喜欢的人工智能工具(Claude Desktop、VS Code等)中。它将强大的歌词写作工具、节拍管理和会话跟踪整合到一个无缝的工作流程中。
艺术家为什么喜欢它
| 🎤 写的更好 | 🎧 寻找完美节拍 | 📊 保持条理 |
|---|---|---|
| AI押韵查找器,支持倾斜和多音节匹配 | 按流派、情绪、BPM和能量过滤 | 跟踪每个会话、拍摄和合作者 |
| 实时音节计数和流量分析 | 使用AI将歌词与节拍匹配 | 写作的视觉进度→ 释放 |
| 导出为文本、markdown、JSON或LRC | 波形可视化和音频效果 | 持久SQLite数据库 |
🚀 由模型上下文协议提供支持
RhymeBook使用MCP让AI助手直接访问您的音乐工具。让克劳德找到押韵、记录一段视频或浏览节拍——这一切都是通过自然对话瞬间发生的。
🤖 克劳德技能包括
RhymeBook附带了 内置克劳德技能 提供智能辅助:
- 智能工具选择 -自动为您的请求选择合适的工具
- 创意合作伙伴 -主动建议押韵、流程改进和节拍匹配
- 工作流程指导 -指导您完成写作、录音和制作
- 自然语言 -自然提问,无需记住工具名称
技能位于 .claude/skills/SKILL.md 当您提到与音乐相关的术语时,它会自动激活。
______________________________________________________________________
✨ 特性
📊 仪表盘
- 概述统计数据 -歌曲、会话、拍摄、节拍、合作者总数
- 歌曲进度漏斗 -从编写到发布的视觉管道
- 每周活动图 -8周趋势可视化
- 活动提要 -通过过滤实时提供所有操作
- 洞察 -最高效的一天、平均会话长度、完成率
- 最近的项目 -快速访问最近的歌曲和会话
- 快捷操作 -一键访问常见任务
- Beat图书馆统计数据 -节拍收集概述
🎵 抒情实验室
- 韵律查找器 -找到完美、倾斜和多音节的押韵
- 音节计数器 -每行活音节计数
- 流动可视化仪 -节奏模式的视觉表现
- 同义词词典 -上下文单词建议
- 章节组织者 -管理诗句、合唱、桥梁等
- 保存和导出 -以文本、markdown、JSON或LRC格式导出歌词
- 导入歌词 -从TXT、JSON、LRC或SRT文件导入
- 批量导入/导出 -一次处理多个文件
🎛️ 会话追踪器
- 项目仪表板 -正在播放的所有歌曲概述
- 拿经理 -日志和速率记录得分(1-5颗星)
- 协作跟踪器 -管理功能、生产商、工程师
- 里程碑进度 -视觉进度条(书写→ 录制→ 混合→ 掌握)
- 备注与反馈 -为会议添加注释
- 永久存储 -所有数据保存到SQLite数据库
🎧 Beat Explorer
- 浏览和筛选 -按流派、情绪、BPM、能量水平过滤
- Wavesurfer.js波形 -专业波形可视化
- 频率可视化仪 -播放过程中的实时频率条
- 音频播放器 -带寻道、音量的完整播放控制
- 音频效果 -混响、延迟、失真和3频带均衡器(Tone.js)
- 擦洗吧 -交互式进度条,可拖动以查找
- 自动BPM/密钥检测 -音乐元数据分析音频文件
- 收藏夹和收藏 -将节拍组织到播放列表中
- 击败Matcher的歌词 -AI建议匹配歌词能量的节拍
- 图书馆管理 -为节拍文件设置自定义文件夹路径
- 自动导入 -扫描并从库文件夹导入节拍
- 复制到库 -将任何地方的节拍添加到您的库中
- 声乐分离 -Spleeter AI用于茎提取
⚡ 性能与安全
性能优化
- 异步文件操作 -所有文件I/O都是非阻塞的
- 数据库索引 -针对常见操作的优化查询
- 并行仪表板查询 -更快的仪表板加载
- 扫描缓存 -Beat库扫描缓存1分钟
- 实时人声去除 -无需重新启动播放
- 动态库加载 -按需加载Tone.js和Wavesurfer.js
- 优化捆绑包大小 -634KB单文件包(低于5MB MCP限制)
- 摇树优化 -未使用的代码已自动删除
- Terser小型化 -生产代码压缩和优化
安全特性
- 路径横向保护 -验证所有文件路径
- 速率限制 -每15分钟100个请求
- CORS配置 -基于环境的起源同种异体
- 输入验证 -具有长度限制的Zod模式
- 优雅地关闭 -适当的清理处理人员
🚀 快速开始
先决条件
- Node.js 18+
- npm或pnpm
- FFmpeg (用于音频处理)
- Spleeter (用于声音分离)
安装FFmpeg
窗户(巧克力):
choco install ffmpegWindows(手动):
- 下载自 ffmpeg.org
- 添加到PATH环境变量
macOS(Homebrew):
brew install ffmpegLinux(Ubuntu/Debian):
sudo apt update && sudo apt install ffmpeg安装Spleeter
通过pip:
pip install spleeter通过县 :
conda install -c conda-forge spleeter注: Spleeter需要Python 3.7+,并将在首次使用时下载AI模型(约265MB)。
# Clone the repository
git clone https://github.com/yourusername/rhymebook-mcp-server.git
cd rhymebook-mcp-server
# Install dependencies
npm install
# Build the project
npm run build运行服务器
HTTP模式(适用于基于web的主机)
npm start
# Server runs on http://localhost:3001
# MCP endpoint: http://localhost:3001/mcp标准模式(适用于克劳德桌面)
npm run start:stdio开发模式
npm run dev
# Runs both server and UI in watch mode📁 项目结构
rhymebook-mcp-server/
├── src/
│ ├── server/
│ │ └── index.ts # MCP server entry point
│ ├── tools/
│ │ ├── lyric-lab.ts # Lyric Lab tools (9 tools)
│ │ ├── session-tracker.ts # Session Tracker tools (10 tools)
│ │ ├── beat-explorer.ts # Beat Explorer tools (14 tools)
│ │ └── dashboard.ts # Dashboard tools (4 tools)
│ ├── db/
│ │ ├── database.ts # SQLite database setup
│ │ ├── operations.ts # Database CRUD operations
│ │ ├── beats-library.ts # Beat library file management
│ │ └── lyrics-io.ts # Lyrics import/export
│ └── ui/
│ ├── index.html # Main HTML template
│ ├── styles.css # UI styles (dark theme)
│ ├── main.ts # Client-side logic
│ ├── audio-engine.ts # Web Audio API engine
│ ├── visualizers.ts # Waveform & frequency visualizers
│ └── beat-player.ts # Beat player component
├── dist/
│ ├── server/ # Compiled server code
│ └── ui/
│ └── index.html # Bundled single-file UI
├── claude_desktop_config.example.json # Example Claude Desktop config
├── CONFIGURATION.md # Detailed configuration guide
├── package.json
├── tsconfig.json
├── tsconfig.server.json
└── vite.config.ts🛠️ 可用工具
歌词实验室工具
| 工具 | 说明 |
|---|---|
find-rhymes | 找到完美、倾斜和多音节的押韵 |
count-syllables | 计算歌词中的音节 |
analyze-flow | 分析节奏和流动模式 |
get-synonyms | 获取上下文同义词 |
save-lyrics | 将歌词保存到数据库 |
export-lyrics | 导出歌词(文本、标记、JSON、LRC) |
import-lyrics | 从文件或文本导入歌词 |
batch-import-lyrics | 从目录导入所有歌词 |
get-all-songs | 获取所有已保存的歌曲 |
会话跟踪工具
| 工具 | 说明 |
|---|---|
get-project-dashboard | 获取所有歌曲的概览 |
get-recording-sessions | 获取录制会话 |
log-take | 记录新的录制内容 |
get-collaborators | 获取所有合作者 |
update-song-progress | 更新歌曲状态和进度 |
add-session-note | 向会话添加注释 |
create-song | 创建一首新歌项目 |
create-session | 安排录制会话 |
add-collaborator | 添加新合作者 |
Beat资源管理器工具
| 工具 | 说明 |
|---|---|
browse-beats | 浏览和过滤节拍 |
get-beat-details | 获取详细的节拍信息 |
toggle-favorite | 添加/删除收藏夹 |
get-collections | 获取所有热门系列 |
add-to-collection | 将节拍添加到收藏中 |
create-collection | 创建新收藏 |
match-lyrics-to-beat | 查找匹配歌词的节拍 |
get-beat-stats | 获取库统计信息 |
add-beat | 添加新节拍(自动检测BPM/按键) |
analyze-audio | 分析音频文件的BPM、密钥、持续时间 |
音频处理工具
| 工具 | 说明 |
|---|---|
separate-audio | 使用Spleeter AI将音频分离成音干 |
extract-vocals | 从曲目中提取人声 |
check-audio-tools | 检查可用的音频处理工具 |
图书馆管理工具
| 工具 | 说明 |
|---|---|
get-library-path | 获取当前节拍库路径 |
set-library-path | 设置beats库文件夹路径 |
scan-library | 扫描库中的音频文件 |
import-beats | 从库中导入新节拍 |
copy-beat-to-library | 将节拍文件复制到库 |
仪表板工具
| 工具 | 说明 |
|---|---|
get-dashboard-summary | 全面了解所有数据 |
get-recent-activity | 通过过滤获取活动提要 |
get-progress-stats | 获取详细的进度统计数据 |
get-quick-stats | 获取小部件的快速统计数据 |
🎨 UI功能
- 深色主题 -适合深夜使用
- 响应式设计 -适用于台式机和平板电脑
- 实时更新 -键入时即时反馈
- 吐司通知 -明确的行动反馈
- 模态对话框 -清洁导出界面
- 拖放 -重新排序歌曲部分
- 键盘快捷键 -Ctrl+S(保存),Ctrl+N(新建),空格(播放/暂停),退出(关闭模式)
- 自动保存 -30秒不活动后自动保存
- 加载状态 -异步操作期间的视觉反馈
🎤 嗓音去除
RhymeBook包括用于练习和混音的实时人声删除:
- 中心通道提取 -从立体声曲目中删除居中的人声
- 实时调整 -平滑的滑块控制,没有音频故障
- 频率滤波 -减弱人声频率范围(250Hz-3.5kHz)
如何使用
- 在节拍资源管理器中加载节拍
- 使用 🎤 人声 播放器控件中的滑块
- 向右滑动以减少人声(0%=原始,100%=最大去除率)
最佳效果
- ✅ 立体声曲目,人声居中
- ✅ 现代流行/嘻哈作品
- ⚠️ 较旧的立体声混音(中等效果)
- ❌ 单声道音轨(无需提取立体声信息)
💾 数据库
RhymeBook使用SQLite进行持久存储。数据库在以下位置自动创建:
- 视窗:
%USERPROFILE%\.rhymebook\rhymebook.db - Mac/Linux:
~/.rhymebook/rhymebook.db
数据库模式
| 表 | 说明 |
|---|---|
songs | 歌曲项目,包括标题、状态、进度、注释 |
song_sections | 按章节类型(诗歌、合唱等)组织的歌词 |
collaborators | 艺术家、制作人、工程师、作家 |
song_collaborators | 歌曲与合作者之间的多对多关系 |
recording_sessions | 工作室会话跟踪,包括日期、工作室、工程师 |
takes | 个人录音带评级(1-5星) |
beats | 使用BPM、密钥、能量、文件路径击败库 |
beat_genres | 节拍的类型标签(多对多) |
beat_moods | 节拍的情绪标签(多对多) |
beat_tags | 节拍自定义标签 |
collections | 命名节拍播放列表 |
collection_beats | 以位置击败系列 |
settings | 应用程序配置(库路径、主题) |
数据库索引
针对常见查询优化索引:
- 按状态和更新日期分类的歌曲
- 按日期和歌曲分类的会议
- 按会话和时间戳取值
- 超越最喜爱的状态、BPM和能量
📁 Beats图书馆管理
设置库路径
使用 set-library-path 指向beats文件夹的工具:
Set library path: C:\Users\You\Music\Beats支持的音频格式
- MP3、WAV、FLAC、AAC、OGG、M4A、WMA
自动导入节拍
- 设置库路径
- 跑
scan-library查看所有音频文件 - 跑
import-beats将它们添加到数据库中
文件名解析
RhymeBook会自动从文件名中提取信息:
Beat Name 140BPM Am.mp3→ 标题:《节拍名》,BPM:140,Key:AmDark_Trap_150_Cm.wav→ 标题:“黑暗陷阱”,BPM:150,密钥:Cm
⚙️ 配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
PORT | HTTP服务器端口 | 3001 |
ALLOWED_ORIGINS | 逗号分隔的CORS源 | http://localhost:3000,http://localhost:3001,http://localhost:5173 |
Claude桌面配置
添加到您的 claude_desktop_config.json:
窗户:
{
"mcpServers": {
"rhymebook": {
"command": "node",
"args": ["C:\\Users\\YourUsername\\path\\to\\rhymebook-mcp-server\\dist\\server\\index.js", "--stdio"]
}
}
}macOS/Linux:
{
"mcpServers": {
"rhymebook": {
"command": "node",
"args": ["/Users/yourusername/path/to/rhymebook-mcp-server/dist/server/index.js", "--stdio"]
}
}
}使用环境变量:
{
"mcpServers": {
"rhymebook": {
"command": "node",
"args": ["/path/to/rhymebook-mcp-server/dist/server/index.js", "--stdio"],
"env": {
"PORT": "3001"
}
}
}
}VS代码配置
添加到您的VS代码 settings.json:
{
"mcp.servers": {
"rhymebook": {
"command": "node",
"args": ["${workspaceFolder}/dist/server/index.js", "--stdio"]
}
}
}HTTP模式(适用于基于web的主机)
{
"mcpServers": {
"rhymebook-http": {
"url": "http://localhost:3001/mcp"
}
}
}📖 有关详细的配置说明,请参阅 配置.md
📝 使用示例
寻找韵律
User: Find rhymes for "flow"
Assistant: [Calls find-rhymes tool]
Result: Perfect: go, show, know, grow...
Slant: soul, roll, control...
Multi: overflow, undertow...将歌词与Beats匹配
User: I have aggressive lyrics about hustling, find me a beat
Assistant: [Calls match-lyrics-to-beat with lyrics]
Result: Suggested beats ranked by energy/mood match跟踪录制会话
User: Log take 4 for today's session - 5 stars, best take!
Assistant: [Calls log-take tool]
Result: Take logged, marked as best take获取仪表板概述
User: Show me my project dashboard
Assistant: [Calls get-dashboard-summary tool]
Result: Overview stats, recent activity, insights嗓音去除
User: Play this beat with vocals removed
Assistant: [Loads beat in player, sets vocal removal to 100%]
Result: Instrumental version plays🗺️ 路线图
- \[\]SoundCloud集成用于节拍发现
- \[\]Spotify播放列表同步
- \[\]基于人工智能的歌词建议
- \[\]具有实时同步功能的协作会话
- \[\]移动伴侣应用程序
- \[\]导出为DAW格式(MIDI、词干)
🤝 贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
开发设置
# Clone your fork
git clone https://github.com/yourusername/rhymebook-mcp-server.git
cd rhymebook-mcp-server
# Install dependencies
npm install
# Run tests
npm test
# Start development server
npm run dev📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
👤 作者
安东尼·M·卡瓦诺 (他/他)
- 公司: 卡瓦诺设计工作室
- github: @cavanaughdesign
- 电子邮件:cavanaughdesign@gmail.com
- 推特/X: @cavanaughdesign
- Instagram: @卡瓦诺设计工作室
🙏 致谢
- 建于 模型上下文协议
- UI由 MCP应用软件开发工具包
- 数据库由 更好的SQLite3
- 受到各地音乐艺术家创作过程的启发
______________________________________________________________________
Made with 🎤 by Cavanaugh Design Studio
For artists who rap, write, and create
