Skip to main content
Glama

set_clip_name

Rename audio or MIDI clips in Ableton Live by specifying track and clip positions with a new name for better session organization.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
track_indexYes
clip_indexYes
nameYes

Implementation Reference

  • MCP server tool handler for 'set_clip_name'. Proxies the call to the Ableton remote script via socket command.
    @mcp.tool()
    def set_clip_name(ctx: Context, track_index: int, clip_index: int, name: str) -> str:
        try:
            ableton = get_ableton_connection()
            result = ableton.send_command("set_clip_name", {
                "track_index": track_index,
                "clip_index": clip_index,
                "name": name
            })
            return f"Renamed clip at track {track_index}, slot {clip_index} to '{name}'"
        except Exception as e:
            logger.error(f"Error setting clip name: {str(e)}")
            return f"Error setting clip name: {str(e)}"
  • Backend handler in Ableton remote script that performs the actual clip renaming using Ableton Live API: clip.name = name
    def _set_clip_name(self, track_index, clip_index, name):
        """Set the name of a clip"""
        try:
            if track_index < 0 or track_index >= len(self._song.tracks):
                raise IndexError("Track index out of range")
            
            track = self._song.tracks[track_index]
            
            if clip_index < 0 or clip_index >= len(track.clip_slots):
                raise IndexError("Clip index out of range")
            
            clip_slot = track.clip_slots[clip_index]
            
            if not clip_slot.has_clip:
                raise Exception("No clip in slot")
            
            clip = clip_slot.clip
            clip.name = name
            
            result = {
                "name": clip.name
            }
            return result
        except Exception as e:
            self.log_message("Error setting clip name: " + str(e))
            raise
  • Command dispatch registration in remote script that maps incoming 'set_clip_name' socket command to the backend handler.
    elif command_type == "set_clip_name":
        track_index = params.get("track_index", 0)
        clip_index = params.get("clip_index", 0)
        name = params.get("name", "")
        result = self._set_clip_name(track_index, clip_index, name)
  • Lists 'set_clip_name' as a modifying command that receives extra timeout handling in socket communication.
    "create_clip", "add_notes_to_clip", "set_clip_name",

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/Milesy1/MCP-Ableton-API'

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