get_clip_info_by_id
Retrieve detailed clip information from Ableton Live by specifying a clip ID. This tool supports real-time interaction with Ableton Copilot MCP for efficient clip operations and workflow management.
Instructions
Get clip info by clip id
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| clip_id | Yes |
Implementation Reference
- src/tools/clip-tools.ts:13-20 (registration)Registration of the tool 'get_clip_properties' via @tool decorator, which matches the function getClipInfoById for getting clip info by ID.@tool({ name: 'get_clip_properties', description: 'Get clip properties by clip id. To get specific properties, set the corresponding property name to true in the properties parameter.', paramsSchema: { clip_id: z.string(), properties: ClipGettableProp, } })
- src/tools/clip-tools.ts:21-24 (handler)Handler function that executes the tool logic: retrieves the clip by ID and gets the specified properties.async getClipInfoById({ clip_id, properties }: { clip_id: string, properties: z.infer<typeof ClipGettableProp> }) { const clip = getClipById(clip_id) return await getClipProps(clip, properties) }
- src/types/zod-types.ts:199-244 (schema)Zod schema definition for ClipGettableProp used in the tool parameters for specifying which clip properties to retrieve.export const ClipGettableProp = createZodSchema<ClipGettablePropType>({ available_warp_modes: z.boolean().optional(), color: z.boolean().optional(), color_index: z.boolean().optional(), end_marker: z.boolean().optional(), end_time: z.boolean().optional(), file_path: z.boolean().optional(), gain: z.boolean().optional(), gain_display_string: z.boolean().optional(), has_envelopes: z.boolean().optional(), is_arrangement_clip: z.boolean().optional(), is_audio_clip: z.boolean().optional(), is_midi_clip: z.boolean().optional(), is_overdubbing: z.boolean().optional(), is_playing: z.boolean().optional(), is_recording: z.boolean().optional(), is_triggered: z.boolean().optional(), launch_mode: z.boolean().optional(), launch_quantization: z.boolean().optional(), length: z.boolean().optional(), loop_end: z.boolean().optional(), loop_start: z.boolean().optional(), looping: z.boolean().optional(), muted: z.boolean().optional(), name: z.boolean().optional(), pitch_coarse: z.boolean().optional(), pitch_fine: z.boolean().optional(), playing_position: z.boolean().optional(), position: z.boolean().optional(), ram_mode: z.boolean().optional(), sample_length: z.boolean().optional(), selected_notes: z.boolean().optional(), signature_denominator: z.boolean().optional(), signature_numerator: z.boolean().optional(), start_marker: z.boolean().optional(), start_time: z.boolean().optional(), velocity_amount: z.boolean().optional(), warp_mode: z.boolean().optional(), warp_markers: z.boolean().optional(), warping: z.boolean().optional(), will_record_on_start: z.boolean().optional() }).extend({ notes: z.boolean().optional(), selected_notes: z.boolean().optional(), })
- src/tools/clip-tools.ts:22-23 (helper)Uses helper functions getClipById and getClipProps to implement the logic.const clip = getClipById(clip_id) return await getClipProps(clip, properties)
- src/main.ts:41-41 (registration)Class-level registration of ClipTools in the MCP server startup.tools: [BrowserTools, ClipTools, DeviceTools, HistoryTools, SongTools, TrackTools, ExtraTools, ApplicationTools]