Skip to main content
Glama

ProducerMCP

PyPI version PyPI downloads Python 3.10+ License: MIT MCP

A Model Context Protocol (MCP) server for AI music generation using Producer/Riffusion (FUZZ models) through the AceDataCloud API.

Generate AI music directly from Claude, VS Code, or any MCP-compatible client.

Features

  • Text to Music - Create AI-generated music from text prompts

  • Custom Music - Full control with custom lyrics, title, and style

  • Song Extension - Continue songs from any timestamp

  • Cover/Remix - Create covers in different genres and styles

  • Variations - Generate alternative versions of songs

  • Vocal/Instrumental Swap - Mix vocals and instrumentals between songs

  • Section Replacement - Re-generate specific sections of a song

  • Stem Separation - Split songs into vocal and instrumental tracks

  • Lyrics Generation - Generate structured lyrics from prompts

  • Video Generation - Create music videos for songs

  • WAV Export - Get lossless audio format

  • 8 FUZZ Models - From FUZZ-0.8 to FUZZ-2.0 Pro

Related MCP server: AI Producer Hub

Tool Reference

Tool

Description

producer_generate_music

Generate AI music from a text prompt.

producer_generate_custom_music

Generate music with custom lyrics, title, and style.

producer_extend_music

Extend an existing song from a specific timestamp.

producer_cover_music

Create a cover/remix version in a different style.

producer_variation_music

Create a variation of an existing song.

producer_swap_vocals

Swap vocals between two songs.

producer_swap_instrumentals

Swap instrumentals between two songs.

producer_replace_section

Replace a specific time range with new content.

producer_stems_music

Separate a song into vocal and instrumental stems.

producer_generate_lyrics

Generate structured song lyrics from a prompt.

producer_upload_audio

Upload external audio for processing.

producer_generate_video

Generate a music video for a song.

producer_generate_wav

Get lossless WAV format of a song.

producer_get_task

Query the status of a generation task.

producer_get_tasks_batch

Query multiple generation tasks at once.

producer_list_models

List all available FUZZ models.

producer_list_actions

List all available actions and tools.

producer_get_lyric_format_guide

Get lyrics formatting guide.

Quick Start

1. Get Your API Token

  1. Sign up at AceDataCloud Platform

  2. Navigate to the API documentation

  3. Click "Acquire" to get your API token

  4. Copy the token for use below

AceDataCloud hosts a managed MCP server -- no local installation required.

Endpoint: https://producer.mcp.acedata.cloud/mcp

All requests require a Bearer token. Use the API token from Step 1.

Claude.ai

Connect directly on Claude.ai with OAuth -- no API token needed:

  1. Go to Claude.ai Settings > Integrations > Add More

  2. Enter the server URL: https://producer.mcp.acedata.cloud/mcp

  3. Complete the OAuth login flow

  4. Start using the tools in your conversation

Claude Desktop

