create_midi_item
Create an empty MIDI item on a track by entering track index, start position, and length. Returns item_id for adding MIDI notes.
Instructions
Create an empty MIDI item on a track. Returns item_id for use with add_midi_note.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| start_position | Yes | ||
| length | Yes |
Implementation Reference
- src/reaper_mcp/midi_tools.py:63-81 (handler)The create_midi_item tool handler: creates an empty MIDI item on a track using reapy, returns item_id and metadata.
@mcp.tool() def create_midi_item(track_index: int, start_position: float, length: float) -> dict: """Create an empty MIDI item on a track. Returns item_id for use with add_midi_note.""" try: project = get_project() track = project.tracks[track_index] item = track.add_midi_item(start_position, start_position + length) take = item.active_take return { "success": True, "item_id": item.id, "item_index": track.n_items - 1, "position": item.position, "length": item.length, "track_index": track_index, } except Exception as e: logger.error(f"create_midi_item failed: {e}") return {"success": False, "error": str(e)} - src/reaper_mcp/midi_tools.py:64-64 (schema)Type signature/input schema: takes track_index (int), start_position (float), length (float), returns dict.
def create_midi_item(track_index: int, start_position: float, length: float) -> dict: - src/reaper_mcp/midi_tools.py:63-64 (registration)Tool registration via the @mcp.tool() decorator inside register_tools(), which is called from server.py.
@mcp.tool() def create_midi_item(track_index: int, start_position: float, length: float) -> dict: - src/reaper_mcp/server.py:12-22 (registration)The midi_tools.register_tools() function is imported and called in server.py to register all MIDI tools (including create_midi_item).
from reaper_mcp.midi_tools import register_tools as _reg_midi from reaper_mcp.fx_tools import register_tools as _reg_fx from reaper_mcp.audio_tools import register_tools as _reg_audio from reaper_mcp.mixing_tools import register_tools as _reg_mixing from reaper_mcp.render_tools import register_tools as _reg_render 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) - src/reaper_mcp/connection.py:27-29 (helper)Helper function get_project() used by create_midi_item to obtain the REAPER project object.
def get_project() -> reapy.Project: ensure_connected() return reapy.Project()