Skip to main content
Glama

trigger_action

Execute REAPER DAW commands for transport control, project management, track editing, and view adjustments by specifying action names.

Instructions

Trigger a REAPER action by name. Available actions: - Transport: play, stop, pause, record, rewind, forward - Project: save, save_as, new_project, undo, redo - Tracks: insert_track, delete_track, duplicate_track - View: zoom_fit, toggle_mixer Args: action_name: Name of the action to trigger

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
action_nameYes

Implementation Reference

  • MCP tool handler for 'trigger_action', automatically registered via @mcp.tool(). Delegates to ReaperBridge.trigger_action_by_name.
    @mcp.tool() def trigger_action(ctx: Context, action_name: str) -> str: """ Trigger a REAPER action by name. Available actions: - Transport: play, stop, pause, record, rewind, forward - Project: save, save_as, new_project, undo, redo - Tracks: insert_track, delete_track, duplicate_track - View: zoom_fit, toggle_mixer Args: action_name: Name of the action to trigger """ bridge = get_bridge() if bridge.trigger_action_by_name(action_name): return f"Triggered action: {action_name}" return f"Error: Unknown action '{action_name}'"
  • Dictionary mapping action names (lowercased) to REAPER internal action IDs, used to resolve action_name to ID.
    REAPER_ACTIONS = { # Transport "play": 1007, "stop": 1016, "pause": 1008, "record": 1013, "rewind": 40042, "forward": 40043, "goto_start": 40042, "goto_end": 40043, # Tracks "insert_track": 40001, "insert_midi_track": 40001, # Same as insert track "delete_track": 40005, "duplicate_track": 40062, # Items "insert_empty_item": 40142, "split_items": 40012, "delete_items": 40006, # View "zoom_fit": 40295, "toggle_mixer": 40078, # Project "save": 40026, "save_as": 40022, "new_project": 40023, "undo": 40029, "redo": 40030, }
  • Resolves action name to ID using REAPER_ACTIONS and calls trigger_action.
    def trigger_action_by_name(self, name: str) -> bool: """Trigger a REAPER action by name.""" action_id = REAPER_ACTIONS.get(name.lower()) if action_id: return self.trigger_action(action_id) logger.warning(f"Unknown action: {name}") return False
  • Sends OSC /action/{action_id} message to REAPER to execute the action.
    def trigger_action(self, action_id: int) -> bool: """Trigger a REAPER action by ID.""" # OSC format: /action/_ID or /action/ID return self.send_osc(f"/action/{action_id}")

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yura9011/scythe_mcp_reaper'

If you have feedback or need assistance with the MCP directory API, please join our Discord server