Provides control over MIDI routing and functionality in Sushi audio engine, including connecting MIDI keyboards to tracks, mapping MIDI CC to parameters, and sending MIDI notes programmatically.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Sushi MCP Serverset the tempo to 128 BPM"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Sushi MCP Server
An MCP (Model Context Protocol) server for controlling Sushi audio engine via gRPC. This allows AI assistants to interact with and control Sushi-powered audio devices and applications.
Overview
Sushi MCP Server provides a bridge between AI assistants and the Sushi audio engine, enabling:
Real-time audio processing control
Parameter automation
MIDI routing and control
Track and processor management
Preset management
Audio routing configuration
Features
System Control
Get Sushi version and build information
Query audio channel counts
Transport Control
Control playback (play, stop, record)
Set tempo and time signature
Manage sync modes (internal, MIDI, Link)
Track & Processor Management
List and manage tracks
Add/remove audio processors
Control processor parameters
Bypass/enable processors
Save and load presets
Audio Routing
Configure input/output connections
Route audio between tracks and engine channels
MIDI Control
Connect MIDI keyboards to tracks
Map MIDI CC to parameters
Send MIDI notes programmatically
Configure MIDI routing
Real-time Updates
Subscribe to parameter changes
Watch specific parameters for updates
Get real-time notifications
Prerequisites
Python 3.13 or higher
A running instance of Sushi with gRPC enabled
The Sushi gRPC interface exposed (default port: 51051)
Installation
Clone the repository:
Create and activate a virtual environment:
Install dependencies:
Configuration
The server includes a sample configuration file default_config_sushi.json that demonstrates a typical Sushi setup with:
8 playback tracks with WAV streamers
2 input tracks with various effects processors
Audio routing configurations
Initial parameter states
You can modify this file to match your Sushi configuration.
Usage
Running the MCP Server
Start the MCP server:
The server runs in stdio mode and waits for MCP client connections.
Connecting from Claude Desktop
Add the following to your Claude Desktop configuration (claude_desktop_config.json):
Basic Usage Examples
Once connected, you can use natural language to control Sushi:
"Connect to Sushi at 192.168.1.100"
"Show me all tracks"
"Set the tempo to 120 BPM"
"Add a reverb to track 1"
"Set the gain parameter of the input processor to 0.8"
"Connect MIDI channel 1 to the synthesizer track"
"Save the current state as a preset"
Available MCP Tools
Connection
set_sushi_server- Set the IP address and port of the Sushi server
System Information
get_sushi_info- Get Sushi version and system informationget_available_plugins- List available internal plugins
Transport Control
get_transport_info- Get current transport stateset_tempo- Set the tempo in BPMset_playing_mode- Control playback (STOPPED, PLAYING, RECORDING)
Track Management
get_all_tracks- List all tracksget_track_processors- List processors on a trackadd_processor_to_track- Add a processor to a trackremove_processor_from_track- Remove a processor
Parameter Control
get_processor_parameters- List all parameters for a processorset_parameter_value- Set a parameter valuebypass_processor- Bypass or enable a processor
Audio Routing
get_track_connections- Get audio connections for a trackconnect_input_to_track- Route audio input to a trackconnect_track_to_output- Route track to audio output
MIDI Control
get_midi_ports- Get MIDI port informationget_midi_keyboard_connections- List MIDI keyboard connectionsconnect_midi_keyboard_to_track- Connect MIDI input to trackconnect_midi_cc_to_parameter- Map MIDI CC to parametersend_note_on/send_note_off- Send MIDI notes
Preset Management
save_processor_preset- Save processor state as presetload_processor_preset- Load a saved presetlist_presets- List all saved presetssnapshot_all_tracks- Save complete session stateload_snapshot- Restore complete session state
Real-time Monitoring
subscribe_to_parameter_updates- Enable real-time updateswatch_parameter- Monitor specific parameterget_parameter_updates- Get recent parameter changes
Project Structure
Development
Regenerating gRPC Code
If you need to update the gRPC interface:
Adding New Features
Add new tool functions decorated with
@mcp.tool()Implement the gRPC calls to Sushi
Add appropriate error handling
Update this README with the new functionality
Troubleshooting
Connection Issues
Ensure Sushi is running with gRPC enabled
Check that the gRPC port (default 51051) is accessible
Verify the IP address and port with
set_sushi_server
Parameter Ranges
The server validates parameter values against their defined ranges
Use
get_processor_parametersto see valid ranges
MIDI Channels
MIDI channels are 1-16 (17 for omni mode)
Channel 0 is not valid in the MIDI specification
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
License
This project is licensed under the same terms as your other projects. Please add appropriate license file.
Acknowledgments
Built for the Sushi audio engine by Elk Audio
Uses the MCP (Model Context Protocol) specification