Strudel Mcp Server

Strudel Mcp Server

🚀 Strudel MCP 服务器

🎵 这是一个基于 Strudel.cc 的、可用于生产环境的 MCP 服务器,专为人工智能音乐生成而设计。它能让 Claude 完全控制 Strudel.cc,实现人工智能辅助音乐生成、实时编码和算法作曲等功能。

CI npm 版本

这是一个经过全面测试的模型上下文协议(MCP)服务器,可让 Claude 完全控制 Strudel.cc,用于人工智能辅助音乐生成、实时编码和算法作曲。所有功能均已通过与真实 Strudel.cc 的交互验证

✨ 主要特性

🎹 全面的音乐控制

  • 40 多种 MCP 工具:提供一套全面的音乐创作和操作工具。
  • 真实浏览器自动化:通过 Playwright 直接控制 Strudel.cc。
  • 实时音频分析:通过 Web Audio API 进行实时频率分析。
  • 模式生成:由人工智能驱动,可生成 8 种以上音乐风格的模式。
  • 音乐理论引擎:支持音阶、和弦、进行和欧几里得节奏。
  • 会话管理:可保存、加载、撤销/重做,并存储音乐模式。

🚀 经过验证且可用于生产环境

  • 100% 测试覆盖率:所有工具均已通过与真实 Strudel.cc 的交互测试。
  • 浏览器集成:已确认可与实时网站正常工作。
  • 音频分析:可正常提取实时频率数据。
  • 模式播放:所有生成的模式均可正常播放。
  • 错误处理:可优雅地处理所有边缘情况。

📦 安装指南

从 npm 安装

npm install -g @williamzujkowski/strudel-mcp-server

从源代码安装

# 克隆仓库
git clone https://github.com/williamzujkowski/strudel-mcp-server.git
cd strudel-mcp-server

# 安装依赖
npm install

# 安装用于浏览器自动化的 Chromium
npx playwright install chromium

# 构建项目
npm run build

🚀 快速开始

1. 添加到 Claude

# 如果是全局安装
claude mcp add strudel strudel-mcp

# 如果是从源代码构建
claude mcp add strudel node /path/to/strudel-mcp-server/dist/index.js

2. 开始使用

claude chat

然后向 Claude 提问:

  • "初始化 Strudel 并创建一个Techno节拍"
  • "生成 F 大调的爵士和弦进行"
  • "创建一个 174 BPM 的鼓与贝斯模式"

🛠️ 可用工具(40 多种)

核心控制(10 个工具)

工具 描述 示例
init 在浏览器中初始化 Strudel "初始化 Strudel"
write 将模式写入编辑器 "写入模式:s('bd*4')"
play 开始播放 "播放模式"
stop 停止播放 "停止播放"
clear 清空编辑器 "清空编辑器"
get_pattern 获取当前模式 "显示当前模式"
append 添加到模式 "添加镲片"
insert 在指定行插入 "在第 2 行插入"
replace 替换文本 "将 bd 替换为 sn"
pause 暂停播放 "暂停"

模式生成(10 个工具)

工具 描述 风格/选项
generate_pattern 完成模式 Techno、House、Drum & Bass、Ambient、Trap、Jungle
generate_drums 鼓模式 所有风格 + 复杂度(0 - 1)
generate_bassline 贝斯模式 Techno、House、Drum & Bass、Acid、Dub、Funk、Jazz
generate_melody 旋律线 任何音阶,自定义长度
generate_variation 模式变体 微妙、中等、极端、故障
generate_fill 鼓填充 所有风格,1 - 4 小节
transpose 移调 ±12 半音
reverse 反转模式 -
stretch 时间拉伸 因子 0.1 - 10
humanize 添加节奏变化 程度 0 - 1

音乐理论(10 个工具)

工具 描述 选项
generate_scale 生成音阶 大调、小调、调式、五声音阶、蓝调音阶
generate_chord_progression 和弦进行 流行、爵士、蓝调、摇滚、民谣
generate_euclidean 欧几里得节奏 击打次数/步数/声音
generate_polyrhythm 复节奏 多个模式
apply_scale 将音阶应用于音符 任何音阶
quantize 量化到网格 1/4、1/8、1/16 等

音频与效果(5 个工具)

工具 描述 返回值
analyze 音频分析 频率数据、播放状态
analyze_spectrum FFT 分析 频谱数据
add_effect 添加音频效果 效果链
set_tempo 设置 BPM 60 - 200 BPM
add_swing 添加摇摆感 程度 0 - 1

会话管理(5 个工具)

