set_fx_preset
Load a preset for an FX plugin on a track in REAPER. Specify track index, FX index, and preset name or file path to apply the desired effect configuration.
Instructions
Load a named preset for an FX plugin on a track. preset_name can be:
A plain preset name or index-based name (for plugins with internal preset banks)
A full absolute file path to a .ffp/.fxp/.fxb file (FabFilter and others). Use the 'path' field from list_fx_presets() for file-based plugins. On failure, returns loaded=false with a failure_reason: 'preset_name_not_found' - name not in the plugin's preset list 'plugin_rejected_state' - plugin returned false despite the name existing 'plugin_has_no_presets' - plugin exposes no preset bank at all 'file_unreadable' - path given but file could not be opened
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| fx_index | Yes | ||
| preset_name | Yes |
Implementation Reference
- src/reaper_mcp/server.py:561-577 (handler)The MCP tool handler for set_fx_preset in server.py, which wraps the adapter call.
def set_fx_preset(track_index: int, fx_index: int, preset_name: str) -> dict[str, Any]: """ Load a named preset for an FX plugin on a track. preset_name can be: - A plain preset name or index-based name (for plugins with internal preset banks) - A full absolute file path to a .ffp/.fxp/.fxb file (FabFilter and others). Use the 'path' field from list_fx_presets() for file-based plugins. On failure, returns loaded=false with a failure_reason: 'preset_name_not_found' - name not in the plugin's preset list 'plugin_rejected_state' - plugin returned false despite the name existing 'plugin_has_no_presets' - plugin exposes no preset bank at all 'file_unreadable' - path given but file could not be opened """ try: return _wrap( adapter.set_fx_preset( track_index=track_index, fx_index=fx_index, preset_name=preset_name - src/reaper_mcp/reaper_adapter.py:320-328 (handler)The adapter method that forwards the set_fx_preset request to the underlying Reaper client.
def set_fx_preset( self, track_index: int, fx_index: int, preset_name: str ) -> dict[str, Any]: return self._client.call( "set_fx_preset", track_index=track_index, fx_index=fx_index, preset_name=preset_name, )