返回市场
斯特德尔-MCP-桥接器

斯特德尔-MCP-桥接器

作者:phildougherty13 星标更新:2025-10-23

项目介绍

Strudel MCP Bridge

一个模型上下文协议(Model Context Protocol)服务器,使AI助手能够使用Strudel实时编码模式来创作音乐。此桥接器允许Claude Desktop和其他兼容MCP的AI助手通过浏览器实时生成、执行和修改Strudel模式。

功能

  • 从自然语言描述实时生成Strudel模式
  • 实时修改和迭代模式
  • 浏览器集成并提供视觉反馈
  • 支持2000多种Strudel声音和鼓机
  • 基于WebSocket的通信以实现即时音频播放
  • 完整的模式验证和错误处理

架构

Claude Desktop → MCP Server → WebSocket → 浏览器扩展 → Strudel.cc

系统由三个组件组成:

  1. MCP服务器:与AI模型交互的TypeScript服务器
  2. 浏览器扩展:与Strudel通信的Chrome扩展
  3. Strudel集成:在浏览器中实时执行模式

安装

1. MCP服务器设置

克隆并构建TypeScript服务器:

git clone <repository-url>
cd strudel-mcp-bridge/mcp-server
npm install
npm run build

创建环境配置:

cp .env.example .env
# 使用您的API凭证编辑.env文件

所需环境变量:

OPENROUTER_API_KEY=your-openrouter-api-key-here
OPENROUTER_MODEL=anthropic/claude-3-5-sonnet-20241022
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1

OpenRouter.ai获取API密钥,并向您的账户添加信用额度。

2. Claude Desktop配置

编辑您的Claude Desktop配置文件:

macOS~/Library/Application Support/Claude/claude_desktop_config.json Windows:%APPDATA%\Claude\claude_desktop_config.json

添加以下配置:

{
  "mcpServers": {
    "strudel-mcp-bridge": {
      "command": "node",
      "args": ["dist/server.js"],
      "cwd": "/absolute/path/to/strudel-mcp-bridge/mcp-server",
      "env": {
        "OPENROUTER_API_KEY": "your-openrouter-api-key-here",
        "OPENROUTER_MODEL": "anthropic/claude-3-5-sonnet-20241022"
      }
    }
  }
}

重要:用实际路径替换/absolute/path/to/strudel-mcp-bridge/mcp-server

更改后完全重启Claude Desktop。

3. 浏览器扩展安装

开发安装

  1. 打开Chrome并导航到chrome://extensions/
  2. 在右上角启用“开发者模式”
  3. 点击“加载已解压的扩展程序”并选择browser-extension文件夹
  4. 扩展应出现在您的扩展列表中

验证安装

  1. 转到strudel.cc
  2. 查看页面右上角的连接指示器(彩色圆圈)
  3. 连接成功时,指示器应从红色变为绿色

使用

基本使用

  1. 启动系统

    • 打开Claude Desktop
    • 在Chrome中打开strudel.cc
    • 验证连接指示器显示为绿色
  2. 创建模式

    创建一个house节奏,每个节拍都有低音鼓和高帽
    
  3. 修改模式

    在当前模式中添加贝斯线
    加快速度
    添加混响
    
  4. 停止播放

    停止当前模式
    

可用命令

系统提供了几个MCP工具:

  • create_live_pattern:生成并播放新的Strudel模式
  • modify_live_pattern:修改当前正在播放的模式
  • stop_pattern:停止所有音频播放
  • get_connection_status:检查浏览器连接状态
  • set_ai_model:更改用于生成的AI模型
  • get_ai_info:显示当前AI配置

调试

浏览器扩展调试

  1. 打开开发者工具

    • 转到strudel.cc
    • 按F12打开DevTools
    • 检查控制台标签中的消息
  2. 扩展控制台

    // 检查桥接状态
    console.log(window.strudelMCPBridge);
    
    // 调试连接
    debugStrudel();
    
    // 手动连接测试
    const testWS = new WebSocket('ws://localhost:3001');
    testWS.onopen = () => console.log('WebSocket已连接');
    testWS.onerror = (e) => console.log('WebSocket错误:', e);
    
  3. 连接指示器

    • 红色圆圈:断开或错误
    • 橙色圆圈:连接中
    • 绿色圆圈:已连接且准备就绪
    • 点击圆圈查看详细状态信息

常见问题

  1. WebSocket连接失败

    • 确认Claude Desktop正在运行
    • 检查MCP服务器是否成功启动
    • 确保端口3001未被防火墙阻止
  2. 音频不播放

    • 单击strudel.cc页面上的任意位置以启用音频
    • 检查浏览器音频权限
    • 确认Strudel已完全加载
  3. 无效模式

    • AI可能会生成不存在的声音名称
    • 当可能时,语法错误会自动更正
    • 检查浏览器控制台中的具体Strudel错误

MCP服务器调试

监控Claude Desktop中的服务器日志:

  • 成功连接:查找“WebSocket服务器正在监听端口3001”
  • 模式生成:检查OpenRouter API调用
  • 浏览器通信:监控WebSocket消息日志

限制和已知问题

AI幻觉

AI模型偶尔会:

  1. 生成无效的声音名称(例如,“bass”,“synth”,“lead”)

    • 系统会自动替换这些名称为有效替代品
    • 有效声音包括:bd, sd, hh, cp, piano, sawtooth, sine, gm_acoustic_bass
  2. 使用错误的Strudel语法

    • .compress()带有错误参数
    • 格式错误的小型符号字符串
    • 缺少引号或括号
  3. 创建过于复杂的模式,可能听起来不具有音乐性

语法验证

系统包含自动验证和纠正:

  • 修复未终止的字符串
  • 替换无效的声音名称
  • 添加缺失的setcps()命令
  • 移除有问题的功能

浏览器兼容性

  • 需要现代Chrome、Firefox、Safari或Edge
  • 必须允许WebSocket连接
  • 用户互动后必须允许音频自动播放

开发

项目结构

strudel-mcp-bridge/
├── mcp-server/
│   ├── src/
│   │   ├── server.ts              # 主MCP服务器
│   │   ├── tools/
│   │   │   └── pattern-generator.ts  # AI模式生成
│   │   └── websocket/
│   │       └── bridge-server.ts   # WebSocket通信
│   ├── package.json
│   └── tsconfig.json
├── browser-extension/
│   ├── manifest.json              # 扩展配置
│   ├── content-script.js          # Strudel集成
│   ├── background.js              # 扩展服务工作者
│   └── popup.html                 # 扩展弹出UI
└── README.md

从源代码构建

# MCP服务器
cd mcp-server
npm install
npm run build
npm start  # 仅用于测试

# 浏览器扩展
# 在Chrome开发者模式下加载未压缩的扩展

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 使用Claude Desktop和浏览器扩展进行测试
  5. 提交拉取请求

故障排除

连接问题

使用以下命令检查连接状态:

get_connection_status

音频权限

如果音频不播放:

  1. 单击strudel.cc页面上的任意位置
  2. 查找浏览器音频权限提示
  3. 检查浏览器音频设置

模式生成问题

如果模式听起来不对劲:

  • 模式可能使用了不存在的乐器
  • 系统提供了备用模式以确保可靠性
  • 尝试使用更简单的描述以获得更好的结果

许可

MIT许可 - 详情参见LICENSE文件

支持

对于问题和疑问:

  1. 检查浏览器控制台中的错误消息
  2. 确认所有组件正确连接
  3. 审查Claude Desktop MCP配置
  4. 先使用简单的模式描述进行测试