工具 描述
save 保存带有标签的模式
load 加载已保存的模式
list 列出所有模式
undo 撤销上一个操作
redo 重做操作

💻 使用示例

创建一个 Techno 曲目

你:初始化 Strudel 并创建一个 130 BPM 的 Techno 曲目

Claude:我将为你创建一个 Techno 曲目。
[初始化 Strudel]
[生成包含鼓、贝斯和旋律的模式]
[开始播放]

爵士和弦进行

你:生成 F 大调的 ii-V-I 进行并播放

Claude:[生成:"Gm7" "C7" "Fmaj7"]
[创建带有和声的和弦模式]
[播放进行]

实时音频分析

你:分析当前正在播放的内容

Claude:音频分析显示:
- 强烈的贝斯存在感(180/255)
- 峰值频率:120 Hz(底鼓)
- 模式正在积极播放
- 频率分布均衡

🧪 测试

所有工具均已通过与真实 Strudel.cc 的交互测试:

# 运行集成测试
npm run test:integration

# 运行浏览器测试
node tests/strudel-integration.js

# 测试结果:100% 通过(19/19 个测试)

请参阅 BROWSER_TEST_RESULTS.md 以获取详细的测试结果。

🔧 技术细节

配置文件 config.json

{
"headless": false,        // 设置为 true 以在后台运行
"strudel_url": "https://strudel.cc/",
"patterns_dir": "./patterns",
"audio_analysis": {
"fft_size": 2048,
"smoothing": 0.8
}
}

架构

strudel-mcp-server/
├── src/
│   ├── server/              # MCP 服务器实现
│   │   └── EnhancedMCPServerFixed.ts
│   ├── services/            # 音乐生成
│   │   ├── MusicTheory.ts  # 音阶、和弦、理论
│   │   └── PatternGenerator.ts # 模式创建
│   ├── StrudelController.ts # 浏览器自动化
│   ├── AudioAnalyzer.ts    # Web Audio API 集成
│   └── PatternStore.ts     # 模式持久化
├── tests/                   # 全面的测试套件
│   └── strudel-integration.js # 真实浏览器测试
└── patterns/               # 保存的模式

模式示例

极简 Techno(已验证可正常工作)

setcpm(130)
stack(
s("bd*4").gain(0.9),
s("~ cp ~ cp").room(0.2),
s("hh*16").gain(0.4).pan(sine.range(-0.5, 0.5)),
note("c2 c2 eb2 c2").s("sawtooth").cutoff(800)
).swing(0.05)

鼓与贝斯(已验证可正常工作)

setcpm(174)
stack(
s("bd ~ ~ [bd bd] ~ ~ bd ~, ~ ~ sn:3 ~ ~ sn:3 ~ ~").fast(2),
s("hh*16").gain(0.5),
note("e1 ~ ~ e2 ~ e1 ~ ~").s("sine:2").lpf(200)
)

生成的爵士进行

// F 大调的爵士 ii-V-I
stack(
note("Gm7" "C7" "Fmaj7").struct("1 ~ ~ ~").s("piano"),
note("g2 c2 f2").s("sine").gain(0.7)
)

🐳 Docker 支持

# 构建镜像
docker build -t strudel-mcp .

# 运行容器
docker run -it --rm strudel-mcp

# 或者使用 docker-compose
docker-compose up

🔧 开发

# 开发模式,支持热重载
npm run dev

# 构建 TypeScript
npm run build

# 运行测试
npm test

# 验证 MCP 服务器
npm run validate

📊 性能

  • 模式生成:<100ms
  • 浏览器初始化:~3 秒
  • 模式写入:即时
  • 播放开始:~500ms
  • 音频分析:实时
  • 内存使用:<150MB

🐛 故障排除

浏览器未打开

# 安装 Chromium
npx playwright install chromium

音频分析不起作用

  • 确保模式正在播放
  • 播放后等待 1 - 2 秒再进行分析

模式语法错误

  • 查看 Strudel/TidalCycles 文档
  • 使用更简单的模式进行测试

🤝 贡献

欢迎贡献代码!请遵循以下步骤:

  1. 分叉仓库
  2. 创建一个功能分支
  3. 为新功能添加测试
  4. 确保所有测试通过
  5. 提交拉取请求

📄 许可证

本项目采用 MIT 许可证,请参阅 LICENSE 文件以获取详细信息。

🙏 致谢


v2.2.0 - 已通过与真实 Strudel.cc 的交互全面测试 | 100% 正常工作

  • 0 关注
  • 0 收藏,27 浏览
  • system 提出于 2025-10-02 17:48

相似服务问题

相关AI产品