Add to your config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "producer": {
      "type": "streamable-http",
      "url": "https://producer.mcp.acedata.cloud/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Cursor / Windsurf

Add to your MCP config (.cursor/mcp.json or .windsurf/mcp.json):

{
  "mcpServers": {
    "producer": {
      "type": "streamable-http",
      "url": "https://producer.mcp.acedata.cloud/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

VS Code (Copilot)

Add to your VS Code MCP config (.vscode/mcp.json):

{
  "servers": {
    "producer": {
      "type": "streamable-http",
      "url": "https://producer.mcp.acedata.cloud/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Or install the Ace Data Cloud MCP extension for VS Code, which registers the hosted MCP servers with one-click setup.

JetBrains IDEs

  1. Go to Settings > Tools > AI Assistant > Model Context Protocol (MCP)

  2. Click Add > HTTP

  3. Paste:

{
  "mcpServers": {
    "producer": {
      "url": "https://producer.mcp.acedata.cloud/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Claude Code

Claude Code supports MCP servers natively:

claude mcp add producer --transport http https://producer.mcp.acedata.cloud/mcp \
  -h "Authorization: Bearer YOUR_API_TOKEN"

Or add to your project's .mcp.json:

{
  "mcpServers": {
    "producer": {
      "type": "streamable-http",
      "url": "https://producer.mcp.acedata.cloud/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Cline

Add to Cline's MCP settings (.cline/mcp_settings.json):

{
  "mcpServers": {
    "producer": {
      "type": "streamable-http",
      "url": "https://producer.mcp.acedata.cloud/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Amazon Q Developer

Add to your MCP configuration:

{
  "mcpServers": {
    "producer": {
      "type": "streamable-http",
      "url": "https://producer.mcp.acedata.cloud/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Roo Code

Add to Roo Code MCP settings:

{
  "mcpServers": {
    "producer": {
      "type": "streamable-http",
      "url": "https://producer.mcp.acedata.cloud/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Continue.dev

Add to .continue/config.yaml:

mcpServers:
  - name: producer
    type: streamable-http
    url: https://producer.mcp.acedata.cloud/mcp
    headers:
      Authorization: "Bearer YOUR_API_TOKEN"

Zed

Add to Zed's settings (~/.config/zed/settings.json):

{
  "language_models": {
    "mcp_servers": {
      "producer": {
        "url": "https://producer.mcp.acedata.cloud/mcp",
        "headers": {
          "Authorization": "Bearer YOUR_API_TOKEN"
        }
      }
    }
  }
}

cURL Test

# Health check (no auth required)
curl https://producer.mcp.acedata.cloud/health

# MCP initialize
curl -X POST https://producer.mcp.acedata.cloud/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'

3. Or Run Locally (Alternative)

If you prefer to run the server on your own machine:

# Install from PyPI
pip install mcp-producer
# or
uvx mcp-producer

# Set your API token
export ACEDATACLOUD_API_TOKEN="your_token_here"

# Run (stdio mode for Claude Desktop / local clients)
mcp-producer

# Run (HTTP mode for remote access)
mcp-producer --transport http --port 8000

Claude Desktop (Local)

{
  "mcpServers": {
    "producer": {
      "command": "uvx",
      "args": ["mcp-producer"],
      "env": {
        "ACEDATACLOUD_API_TOKEN": "your_token_here"
      }
    }
  }
}

Docker (Self-Hosting)

docker pull ghcr.io/acedatacloud/mcp-producer:latest
docker run -p 8000:8000 ghcr.io/acedatacloud/mcp-producer:latest

Clients connect with their own Bearer token -- the server extracts the token from each request's Authorization header.

Available Tools

Music Generation

Tool

Description

producer_generate_music

Generate music from a text prompt

producer_generate_custom_music

Generate with custom lyrics and style

producer_extend_music

Extend a song from a timestamp

producer_cover_music

Create a cover in a different style

producer_variation_music

Create a variation of a song

Vocal/Instrumental

Tool

Description

producer_swap_vocals

Swap vocals between two songs

producer_swap_instrumentals

Swap instrumentals between two songs

producer_replace_section

Replace a time range with new content

producer_stems_music

Separate into stems

Lyrics

Tool

Description

producer_generate_lyrics

Generate lyrics from a prompt

Media

Tool

Description

producer_upload_audio

Upload external audio

producer_generate_video

Generate video for a song

producer_generate_wav

Get lossless WAV format

Tasks

Tool

Description

producer_get_task

Query a single task status

producer_get_tasks_batch

Query multiple tasks at once

Information

Tool

Description

producer_list_models

List available FUZZ models

producer_list_actions

List available API actions

producer_get_lyric_format_guide

Lyric formatting guide

Usage Examples

Generate Music from Prompt

User: Create a jazz song about rainy nights

Claude: I'll generate a jazz song for you.
[Calls producer_generate_music with prompt="Smooth jazz song about rainy nights, saxophone, piano, moody"]

Custom Song with Lyrics

User: Here are my lyrics:
[Verse] Walking in the rain...
[Chorus] But I keep moving on...

Claude: I'll create a song with your lyrics.
[Calls producer_generate_custom_music with lyrics, title, and prompt]

Extend a Song

User: Make this song longer with another verse

Claude: I'll extend the song from where it left off.
[Calls producer_extend_music with audio_id, continue_at, and new lyrics]

Create a Cover

User: Make an acoustic version of this song

Claude: I'll create an acoustic cover.
[Calls producer_cover_music with audio_id and prompt="acoustic folk, gentle guitar"]

Available Models

Model

Tier

Description

FUZZ-2.0 Pro

Pro

Highest quality, best for professional production

FUZZ-2.0

Default

Recommended for most use cases (default)

FUZZ-2.0 Raw

Raw

Unprocessed output, for custom post-processing

FUZZ-1.1 Pro

Pro

High quality legacy model

FUZZ-1.0 Pro

Pro

Professional legacy model

FUZZ-1.0

Default

Stable legacy model

FUZZ-1.1

Default

Improved legacy model

FUZZ-0.8

Legacy

Original model, basic quality

Configuration

Environment Variables

Variable

Description

Default

ACEDATACLOUD_API_TOKEN

API token from AceDataCloud

Required

ACEDATACLOUD_API_BASE_URL

API base URL

https://api.acedata.cloud

ACEDATACLOUD_OAUTH_CLIENT_ID

OAuth client ID (hosted mode)

--

ACEDATACLOUD_PLATFORM_BASE_URL

Platform base URL

https://platform.acedata.cloud

PRODUCER_DEFAULT_MODEL

Default FUZZ model

FUZZ-2.0

PRODUCER_REQUEST_TIMEOUT

Request timeout in seconds

1800

LOG_LEVEL

Logging level

INFO

Command Line Options

mcp-producer --help

Options:
  --version          Show version
  --transport        Transport mode: stdio (default) or http
  --port             Port for HTTP transport (default: 8000)

Development

Setup Development Environment

# Clone repository
git clone https://github.com/AceDataCloud/ProducerMCP.git
cd ProducerMCP

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # or `.venv\Scripts\activate` on Windows

# Install with dev dependencies
pip install -e ".[dev,test]"

Run Tests

# Run unit tests
pytest

# Run with coverage
pytest --cov=core --cov=tools

# Run integration tests (requires API token)
pytest tests/test_integration.py -m integration

Code Quality

# Format code
ruff format .

# Lint code
ruff check .

# Type check
mypy core tools

Build & Publish

# Install build dependencies
pip install -e ".[release]"

# Build package
python -m build

# Upload to PyPI
twine upload dist/*

Project Structure

ProducerMCP/
├── core/                   # Core modules
│   ├── __init__.py
│   ├── client.py          # HTTP client for Producer API
│   ├── config.py          # Configuration management
│   ├── exceptions.py      # Custom exceptions
│   ├── oauth.py           # OAuth 2.1 provider
│   ├── server.py          # MCP server initialization
│   ├── types.py           # Type definitions (models, actions)
│   └── utils.py           # Utility functions
├── tools/                  # MCP tool definitions
│   ├── __init__.py
│   ├── audio_tools.py     # Audio generation tools (9 tools)
│   ├── lyrics_tools.py    # Lyrics generation
│   ├── media_tools.py     # Upload, video, WAV tools
│   ├── task_tools.py      # Task query tools
│   └── info_tools.py      # Information tools
├── prompts/                # MCP prompts
│   └── __init__.py        # Prompt templates
├── tests/                  # Test suite
│   ├── conftest.py
│   ├── test_client.py
│   ├── test_config.py
│   ├── test_integration.py
│   └── test_utils.py
├── deploy/                 # Deployment configs
│   └── production/
│       ├── deployment.yaml
│       ├── ingress.yaml
│       └── service.yaml
├── .env.example           # Environment template
├── .ruff.toml             # Ruff linter config
├── CHANGELOG.md
├── Dockerfile             # Docker image for HTTP mode
├── docker-compose.yaml    # Docker Compose config
├── LICENSE
├── main.py                # Entry point
├── pyproject.toml         # Project configuration
└── README.md

Contributing

Contributions are welcome! Please:

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing)

  5. Open a Pull Request

Documentation

Documentation

License

MIT License - see LICENSE for details.


Made with love by AceDataCloud

Available Tools

18 tools
producer_cover_musicAInspect

Create a cover or remix version of an existing song in a different style.

This generates a new version of a song with a different arrangement, genre,
or mood while keeping the core melody and lyrics.

Use this when:
- You want to hear a song in a different genre
- You want an acoustic/unplugged version of an electronic song
- You want to remix a song with a different vibe

Returns:
    Task ID and the cover audio information.
ParametersJSON Schema
NameRequiredDescriptionDefault
asyncNoWhether to process the request asynchronously.
modelNoModel version to use for the cover.FUZZ-2.0
promptNoDescription of how you want the cover to sound. Examples: 'acoustic unplugged version', 'jazz lounge style', '80s synthwave remix'
audio_idYesID of the audio to create a cover of. This is the 'id' field from a previous generation.
callback_urlNoWebhook callback URL for asynchronous notifications.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does explain that a new version is generated and mentions the return value (Task ID and cover audio info), which is helpful. However, it does not clarify asynchronous behavior, whether the original audio is left unmodified, or any callback semantics, leaving some behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear opening statement, a focused 'Use this when' list, and a brief returns note. It is slightly redundant in explaining what the generated version changes, but overall every section earns its place and the content is easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a rich schema with 100% parameter coverage, and the description covers core use cases and expected outputs. It is complete enough for an agent to understand what the tool does and when to invoke it. It could be stronger by clarifying async/callback behavior and differentiating from the variation sibling, but those are not critical gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already thoroughly documented. The description adds general context about cover/remix use cases and prompt examples, but it does not add substantial parameter-specific meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it creates a cover or remix version of an existing song in a different style, and emphasizes that the core melody and lyrics are retained. It is specific about the verb, resource, and output. However, it does not explicitly contrast itself with the similar-sounding sibling producer_variation_music, leaving some potential overlap unresolved.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Use this when' section provides concrete scenarios such as hearing a song in a different genre or creating an acoustic version of an electronic song. This gives clear usage context, but it does not state when not to use this tool or point to an alternative sibling like producer_variation_music.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

producer_extend_musicAInspect

Extend an existing song from a specific timestamp with new content.

This allows you to continue a previously generated song, adding new sections
like additional verses, a bridge, or an outro.

Use this when:
- A generated song is too short and you want to add more
- You want to add a bridge or outro to an existing song
- You're building a longer song piece by piece

Returns:
    Task ID and the extended audio information.
ParametersJSON Schema
NameRequiredDescriptionDefault
asyncNoWhether to process the request asynchronously.
lyricNoLyrics for the extended section. Use section markers like [Verse], [Chorus], [Bridge], [Outro]. The extension will continue from where the original song left off.
modelNoModel version to use for the extension.FUZZ-2.0
promptNoPrompt for the extension. Leave empty to maintain the original style, or specify how to change the style mid-song.
audio_idYesID of the audio to extend. This is the 'id' field from a previous generation result.
continue_atYesTimestamp in seconds where to start the extension. For example, 120.5 means continue from 2 minutes and 0.5 seconds into the song.
callback_urlNoWebhook callback URL for asynchronous notifications.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It does state that the tool returns a Task ID and extended audio information, which is useful, and it clarifies that the extension continues from a timestamp. However, it does not describe asynchronous behavior implications, whether the original audio is preserved, or what happens if no lyric/prompt is provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized with a clear first sentence, a brief elaboration, bulleted use cases, and a returns line. It is concise and front-loaded, though the second paragraph somewhat repeats the first sentence's idea of continuing a previously generated song.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters, an output schema, and sibling tools like producer_replace_section, the description covers the core selection criteria and expected result well. It could be more complete by mentioning async/callback behavior or explicitly contrasting with replace_section, but the combination of description and rich schema is sufficient for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters including continue_at, audio_id, lyric, prompt, and async. The description adds contextual framing around 'timestamp' and 'new content' but does not materially clarify parameter semantics beyond the existing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Extend') and resource ('an existing song from a specific timestamp'), clearly distinguishing this from generation, cover, variation, and replacement tools. It also gives concrete examples of what can be added, such as verses, a bridge, or an outro, making the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Use this when' section provides clear, actionable conditions: too short a song, adding a bridge/outro, or building a longer song piece by piece. It does not explicitly name alternatives or state when not to use the tool, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

producer_generate_custom_musicAInspect

Generate AI music with full control over lyrics, title, and style.

This gives you complete creative control over the song. You provide the lyrics
with section markers, and Producer generates the melody and arrangement.

Use this when:
- You have specific lyrics you want to use
- You want precise control over the music style
- You need a specific song title

For quick generation without writing lyrics, use producer_generate_music instead.

Returns:
    Task ID and generated audio information including URLs, title, lyrics, and duration.
ParametersJSON Schema
NameRequiredDescriptionDefault
seedNoSeed for reproducible generation. Reuse the same seed to reproduce a result.
asyncNoWhether to process the request asynchronously.
lyricYesSong lyrics with section markers. Use [Verse], [Chorus], [Pre-Chorus], [Bridge], [Outro], [Intro] to structure the song. Example: [Verse 1] Walking down the empty street Rain is falling at my feet [Chorus] But I keep moving on Until the break of dawn
modelNoProducer model version. 'FUZZ-2.0' or 'FUZZ-2.0 Pro' recommended for best quality.FUZZ-2.0
titleYesTitle of the song. Keep it concise and memorable.
promptNoMusic style prompt. Be specific about genre, mood, tempo, and instruments. Examples: 'upbeat pop rock, energetic drums, electric guitar', 'acoustic folk, gentle, fingerpicking', 'dark electronic, synthwave, 80s retro'
weirdnessNoCreative control for how experimental/unusual the generation is. Range 0-1.
callback_urlNoWebhook callback URL for asynchronous notifications.
instrumentalNoIf true, generate instrumental version (lyrics will be ignored). Default is false.
sound_strengthNoCreative control for how strongly the sound/style drives the generation. Range 0-1.
lyrics_strengthNoCreative control for how strongly the lyrics drive the generation. Range 0-1.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral disclosure burden. It does explain the workflow (user provides lyrics, Producer generates melody/arrangement) and the return shape (Task ID and audio info with URLs, title, lyrics, duration). However, it does not disclose async execution semantics, callback behavior, or other operational side effects, leaving the agent under-informed for a complex generation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with an intro, use-when bullets, an explicit alternative, and a Returns section. It is slightly redundant in phrasing—'full control' and 'complete creative control' say the same thing—but every section earns its place and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 parameters) and lack of annotations, the description adequately covers the primary use case, return information, and routing to the sibling tool. It does not mention async/callback nuances or the instrumental flag behavior, though these are documented in the schema. Overall it is sufficient for an agent to select and invoke the tool correctly, with minor gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 11 parameters with defaults, ranges, enums, and examples. The description reinforces that lyrics use section markers and that style control exists, but it adds little beyond what the schema already conveys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action: 'Generate AI music with full control over lyrics, title, and style,' naming the resource and the key differentiator. It also explicitly contrasts with the sibling producer_generate_music, making it clear this tool is for custom lyric-driven generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Use this when' bullets clearly state the intended conditions: specific lyrics, precise style control, and specific song title. It gives an explicit alternative: 'For quick generation without writing lyrics, use producer_generate_music instead,' providing both when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

producer_generate_lyricsAInspect

Generate song lyrics from a text prompt.

Creates structured lyrics with proper song sections (Verse, Chorus, Bridge,
etc.) based on your description. The generated lyrics are formatted and
ready to use with producer_generate_custom_music.

Use this when:
- You need lyrics but don't want to write them yourself
- You want AI-generated lyrics for a specific theme or mood
- You need properly structured lyrics with section markers

The output includes section markers like [Verse], [Chorus], [Bridge] that
Producer's music generation understands.

Returns:
    Generated lyrics with title, status, and formatted text with section markers.
ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesDescription of the lyrics you want. Include theme, mood, genre, and any specific elements. Examples: 'A romantic ballad about lost love and rainy nights', 'An upbeat pop song about summer vacation', 'A motivational hip-hop track about overcoming obstacles'

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses output includes section markers and return fields (title, status, formatted text), but does not mention quotas, rate limits, or any non-obvious behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose and uses bullet points for usage scenarios. It is concise without fluff, though the 'Returns' line could be slightly more compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, clear output schema), the description covers purpose, usage, and output format adequately. It is complete for an agent to decide when and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'prompt' has a detailed schema description. The tool description adds value by advising to include theme, mood, genre, and giving examples. Schema coverage is 100%, so baseline 3, with extra context raising it to 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Generate song lyrics from a text prompt' and specifies structured lyrics with proper song sections. It differentiates from sibling tools like producer_generate_music and producer_generate_custom_music.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes 'Use this when:' bullet points listing appropriate scenarios. It mentions output is ready for producer_generate_custom_music, but lacks explicit exclusions or comparisons with alternatives like producer_get_lyric_format_guide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

producer_generate_musicAInspect

Generate AI music from a text prompt using Producer/Riffusion.

This is the simplest way to create music - just describe what you want and
Producer will automatically generate appropriate lyrics, melody, style, and
arrangement.

Use this when:
- You want quick music generation with minimal input
- You don't have specific lyrics in mind
- You want the AI to be creative with the arrangement

For full control over lyrics and style, use producer_generate_custom_music instead.

Returns:
    Task ID and generated audio information including URLs, title, lyrics, and duration.
ParametersJSON Schema
NameRequiredDescriptionDefault
seedNoSeed for reproducible generation. Reuse the same seed to reproduce a result.
asyncNoWhether to process the request asynchronously.
modelNoProducer model version. 'FUZZ-2.0' is the default and recommended for most use cases. 'FUZZ-2.0 Pro' offers the highest quality. 'FUZZ-2.0 Raw' provides raw unprocessed output.FUZZ-2.0
promptYesDescription of the music to generate. Be descriptive about genre, mood, instruments, and theme. Examples: 'A happy birthday song with acoustic guitar', 'Epic orchestral battle music with dramatic choir', 'Chill lo-fi hip hop beat for studying'
weirdnessNoCreative control for how experimental/unusual the generation is. Range 0-1.
callback_urlNoWebhook callback URL for asynchronous notifications. When provided, the API will call this URL when the audio is generated.
instrumentalNoIf true, generate instrumental music without vocals. Default is false (with vocals).
sound_strengthNoCreative control for how strongly the sound/style drives the generation. Range 0-1.
lyrics_strengthNoCreative control for how strongly the lyrics drive the generation. Range 0-1.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the tool automatically generates lyrics, melody, style, and arrangement, and mentions return content (Task ID, URLs, etc.). However, it does not disclose whether the request runs synchronously or asynchronously, nor how the Task ID should be used (e.g., polling with get_task), which is a significant gap for a generation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with the main purpose, followed by concise usage bullets and a clear return statement. Every sentence contributes useful information without redundancy, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, usage, alternatives, and return information. It lacks explicit details about async workflow (e.g., whether immediate audio URLs are returned or whether tasks must be polled), but the output schema and 100% parameter descriptions compensate for missing parameter details. Overall, it is nearly complete but could mention how to obtain results if asynchronous.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description only references the text prompt generically and does not add meaning beyond what the schema already provides for parameters like model, seed, or weirdness. No additional parameter context is given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Generate AI music from a text prompt' with a specific verb and resource, and explicitly differentiates from sibling tool producer_generate_custom_music by calling itself 'the simplest way' and naming the alternative for full control. This is a strong, distinct purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit 'Use this when:' bullet points listing concrete scenarios (quick generation, no specific lyrics, AI-driven arrangement) and directly recommends producer_generate_custom_music for full control, giving clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

producer_generate_videoAInspect

Generate a video for a previously generated song.

Creates a video with visualizations for a generated audio track.
Useful for sharing on social media or video platforms.

Use this when:
- You want a video version of a generated song
- You need to share the song on video platforms
- You want a visual representation of the audio

Returns:
    Task ID and video generation information.
ParametersJSON Schema
NameRequiredDescriptionDefault
audio_idYesID of the audio to generate a video for. This is the 'id' field from a previous generation result.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It notes the tool 'creates a video with visualizations' and returns a 'Task ID', implying an asynchronous task-based flow. However, it does not disclose specifics like visual style, duration limits, or polling behavior, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and concise: a one-line summary, a brief explanation, bulleted usage scenarios, and a returns section. Every sentence adds value, and the most critical information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with a clear output schema, the description covers the essential aspects: what it does, when to use it, and what it returns. It doesn't fully explain the async nature or the content of the visualizations, but given the tool's simplicity and existing context, it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds little beyond the schema. The phrase 'previously generated song' and the 'Returns' note reinforce that audio_id comes from a prior generation, but this is already stated in the schema's parameter description. Thus the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Generate a video for a previously generated song' with a specific verb and resource. It distinguishes this from sibling tools by focusing exclusively on video creation from existing audio, which none of the siblings target.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Use this when' list explicitly provides usage scenarios (video version, sharing on video platforms, visual representation). It lacks explicit mention of when not to use or comparison to alternatives, but the context is clear enough to apply the tool correctly among its siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

producer_generate_wavAInspect

Get the lossless WAV format of a generated song.

Converts the song to high-quality uncompressed WAV format.
WAV files are larger but have no quality loss compared to MP3.

Use this when:
- You need a lossless audio format for production
- You want the highest quality audio output
- You need uncompressed audio for further processing

Returns:
    Task ID and WAV audio information.
ParametersJSON Schema
NameRequiredDescriptionDefault
audio_idYesID of the audio to get the WAV format for.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It explains the conversion action and indicates the return type ('Task ID and WAV audio information'), hinting at an asynchronous process. However, it doesn't elaborate on side effects, prerequisites, or whether the original audio is left untouched. This is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with a summary, WAV context, usage list, and returns section. However, the first two sentences are redundant ('Get the lossless WAV format' vs 'Converts the song to high-quality uncompressed WAV format'), making it slightly less concise than it could be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple single-parameter tool with an output schema, so the description doesn't need to detail return values. It explains the tool's purpose, usage, and provides context about WAV vs MP3. It could mention that audio_id must reference an existing generated song, but that is implied by the schema description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents audio_id with a clear description, and schema coverage is 100%. The tool description adds no additional parameter-level insights beyond what's in the schema, so it meets the baseline but doesn't enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function with specific language: 'Get the lossless WAV format of a generated song' and 'Converts the song to high-quality uncompressed WAV format.' It distinguishes itself from sibling tools like producer_generate_music or producer_cover_music by focusing on format conversion rather than generation or editing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage scenarios in a 'Use this when' list, covering needs like lossless audio, highest quality, and uncompressed output. However, it doesn't mention when not to use the tool (e.g., when file size is a concern) or explicitly name alternative tools, so it stops short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

producer_get_lyric_format_guideAInspect

Get guidance on formatting lyrics for Producer music generation.

Shows how to structure lyrics with section markers for best results.
Following this format helps Producer understand the song structure and
generate appropriate melodies for each section.

Returns:
    Complete guide with section markers, examples, and tips.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description clearly states it returns a complete guide with examples and tips. No annotations to contradict; behavioral traits are transparent for a read-only reference tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences front-loaded with purpose. Every sentence adds value with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a simple guide with no parameters and an output schema. Could mention it is a static document but still sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist; schema coverage is 100%. Description adds value by explaining the guide content beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it provides guidance on formatting lyrics for Producer music generation, distinguishing it from sibling tools like producer_generate_lyrics which actually generate lyrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies use before generating lyrics but does not explicitly state when to use vs. alternatives like producer_generate_lyrics. No exclusions or alternative suggestions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

producer_get_taskAInspect

Query the status and result of a music generation task.

Use this to check if a generation is complete and retrieve the resulting
audio URLs, titles, lyrics, and other metadata.

Use this when:
- You want to check if a generation has completed
- You need to retrieve audio URLs from a previous generation
- You want to get the full details of a generated song

Task states:
- 'pending': Generation is still in progress — KEEP POLLING
- 'processing': Generation is being processed — KEEP POLLING
- 'complete': Generation finished successfully — this is the ONLY state that means done
- 'failed': Generation failed (check error message)

CRITICAL: During the 'pending' state, the response may already contain intermediate
audio_url values (streaming preview URLs). These are NOT final results. You MUST check
the 'state' field — only present the results to the user when state is 'complete' and
success is true. Do NOT stop polling just because audio_url is non-empty.

Returns:
    Task status and generated audio information including URLs, title, lyrics, and task timing metadata.
ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe task ID returned from a generation request. This is the 'task_id' field from any producer_generate_*, producer_extend_*, producer_cover_*, or other tool response.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does an excellent job. It discloses task states, explicitly states that 'pending' and 'processing' require continued polling, gives the only 'done' state ('complete'), and includes a critical warning about intermediate audio URLs not being final results. This is far beyond basic disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, starting with the primary purpose. It uses clear sections (Use this when, Task states, CRITICAL) and every sentence contributes necessary information, especially the critical warning about intermediate audio URLs. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (polling semantics, state machine, intermediate data), the description is fully self-contained. It explains the states, the correct completion condition, the trap of intermediate audio URLs, and summarizes the output. With an output schema present, it appropriately does not enumerate return fields in detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage of the single parameter (task_id), including its provenance from generation tools. The description repeats this information without adding significantly new meaning beyond what the schema already documents, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool queries the status and result of a music generation task, using a specific verb ('Query') and a specific resource ('a music generation task'). It distinguishes itself from sibling tools by focusing on polling and retrieving individual task results, with explicit use cases listed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit 'Use this when' scenarios (checking completion, retrieving audio URLs, getting full details). However, it does not explicitly mention when not to use this tool or recommend alternatives like producer_get_tasks_batch for batch operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

producer_get_tasks_batchAInspect

Query multiple music generation tasks at once.

Efficiently check the status of multiple tasks in a single request.
More efficient than calling producer_get_task multiple times.

Use this when:
- You have multiple pending generations to check
- You want to get status of several songs at once
- You're tracking a batch of generations

CRITICAL: Same as producer_get_task — only consider a task complete when its state
is 'complete' and success is true. Intermediate audio_url values during 'pending'
state are streaming previews, NOT final results.

Returns:
    Status and audio information for all queried tasks.
ParametersJSON Schema
NameRequiredDescriptionDefault
task_idsYesList of task IDs to query. Maximum recommended batch size is 50 tasks.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full burden. It discloses critical behavior: task completion condition (state='complete', success=true) and warns that intermediate audio_url values during 'pending' are streaming previews, not final results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with sections and front-loaded purpose. Minor redundancy between 'Efficiently check...' and 'More efficient than...' but overall efficient and easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given simple schema (1 param with full description) and existence of output schema, the description covers functionality, usage context, critical behavioral warnings, and return description. No gaps evident.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'task_ids', with description already stating batch size limit. The description adds no additional parameter meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it queries multiple music generation tasks, differentiating from sibling producer_get_task by emphasizing batch efficiency. The core action and resource are unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly lists when to use (multiple pending generations, batch tracking) and notes efficiency advantage over single-task variant. Lacks explicit 'when not to use' but positive guidance is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

producer_list_actionsAInspect

List all available Producer API actions and corresponding tools.

Reference guide for what each action does and which tool to use.
Helpful for understanding the full capabilities of the Producer MCP.

Returns:
    Categorized list of all actions and their corresponding tools.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses it returns a 'Categorized list of all actions and their corresponding tools,' which implies read-only behavior. No contradictions or hidden effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences plus a Returns line, front-loaded with the main action. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and an output schema, the description sufficiently explains the tool's purpose and what it returns. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description adds context by mentioning 'Categorized list,' which hints at the structure of the output beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all available Producer API actions and corresponding tools' with a specific verb and resource. It distinguishes itself from sibling action tools by being a reference guide.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context as a 'Reference guide' and 'Helpful for understanding the full capabilities.' It implies when to use it but lacks explicit alternatives or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

producer_list_modelsAInspect

List all available Producer/FUZZ models and their capabilities.

Shows all available model versions with their features and
recommended use cases. Use this to understand which model to choose
for your music generation.

Returns:
    Table of all models with their version and features.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but the description transparently states it lists models and returns a table of versions and features. Could add that it is read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise two-sentence description plus a return note, no wasted words, front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and an output schema, the description is adequate, though it could mention output format details beyond 'table'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the schema covers 100%. Baseline of 4 applies; description adds nothing beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all available Producer/FUZZ models and their capabilities, distinguishing it from sibling tools like generation or upload tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises to use this tool to understand which model to choose for music generation, providing clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

producer_replace_sectionAInspect

Replace a specific time range in a song with new generated content.

Re-generates a portion of a song between the specified start and end times,
keeping the rest of the song unchanged. Great for fixing sections you don't
like.

Use this when:
- A specific section of a song needs improvement
- You want to change lyrics in the middle of a song
- You want to replace a verse or chorus with something different

Returns:
    Task ID and the updated audio information.
ParametersJSON Schema
NameRequiredDescriptionDefault
asyncNoWhether to process the request asynchronously.
lyricNoNew lyrics for the replaced section. Use section markers like [Verse], [Chorus].
modelNoModel version to use.FUZZ-2.0
promptNoPrompt for the replaced section.
audio_idYesID of the audio to replace a section in.
callback_urlNoWebhook callback URL for asynchronous notifications.
replace_section_endYesEnd time in seconds of the section to replace.
replace_section_startYesStart time in seconds of the section to replace.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of disclosing behavior. It states the core effect (re-generates a portion between start/end and leaves the rest unchanged) and says it returns a Task ID and updated audio info, which is useful. However, it remains silent on whether the original audio is permanently mutated or a new version is produced, and gives no detail on async or callback behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a front-loaded action, a use-case bullet list, and a returns line. It is concise overall, though the first sentence and the second sentence both restate the same time-range idea, which is a minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema, the return-value mention is a bonus. The description covers the tool's purpose, usage triggers, and the key effect on the song. It does not explain async/callback semantics, but those are documented in the input schema by parameter descriptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 8 parameters (audio_id, replace_section_start/end, prompt, model, async, callback_url). The description adds little beyond referring to the specified start and end times, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Replace a specific time range in a song with new generated content,' and elaborates with 'keeping the rest of the song unchanged.' This clearly differentiates the tool from siblings like extend, cover, or variation because the unique scope is a contiguous time window within an existing track.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

A dedicated 'Use this when' list gives concrete triggers (fixing sections, changing lyrics, replacing a verse/chorus). It does not mention exclusions or name sibling alternatives, but the context is clear enough to select the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

producer_stems_musicAInspect

Separate a song into individual stems (vocals and instruments).

Splits the audio into separate tracks for vocals and instrumentals,
useful for remixing, karaoke, or isolating specific parts.

Use this when:
- You want to separate vocals from instrumentals
- You need individual stem tracks for mixing
- You want to create a karaoke version

Returns:
    Task ID and stem separation results with individual track URLs.
ParametersJSON Schema
NameRequiredDescriptionDefault
asyncNoWhether to process the request asynchronously.
audio_idYesID of the audio to separate into stems.
callback_urlNoWebhook callback URL for asynchronous notifications.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It mentions returning a Task ID and track URLs, hinting at asynchronous behavior, but does not explicitly disclose that this is a long-running operation requiring polling or callback handling. It also omits prerequisites, rate limits, or any caveats about output quality, leaving significant behavioral traits undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized with a summary sentence, usage bullets, and a returns section. It is not overly verbose, though the 'useful for' line is somewhat redundant. Overall, it is efficient and front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, usage scenarios, and return types adequately. However, it misses the crucial async execution model and how the Task ID should be used (polling vs callback), which is a significant gap given the async parameter. With an output schema present, return details need not be exhaustive, but the missing workflow context reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add extra meaning beyond the schema; it doesn't explain async or callback_url behavior, but the schema already fully documents these parameters. No additional semantic value is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool separates a song into individual stems (vocals and instrumentals). This specific verb+resource pairing distinguishes it from sibling tools like producer_swap_vocals or producer_replace_section, which modify audio differently.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Use this when' section provides clear, contextual scenarios such as remixing, karaoke, or isolating parts. It does not explicitly state when not to use this tool or mention alternative tools, but the usage context is strong enough for an agent to choose correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

producer_swap_instrumentalsAInspect

Swap the instrumental track of one song with instrumentals from another.

Requests instrumental swapping for the provided audio.

Use this when:
- You want to combine instrumentals from one song with vocals from another
- You want to hear how the same vocals sound over different music
- You're creating an instrumental mashup

Returns:
    Task ID and the swapped audio information.
ParametersJSON Schema
NameRequiredDescriptionDefault
asyncNoWhether to process the request asynchronously.
audio_idYesID of the base audio whose instrumentals will be replaced.
callback_urlNoWebhook callback URL for asynchronous notifications.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the disclosure burden. It does frame the operation as 'Requests instrumental swapping' and states that a Task ID is returned, which tells the agent the operation is task-based rather than returning immediate audio. However, it does not disclose whether the original file is modified, how the result is eventually retrieved, or any prerequisites or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, front-loaded, and scannable with use-case bullets and a Returns line. The second sentence, 'Requests instrumental swapping for the provided audio,' is largely redundant with the first sentence and does not fully earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The central workflow is incomplete: the description says instrumentals come 'from another' song, but the schema exposes only a single audio_id plus async and callback_url, with no way to identify the other instrumental source. An agent cannot reliably determine what to pass or how the replacement source is chosen. Return values are likely covered by the output schema, but this source ambiguity is a significant functional gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents all three parameters, so the description does not need to add parameter-level detail; the baseline 3 applies. The phrase 'from another' is not mapped to any actual parameter, which introduces mild ambiguity about how the replacement instrumental source is selected, but the schema itself is clear about audio_id being the base audio.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a concrete verb-object statement: 'Swap the instrumental track of one song with instrumentals from another.' It names the action and resource clearly, and the instrumental-vs-vocal wording distinguishes it from the sibling swap_vocals tool without needing further explanation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an explicit 'Use this when' bullet list with concrete scenarios: combining instrumentals from one song with vocals from another, testing vocals over different music, and creating an instrumental mashup. It does not mention when not to use it or directly route to alternatives, so it falls just short of full guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

producer_swap_vocalsAInspect

Swap the vocals of one song with vocals from another song.

Requests vocal swapping for the provided audio.

Use this when:
- You want to combine vocals from one song with instrumentals from another
- You want to hear how different vocals sound over the same beat
- You're creating a vocal mashup

Returns:
    Task ID and the swapped audio information.
ParametersJSON Schema
NameRequiredDescriptionDefault
asyncNoWhether to process the request asynchronously.
audio_idYesID of the base audio whose vocals will be replaced.
callback_urlNoWebhook callback URL for asynchronous notifications.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full transparency burden. It mentions 'Requests' and states that a Task ID is returned, implying an asynchronous request flow. However, it does not disclose side effects, prerequisites, or how the replacement vocals are supplied, leaving important behavioral details incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the main action. The 'Requests vocal swapping' sentence is mildly redundant with the first line, but the bullet list and Returns section are useful and economically worded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists, the description omits how the second audio source is identified, which is essential for correct invocation. The mismatch between the described two-song swap and the single-audio request schema leaves the tool incomplete from an agent's perspective.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description creates confusion by referencing 'another song' with no corresponding schema parameter. The only audio-related param, audio_id, is described as the base audio whose vocals are replaced, so an agent cannot determine how to specify the replacement vocals, undermining the parameter clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: swapping the vocals between two songs. The term 'vocals' clearly distinguishes it from sibling tools like producer_swap_instrumentals. The core action is immediately recognizable even though the second-audio mechanism is not explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a 'Use this when' list with three concrete scenarios: vocal mashups, trying different vocals over a beat, and combining vocals with another instrumental. It does not name alternative tools or explicitly say when not to use, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

producer_upload_audioAInspect

Upload an external audio file for use in subsequent operations.

Uploads audio from a URL so it can be used with actions like extend,
cover, variation, swap_vocals, and swap_instrumentals.

Use this when:
- You have your own music you want to process with Producer
- You want to use an external audio as a base for operations
- You need to import audio into Producer's system

After uploading, use the returned audio_id with other Producer tools.

Returns:
    Upload result with audio ID for use in subsequent operations.
ParametersJSON Schema
NameRequiredDescriptionDefault
audio_urlYesPublic URL of the audio file to upload. The URL must be directly accessible (CDN link, cloud storage URL, etc.).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explains that the tool uploads audio from a URL and returns an audio_id. It mentions the URL must be directly accessible, which is a useful constraint. Without annotations, the description provides reasonable behavioral context for a simple upload operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise with a clear structure: main verb, explanation, use cases, and return value. It is front-loaded with the key purpose. Could be slightly tighter but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no nested objects) and the presence of an output schema, the description covers the workflow adequately. It explains how the output (audio_id) is used with sibling tools, making it contextually complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'audio_url' has 100% schema coverage, and the description adds extra guidance that the URL must be directly accessible. This adds semantic value beyond the schema's basic description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool uploads an external audio file for subsequent operations, and distinguishes it from sibling tools that process audio. It specifies the output (audio_id) and usage with actions like extend, cover, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists specific scenarios when to use the tool (e.g., when you have your own music, want to use external audio). While it doesn't explicitly state when not to use it, the context makes it clear that this is the import tool and siblings are for processing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

producer_variation_musicAInspect

Create a variation of an existing song with modifications.

Generates a new version of the song with subtle changes to the arrangement,
melody, or style while keeping the overall structure similar.

Use this when:
- You like a song but want a slightly different version
- You want to explore different interpretations of the same idea
- You need multiple takes of a similar song

Returns:
    Task ID and the variation audio information.
ParametersJSON Schema
NameRequiredDescriptionDefault
asyncNoWhether to process the request asynchronously.
modelNoModel version to use for the variation.FUZZ-2.0
promptNoDescription of the desired variation. Examples: 'more upbeat tempo', 'darker mood', 'add more bass'
audio_idYesID of the audio to create a variation of.
callback_urlNoWebhook callback URL for asynchronous notifications.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It clearly states that a new version is generated and that the return includes a Task ID and variation audio information. However, it does not disclose async/callback behavior, whether the original audio is left untouched, or any side effects beyond generating a new version.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections for the main action, use cases, and return value. Some redundancy exists between the opening sentence and the second paragraph, as both describe generating a new version with modifications, which prevents a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers what the tool does and when to use it, and the output schema covers return values. However, it does not clarify how async processing works, when to set callback_url, or whether the original song is preserved, which are relevant for correctly invoking this tool in different scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds some context by mentioning arrangement, melody, and style, which aligns with the prompt parameter's purpose, but it does not meaningfully explain audio_id, model, async, or callback_url beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Create a variation of an existing song with modifications.' It further clarifies the nature of the output as a new version with subtle changes to arrangement, melody, or style while keeping structure similar, which distinguishes it clearly from sibling tools like generate, cover, extend, or replace_section.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Use this when' section gives concrete scenarios for when the tool is appropriate, such as wanting a slightly different version or exploring interpretations. However, it does not explicitly say when not to use it or name alternative sibling tools that might be better suited for related tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 7 tool updatesv0.1.18
    • Changedproducer_cover_music1 field changed
      • removedInput schema / properties / style
        Removed value: -{
        -  "default": "",
        -  "description": "Target music style for the cover. Examples: 'jazz, smooth, saxophone', 'acoustic folk, gentle guitar', 'electronic dance, high energy'",
        -  "title": "Style",
        -  "type": "string"
        -}
    • Changedproducer_extend_music2 fields changed
      • addedInput schema / properties / prompt
        Added value: +{
        +  "default": "",
        +  "description": "Prompt for the extension. Leave empty to maintain the original style, or specify how to change the style mid-song.",
        +  "title": "Prompt",
        +  "type": "string"
        +}
      • removedInput schema / properties / style
        Removed value: -{
        -  "default": "",
        -  "description": "Music style for the extension. Leave empty to maintain the original style, or specify to change the style mid-song.",
        -  "title": "Style",
        -  "type": "string"
        -}
    • Changedproducer_generate_custom_music2 fields changed
      • addedInput schema / properties / prompt
        Added value: +{
        +  "default": "",
        +  "description": "Music style prompt. Be specific about genre, mood, tempo, and instruments. Examples: 'upbeat pop rock, energetic drums, electric guitar', 'acoustic folk, gentle, fingerpicking', 'dark electronic, synthwave, 80s retro'",
        +  "title": "Prompt",
        +  "type": "string"
        +}
      • removedInput schema / properties / style
        Removed value: -{
        -  "default": "",
        -  "description": "Music style description. Be specific about genre, mood, tempo, and instruments. Examples: 'upbeat pop rock, energetic drums, electric guitar', 'acoustic folk, gentle, fingerpicking', 'dark electronic, synthwave, 80s retro'",
        -  "title": "Style",
        -  "type": "string"
        -}
    • Changedproducer_replace_section2 fields changed
      • addedInput schema / properties / prompt
        Added value: +{
        +  "default": "",
        +  "description": "Prompt for the replaced section.",
        +  "title": "Prompt",
        +  "type": "string"
        +}
      • removedInput schema / properties / style
        Removed value: -{
        -  "default": "",
        -  "description": "Music style for the replaced section.",
        -  "title": "Style",
        -  "type": "string"
        -}
    • Changedproducer_swap_instrumentals2 fields changed
      • removedInput schema / properties / swap_audio_id
        Removed value: -{
        -  "description": "ID of the audio whose instrumentals to use as replacement.",
        -  "title": "Swap Audio Id",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "audio_id",
        -  "swap_audio_id"
        -]New value: +[
        +  "audio_id"
        +]
    • Changedproducer_swap_vocals2 fields changed
      • removedInput schema / properties / swap_audio_id
        Removed value: -{
        -  "description": "ID of the audio whose vocals to use as replacement.",
        -  "title": "Swap Audio Id",
        -  "type": "string"
        -}
      • changedInput schema / required
        Previous value: -[
        -  "audio_id",
        -  "swap_audio_id"
        -]New value: +[
        +  "audio_id"
        +]
    • Changedproducer_variation_music1 field changed
      • removedInput schema / properties / style
        Removed value: -{
        -  "default": "",
        -  "description": "Music style for the variation. Examples: 'faster tempo, more energy', 'softer, more intimate', 'heavier, more distortion'",
        -  "title": "Style",
        -  "type": "string"
        -}
  2. 11 tool updatesv0.1.16
    • Changedproducer_cover_music1 field changed
      • addedInput schema / properties / async
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Whether to process the request asynchronously.",
        +  "title": "Async"
        +}
    • Changedproducer_extend_music1 field changed
      • addedInput schema / properties / async
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Whether to process the request asynchronously.",
        +  "title": "Async"
        +}
    • Changedproducer_generate_custom_music2 fields changed
      • addedInput schema / properties / async
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Whether to process the request asynchronously.",
        +  "title": "Async"
        +}
      • changedInput schema / properties / seed / anyOf
        Previous value: -[
        -  {
        -    "type": "integer"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedproducer_generate_music2 fields changed
      • addedInput schema / properties / async
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Whether to process the request asynchronously.",
        +  "title": "Async"
        +}
      • changedInput schema / properties / seed / anyOf
        Previous value: -[
        -  {
        -    "type": "integer"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedproducer_generate_video1 field changed
      • removedInput schema / properties / callback_url
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Webhook callback URL for asynchronous notifications.",
        -  "title": "Callback Url"
        -}
    • Changedproducer_generate_wav1 field changed
      • removedInput schema / properties / callback_url
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "Webhook callback URL for asynchronous notifications.",
        -  "title": "Callback Url"
        -}
    • Changedproducer_replace_section1 field changed
      • addedInput schema / properties / async
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Whether to process the request asynchronously.",
        +  "title": "Async"
        +}
    • Changedproducer_stems_music1 field changed
      • addedInput schema / properties / async
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Whether to process the request asynchronously.",
        +  "title": "Async"
        +}
    • Changedproducer_swap_instrumentals1 field changed
      • addedInput schema / properties / async
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Whether to process the request asynchronously.",
        +  "title": "Async"
        +}
    • Changedproducer_swap_vocals1 field changed
      • addedInput schema / properties / async
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Whether to process the request asynchronously.",
        +  "title": "Async"
        +}
    • Changedproducer_variation_music1 field changed
      • addedInput schema / properties / async
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Whether to process the request asynchronously.",
        +  "title": "Async"
        +}
  3. 2 tool updatesv0.1.15
    • Changedproducer_generate_custom_music4 fields changed
      • addedInput schema / properties / lyrics_strength
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 1,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Creative control for how strongly the lyrics drive the generation. Range 0-1.",
        +  "title": "Lyrics Strength"
        +}
      • addedInput schema / properties / seed
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Seed for reproducible generation. Reuse the same seed to reproduce a result.",
        +  "title": "Seed"
        +}
      • addedInput schema / properties / sound_strength
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 1,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Creative control for how strongly the sound/style drives the generation. Range 0-1.",
        +  "title": "Sound Strength"
        +}
      • addedInput schema / properties / weirdness
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 1,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Creative control for how experimental/unusual the generation is. Range 0-1.",
        +  "title": "Weirdness"
        +}
    • Changedproducer_generate_music4 fields changed
      • addedInput schema / properties / lyrics_strength
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 1,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Creative control for how strongly the lyrics drive the generation. Range 0-1.",
        +  "title": "Lyrics Strength"
        +}
      • addedInput schema / properties / seed
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Seed for reproducible generation. Reuse the same seed to reproduce a result.",
        +  "title": "Seed"
        +}
      • addedInput schema / properties / sound_strength
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 1,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Creative control for how strongly the sound/style drives the generation. Range 0-1.",
        +  "title": "Sound Strength"
        +}
      • addedInput schema / properties / weirdness
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 1,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Creative control for how experimental/unusual the generation is. Range 0-1.",
        +  "title": "Weirdness"
        +}
  4. 18 tool updatesv0.1.13
    • Addedproducer_cover_music
    • Addedproducer_extend_music
    • Addedproducer_generate_custom_music
    • Addedproducer_generate_lyrics
    • Addedproducer_generate_music
    • Addedproducer_generate_video
    • Addedproducer_generate_wav
    • Addedproducer_get_lyric_format_guide
    • Addedproducer_get_task
    • Addedproducer_get_tasks_batch
    • Addedproducer_list_actions
    • Addedproducer_list_models
    • Addedproducer_replace_section
    • Addedproducer_stems_music
    • Addedproducer_swap_instrumentals
    • Addedproducer_swap_vocals
    • Addedproducer_upload_audio
    • Addedproducer_variation_music
  5. 18 tool updatesv0.1.12
    • Removedproducer_cover_music
    • Removedproducer_extend_music
    • Removedproducer_generate_custom_music
    • Removedproducer_generate_lyrics
    • Removedproducer_generate_music
    • Removedproducer_generate_video
    • Removedproducer_generate_wav
    • Removedproducer_get_lyric_format_guide
    • Removedproducer_get_task
    • Removedproducer_get_tasks_batch
    • Removedproducer_list_actions
    • Removedproducer_list_models
    • Removedproducer_replace_section
    • Removedproducer_stems_music
    • Removedproducer_swap_instrumentals
    • Removedproducer_swap_vocals
    • Removedproducer_upload_audio
    • Removedproducer_variation_music
  6. 18 tool updatesv0.1.0
    • First observedproducer_cover_music
    • First observedproducer_extend_music
    • First observedproducer_generate_custom_music
    • First observedproducer_generate_lyrics
    • First observedproducer_generate_music
    • First observedproducer_generate_video
    • First observedproducer_generate_wav
    • First observedproducer_get_lyric_format_guide
    • First observedproducer_get_task
    • First observedproducer_get_tasks_batch
    • First observedproducer_list_actions
    • First observedproducer_list_models
    • First observedproducer_replace_section
    • First observedproducer_stems_music
    • First observedproducer_swap_instrumentals
    • First observedproducer_swap_vocals
    • First observedproducer_upload_audio
    • First observedproducer_variation_music

TDQS

A3.9/5.0
Disambiguation4/5

Most tools cleanly separate generation, modification, retrieval, and audio processing concerns. The main ambiguity is between cover_music and variation_music, both of which create alternative versions of an existing song, though their descriptions distinguish genre/remix changes from subtle arrangement variations. get_task and get_tasks_batch are also adjacent but clearly differentiated by single vs. batch polling.

Naming Consistency4/5

All tools share the producer_ prefix and mostly follow a verb_noun pattern such as generate_music, get_task, swap_vocals, and upload_audio. A few names like variation_music and stems_music break the verb-first pattern, and get_lyric_format_guide uses a longer compound object, so consistency is good but not perfect.

Tool Count4/5

18 tools is above the typical 3-15 range, but the music production workflow justifies most of them: generation, editing, stems, swaps, video, lyrics, upload, and task polling. The two reference guides and the separate single/batch task query tools add mild bulk, but no tool feels truly extraneous.

Completeness4/5

The domain is covered end-to-end: create music via prompt or lyrics, retrieve results, modify via extend/cover/variation/replace, process via stems/swaps/WAV/video, and import external audio. Minor conveniences like listing all tasks or cancelling a task are absent, but core workflows have no dead ends.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/AceDataCloud/ProducerMCP'

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