Sushi MCP服务器
用于通过gRPC控制Sushi音频引擎的MCP(模型上下文协议)服务器。这允许AI助手与Sushi供电的音频设备和应用程序进行交互和控制。
概述
Sushi MCP Server为AI助手和 寿司 音频引擎,启用:
- 实时音频处理控制
- 参数自动化
- MIDI路由和控制
- 跟踪和处理器管理
- 预置管理
- 音频路由配置
特性
系统控制
- 获取Sushi版本和构建信息
- 查询音频通道计数
传输控制
- 控制播放(播放、停止、录制)
- 设定节奏和时间标志
- 管理同步模式(内部、MIDI、链接)
跟踪和处理器管理
- 列出并管理曲目
- 添加/删除音频处理器
- 控制处理器参数
- 绕过/启用处理器
- 保存并加载预设
音频路由
- 配置输入/输出连接
- 在曲目和发动机通道之间传输音频
MIDI控制
- 将MIDI键盘连接到曲目
- 将MIDI CC映射到参数
- 以编程方式发送MIDI音符
- 配置MIDI路由
实时更新
- 订阅参数更改
- 关注特定参数以获取更新
- 获取实时通知
先决条件
- Python 3.13或更高版本
- 启用gRPC的Sushi运行实例
- 暴露的Sushi gRPC接口(默认端口:51051)
安装
- 克隆存储库:
git clone https://github.com/YOUR_USERNAME/sushi-mcp.git
cd sushi-mcp- 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- 安装依赖项:
pip install -e .配置
服务器包含一个示例配置文件 default_config_sushi.json 这展示了一个典型的寿司设置:
- 8首带有WAV流媒体的播放曲目
- 2个带有各种效果处理器的输入轨道
- 音频路由配置
- 初始参数状态
您可以修改此文件以匹配您的Sushi配置。
用法
运行MCP服务器
- 启动MCP服务器:
python sushi_mcp_server.py- 服务器在stdio模式下运行,并等待MCP客户端连接。
从克劳德桌面连接
将以下内容添加到您的Claude Desktop配置中(claude_desktop_config.json):
{
"mcpServers": {
"sushi-control": {
"command": "python",
"args": ["/path/to/sushi-mcp/sushi_mcp_server.py"],
"env": {}
}
}
}基本使用示例
连接后,您可以使用自然语言控制寿司:
- “通过192.168.1.100连接到Sushi”
- “显示所有曲目”
- “将节奏设置为120 BPM”
- “为曲目1添加混响”
- “将输入处理器的增益参数设置为0.8”
- “将MIDI通道1连接到合成器曲目”
- “将当前状态另存为预设”
可用的MCP工具
连接
set_sushi_server-设置Sushi服务器的IP地址和端口
系统信息
get_sushi_info-获取Sushi版本和系统信息get_available_plugins-列出可用的内部插件
传输控制
get_transport_info-获取当前运输状态set_tempo-设定BPM的节奏set_playing_mode-控制播放(停止、播放、录制)
航迹管理
get_all_tracks-列出所有曲目get_track_processors-列出轨道上的处理器add_processor_to_track-在曲目中添加处理器remove_processor_from_track-卸下处理器
参数控制
get_processor_parameters-列出处理器的所有参数set_parameter_value-设置参数值bypass_processor-绕过或启用处理器
音频路由
get_track_connections-获取曲目的音频连接connect_input_to_track-将音频输入路由到曲目connect_track_to_output-将曲目路由到音频输出
MIDI控制
get_midi_ports-获取MIDI端口信息get_midi_keyboard_connections-列出MIDI键盘连接connect_midi_keyboard_to_track-将MIDI输入连接到曲目connect_midi_cc_to_parameter-将MIDI CC映射到参数send_note_on/send_note_off-发送MIDI音符
预设管理
save_processor_preset-将处理器状态保存为预设load_processor_preset-加载已保存的预设list_presets-列出所有已保存的预设snapshot_all_tracks-保存完整会话状态load_snapshot-恢复完整会话状态
实时监控
subscribe_to_parameter_updates-启用实时更新watch_parameter-监控特定参数get_parameter_updates-获取最近的参数更改
项目结构
sushi-mcp/
├── sushi_mcp_server.py # Main MCP server implementation
├── sushi_rpc.proto # gRPC protocol definition
├── sushi_rpc_pb2.py # Generated protobuf code
├── sushi_rpc_pb2_grpc.py # Generated gRPC code
├── default_config_sushi.json # Sample Sushi configuration
├── pyproject.toml # Project dependencies
├── presets/ # Saved presets directory
└── README.md # This file发展
正在重新生成gRPC代码
如果需要更新gRPC接口:
python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. sushi_rpc.proto添加新功能
- 添加新的工具功能,用
@mcp.tool() - 实现对Sushi的gRPC调用
- 添加适当的错误处理
- 用新功能更新此README
故障排除
连接问题
- 确保Sushi在启用gRPC的情况下运行
- 检查gRPC端口(默认51051)是否可访问
- 使用验证IP地址和端口
set_sushi_server
参数范围
- 服务器根据其定义的范围验证参数值
- 使用
get_processor_parameters查看有效范围
MIDI通道
- MIDI通道为1-16(全向模式为17)
- 通道0在MIDI规范中无效
贡献
欢迎投稿!请随时提交问题或拉取请求。
许可证
此项目的许可条款与您的其他项目相同。请添加适当的许可证文件。
致谢
- 为 寿司 Elk audio的音频引擎
- 使用 MCP(模型上下文协议) 规格
