apply_mastering_chain
Apply a mastering chain to the master track with presets for dynamic control. Choose from default, loud, or gentle settings to shape your mix's loudness and clarity.
Instructions
Add a standard mastering FX chain to the master track. Presets: default (EQ > Comp > Limiter), loud (EQ > Comp x2 > Limiter), gentle (EQ > light Comp > Limiter). After applying, use set_master_fx_parameter to dial in specific settings. Use list_master_fx + get_fx_parameters to discover parameter indices.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| preset | No | default |
Implementation Reference
- src/reaper_mcp/mastering_tools.py:77-102 (handler)The apply_mastering_chain tool function: adds a preset mastering FX chain (ReaEQ, ReaComp, ReaLimit) to the master track based on the selected preset ('default', 'loud', or 'gentle').
@mcp.tool() def apply_mastering_chain(preset: str = "default") -> dict: """ Add a standard mastering FX chain to the master track. Presets: default (EQ > Comp > Limiter), loud (EQ > Comp x2 > Limiter), gentle (EQ > light Comp > Limiter). After applying, use set_master_fx_parameter to dial in specific settings. Use list_master_fx + get_fx_parameters to discover parameter indices. """ try: if preset not in MASTERING_PRESETS: return { "success": False, "error": f"Unknown preset '{preset}'. Available: {list(MASTERING_PRESETS.keys())}", } project = get_project() master = project.master_track added = [] for fx_name in MASTERING_PRESETS[preset]: fx_index = master.add_fx(fx_name) if fx_index >= 0: fx = master.fxs[fx_index] added.append({"fx_index": fx_index, "name": fx.name}) return {"success": True, "preset": preset, "fx_chain": added} except Exception as e: return {"success": False, "error": str(e)} - Mastering preset definitions: maps preset names to ordered lists of FX plugin names.
MASTERING_PRESETS = { "default": ["ReaEQ", "ReaComp", "ReaLimit"], "loud": ["ReaEQ", "ReaComp", "ReaComp", "ReaLimit"], "gentle": ["ReaEQ", "ReaComp", "ReaLimit"], } - src/reaper_mcp/mastering_tools.py:18-18 (registration)Entry point function that registers all mastering tools (including apply_mastering_chain) with the MCP server via @mcp.tool() decorator.
def register_tools(mcp): - src/reaper_mcp/server.py:17-27 (registration)Server imports and calls register_tools from mastering_tools module, which registers apply_mastering_chain as an MCP tool.
from reaper_mcp.mastering_tools import register_tools as _reg_mastering from reaper_mcp.analysis_tools import register_tools as _reg_analysis _reg_project(mcp) _reg_track(mcp) _reg_midi(mcp) _reg_fx(mcp) _reg_audio(mcp) _reg_mixing(mcp) _reg_render(mcp) _reg_mastering(mcp)