create_composition_plan
Generate a structured composition plan for music creation based on text prompts, specifying musical elements and timing for subsequent audio generation.
Instructions
Create a composition plan for music generation. Usage of this endpoint does not cost any credits but is subject to rate limiting depending on your tier. Composition plans can be used when generating music with the compose_music tool.
Args:
prompt: Prompt to create a composition plan for
music_length_ms: The length of the composition plan to generate in milliseconds. Must be between 10000ms and 300000ms. Optional - if not provided, the model will choose a length based on the prompt.
source_composition_plan: An optional composition plan to use as a source for the new composition plan
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| music_length_ms | No | ||
| prompt | Yes | ||
| source_composition_plan | No |
Implementation Reference
- elevenlabs_mcp/server.py:1156-1177 (handler)The handler function for the 'create_composition_plan' tool, decorated with @mcp.tool() which registers it as an MCP tool. It calls the ElevenLabs client to create a music composition plan based on the provided prompt and returns the MusicPrompt object.@mcp.tool( description="""Create a composition plan for music generation. Usage of this endpoint does not cost any credits but is subject to rate limiting depending on your tier. Composition plans can be used when generating music with the compose_music tool. Args: prompt: Prompt to create a composition plan for music_length_ms: The length of the composition plan to generate in milliseconds. Must be between 10000ms and 300000ms. Optional - if not provided, the model will choose a length based on the prompt. source_composition_plan: An optional composition plan to use as a source for the new composition plan """ ) def create_composition_plan( prompt: str, music_length_ms: int | None = None, source_composition_plan: MusicPrompt | None = None, ) -> MusicPrompt: composition_plan = client.music.composition_plan.create( prompt=prompt, music_length_ms=music_length_ms, source_composition_plan=source_composition_plan, ) return composition_plan