ProducerMCP
ProducerMCP enables AI-powered music generation, editing, and media processing via the Producer/Riffusion API (FUZZ models). Here's what you can do:
Music Generation
Generate music from a prompt – Describe genre, mood, and theme; AI creates the full song
Generate custom music – Provide your own lyrics (with section markers like
[Verse],[Chorus]), title, and style for full creative controlGenerate lyrics – Auto-generate structured song lyrics from a text description
Song Editing & Transformation
Extend a song – Continue an existing song from any timestamp with new lyrics or sections
Create a cover/remix – Re-generate a song in a different genre or style
Create a variation – Generate a subtly different version of an existing song
Replace a section – Re-generate a specific time range within a song with new content
Vocal & Instrumental Manipulation
Swap vocals – Combine the instrumentals of one song with the vocals of another
Swap instrumentals – Combine the vocals of one song with the instrumentals of another
Separate stems – Split a song into individual vocal and instrumental tracks
Media & Export
Upload audio – Import external audio files via URL for use in further operations
Generate a music video – Create a video visualization for a generated song
Export to WAV – Get a lossless, high-quality WAV version of any generated song
Task Management
Query a single task – Check status and retrieve results of a generation task
Query tasks in batch – Check status of up to 50 tasks at once
Information & Reference
List available models – View all 8 FUZZ models (FUZZ-0.8 through FUZZ-2.0 Pro) and their capabilities
List available actions – See all supported API actions and corresponding tools
Get lyric format guide – Learn how to properly structure lyrics with section markers for best results
It is compatible with Claude, VS Code, JetBrains, Cursor, Windsurf, and other MCP-compatible clients, and can be deployed via a hosted endpoint or run locally with Docker, stdio, or HTTP transport.
ProducerMCP
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 |
| Generate AI music from a text prompt. |
| Generate music with custom lyrics, title, and style. |
| Extend an existing song from a specific timestamp. |
| Create a cover/remix version in a different style. |
| Create a variation of an existing song. |
| Swap vocals between two songs. |
| Swap instrumentals between two songs. |
| Replace a specific time range with new content. |
| Separate a song into vocal and instrumental stems. |
| Generate structured song lyrics from a prompt. |
| Upload external audio for processing. |
| Generate a music video for a song. |
| Get lossless WAV format of a song. |
| Query the status of a generation task. |
| Query multiple generation tasks at once. |
| List all available FUZZ models. |
| List all available actions and tools. |
| Get lyrics formatting guide. |
Quick Start
1. Get Your API Token
Sign up at AceDataCloud Platform
Navigate to the API documentation
Click "Acquire" to get your API token
Copy the token for use below
2. Use the Hosted Server (Recommended)
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:
Go to Claude.ai Settings > Integrations > Add More
Enter the server URL:
https://producer.mcp.acedata.cloud/mcpComplete the OAuth login flow
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
Go to Settings > Tools > AI Assistant > Model Context Protocol (MCP)
Click Add > HTTP
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 8000Claude 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:latestClients connect with their own Bearer token -- the server extracts the token from each request's Authorization header.
Available Tools
Music Generation
Tool | Description |
| Generate music from a text prompt |
| Generate with custom lyrics and style |
| Extend a song from a timestamp |
| Create a cover in a different style |
| Create a variation of a song |
Vocal/Instrumental
Tool | Description |
| Swap vocals between two songs |
| Swap instrumentals between two songs |
| Replace a time range with new content |
| Separate into stems |
Lyrics
Tool | Description |
| Generate lyrics from a prompt |
Media
Tool | Description |
| Upload external audio |
| Generate video for a song |
| Get lossless WAV format |
Tasks
Tool | Description |
| Query a single task status |
| Query multiple tasks at once |
Information
Tool | Description |
| List available FUZZ models |
| List available API actions |
| 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 |
| API token from AceDataCloud | Required |
| API base URL |
|
| OAuth client ID (hosted mode) | -- |
| Platform base URL |
|
| Default FUZZ model |
|
| Request timeout in seconds |
|
| Logging level |
|
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 integrationCode Quality
# Format code
ruff format .
# Lint code
ruff check .
# Type check
mypy core toolsBuild & 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.mdContributing
Contributions are welcome! Please:
Fork the repository
Create a feature branch (
git checkout -b feature/amazing)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing)Open a Pull Request
Documentation
License
MIT License - see LICENSE for details.
Links
Made with love by AceDataCloud
Available Tools
18 toolsproducer_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.
| Name | Required | Description | Default |
|---|---|---|---|
| async | No | Whether to process the request asynchronously. | |
| model | No | Model version to use for the cover. | FUZZ-2.0 |
| prompt | No | Description of how you want the cover to sound. Examples: 'acoustic unplugged version', 'jazz lounge style', '80s synthwave remix' | |
| audio_id | Yes | ID of the audio to create a cover of. This is the 'id' field from a previous generation. | |
| callback_url | No | Webhook callback URL for asynchronous notifications. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| async | No | Whether to process the request asynchronously. | |
| lyric | No | Lyrics for the extended section. Use section markers like [Verse], [Chorus], [Bridge], [Outro]. The extension will continue from where the original song left off. | |
| model | No | Model version to use for the extension. | FUZZ-2.0 |
| prompt | No | Prompt for the extension. Leave empty to maintain the original style, or specify how to change the style mid-song. | |
| audio_id | Yes | ID of the audio to extend. This is the 'id' field from a previous generation result. | |
| continue_at | Yes | Timestamp in seconds where to start the extension. For example, 120.5 means continue from 2 minutes and 0.5 seconds into the song. | |
| callback_url | No | Webhook callback URL for asynchronous notifications. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Seed for reproducible generation. Reuse the same seed to reproduce a result. | |
| async | No | Whether to process the request asynchronously. | |
| lyric | Yes | Song 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 | |
| model | No | Producer model version. 'FUZZ-2.0' or 'FUZZ-2.0 Pro' recommended for best quality. | FUZZ-2.0 |
| title | Yes | Title of the song. Keep it concise and memorable. | |
| prompt | No | 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' | |
| weirdness | No | Creative control for how experimental/unusual the generation is. Range 0-1. | |
| callback_url | No | Webhook callback URL for asynchronous notifications. | |
| instrumental | No | If true, generate instrumental version (lyrics will be ignored). Default is false. | |
| sound_strength | No | Creative control for how strongly the sound/style drives the generation. Range 0-1. | |
| lyrics_strength | No | Creative control for how strongly the lyrics drive the generation. Range 0-1. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Description 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
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Seed for reproducible generation. Reuse the same seed to reproduce a result. | |
| async | No | Whether to process the request asynchronously. | |
| model | No | Producer 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 |
| prompt | Yes | Description 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' | |
| weirdness | No | Creative control for how experimental/unusual the generation is. Range 0-1. | |
| callback_url | No | Webhook callback URL for asynchronous notifications. When provided, the API will call this URL when the audio is generated. | |
| instrumental | No | If true, generate instrumental music without vocals. Default is false (with vocals). | |
| sound_strength | No | Creative control for how strongly the sound/style drives the generation. Range 0-1. | |
| lyrics_strength | No | Creative control for how strongly the lyrics drive the generation. Range 0-1. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| audio_id | Yes | ID of the audio to generate a video for. This is the 'id' field from a previous generation result. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| audio_id | Yes | ID of the audio to get the WAV format for. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The 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
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task_ids | Yes | List of task IDs to query. Maximum recommended batch size is 50 tasks. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| async | No | Whether to process the request asynchronously. | |
| lyric | No | New lyrics for the replaced section. Use section markers like [Verse], [Chorus]. | |
| model | No | Model version to use. | FUZZ-2.0 |
| prompt | No | Prompt for the replaced section. | |
| audio_id | Yes | ID of the audio to replace a section in. | |
| callback_url | No | Webhook callback URL for asynchronous notifications. | |
| replace_section_end | Yes | End time in seconds of the section to replace. | |
| replace_section_start | Yes | Start time in seconds of the section to replace. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| async | No | Whether to process the request asynchronously. | |
| audio_id | Yes | ID of the audio to separate into stems. | |
| callback_url | No | Webhook callback URL for asynchronous notifications. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| async | No | Whether to process the request asynchronously. | |
| audio_id | Yes | ID of the base audio whose instrumentals will be replaced. | |
| callback_url | No | Webhook callback URL for asynchronous notifications. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| async | No | Whether to process the request asynchronously. | |
| audio_id | Yes | ID of the base audio whose vocals will be replaced. | |
| callback_url | No | Webhook callback URL for asynchronous notifications. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| audio_url | Yes | Public URL of the audio file to upload. The URL must be directly accessible (CDN link, cloud storage URL, etc.). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| async | No | Whether to process the request asynchronously. | |
| model | No | Model version to use for the variation. | FUZZ-2.0 |
| prompt | No | Description of the desired variation. Examples: 'more upbeat tempo', 'darker mood', 'add more bass' | |
| audio_id | Yes | ID of the audio to create a variation of. | |
| callback_url | No | Webhook callback URL for asynchronous notifications. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
7 tool updates
v0.1.18- Changed
producer_cover_music1 field changed- removed
Input schema / properties / styleRemoved 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" -}
- Changed
producer_extend_music2 fields changed- added
Input schema / properties / promptAdded 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" +} - removed
Input schema / properties / styleRemoved 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" -}
- Changed
producer_generate_custom_music2 fields changed- added
Input schema / properties / promptAdded 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" +} - removed
Input schema / properties / styleRemoved 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" -}
- Changed
producer_replace_section2 fields changed- added
Input schema / properties / promptAdded value: +{ + "default": "", + "description": "Prompt for the replaced section.", + "title": "Prompt", + "type": "string" +} - removed
Input schema / properties / styleRemoved value: -{ - "default": "", - "description": "Music style for the replaced section.", - "title": "Style", - "type": "string" -}
- Changed
producer_swap_instrumentals2 fields changed- removed
Input schema / properties / swap_audio_idRemoved value: -{ - "description": "ID of the audio whose instrumentals to use as replacement.", - "title": "Swap Audio Id", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "audio_id", - "swap_audio_id" -]New value: +[ + "audio_id" +]
- Changed
producer_swap_vocals2 fields changed- removed
Input schema / properties / swap_audio_idRemoved value: -{ - "description": "ID of the audio whose vocals to use as replacement.", - "title": "Swap Audio Id", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "audio_id", - "swap_audio_id" -]New value: +[ + "audio_id" +]
- Changed
producer_variation_music1 field changed- removed
Input schema / properties / styleRemoved value: -{ - "default": "", - "description": "Music style for the variation. Examples: 'faster tempo, more energy', 'softer, more intimate', 'heavier, more distortion'", - "title": "Style", - "type": "string" -}
11 tool updates
v0.1.16- Changed
producer_cover_music1 field changed- added
Input schema / properties / asyncAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether to process the request asynchronously.", + "title": "Async" +}
- Changed
producer_extend_music1 field changed- added
Input schema / properties / asyncAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether to process the request asynchronously.", + "title": "Async" +}
- Changed
producer_generate_custom_music2 fields changed- added
Input schema / properties / asyncAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether to process the request asynchronously.", + "title": "Async" +} - changed
Input schema / properties / seed / anyOfPrevious value: -[ - { - "type": "integer" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "string" + }, + { + "type": "null" + } +]
- Changed
producer_generate_music2 fields changed- added
Input schema / properties / asyncAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether to process the request asynchronously.", + "title": "Async" +} - changed
Input schema / properties / seed / anyOfPrevious value: -[ - { - "type": "integer" - }, - { - "type": "null" - } -]New value: +[ + { + "type": "string" + }, + { + "type": "null" + } +]
- Changed
producer_generate_video1 field changed- removed
Input schema / properties / callback_urlRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Webhook callback URL for asynchronous notifications.", - "title": "Callback Url" -}
- Changed
producer_generate_wav1 field changed- removed
Input schema / properties / callback_urlRemoved value: -{ - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Webhook callback URL for asynchronous notifications.", - "title": "Callback Url" -}
- Changed
producer_replace_section1 field changed- added
Input schema / properties / asyncAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether to process the request asynchronously.", + "title": "Async" +}
- Changed
producer_stems_music1 field changed- added
Input schema / properties / asyncAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether to process the request asynchronously.", + "title": "Async" +}
- Changed
producer_swap_instrumentals1 field changed- added
Input schema / properties / asyncAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether to process the request asynchronously.", + "title": "Async" +}
- Changed
producer_swap_vocals1 field changed- added
Input schema / properties / asyncAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether to process the request asynchronously.", + "title": "Async" +}
- Changed
producer_variation_music1 field changed- added
Input schema / properties / asyncAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Whether to process the request asynchronously.", + "title": "Async" +}
2 tool updates
v0.1.15- Changed
producer_generate_custom_music4 fields changed- added
Input schema / properties / lyrics_strengthAdded 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" +} - added
Input schema / properties / seedAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Seed for reproducible generation. Reuse the same seed to reproduce a result.", + "title": "Seed" +} - added
Input schema / properties / sound_strengthAdded 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" +} - added
Input schema / properties / weirdnessAdded 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" +}
- Changed
producer_generate_music4 fields changed- added
Input schema / properties / lyrics_strengthAdded 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" +} - added
Input schema / properties / seedAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Seed for reproducible generation. Reuse the same seed to reproduce a result.", + "title": "Seed" +} - added
Input schema / properties / sound_strengthAdded 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" +} - added
Input schema / properties / weirdnessAdded 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" +}
18 tool updates
v0.1.13- Added
producer_cover_music - Added
producer_extend_music - Added
producer_generate_custom_music - Added
producer_generate_lyrics - Added
producer_generate_music - Added
producer_generate_video - Added
producer_generate_wav - Added
producer_get_lyric_format_guide - Added
producer_get_task - Added
producer_get_tasks_batch - Added
producer_list_actions - Added
producer_list_models - Added
producer_replace_section - Added
producer_stems_music - Added
producer_swap_instrumentals - Added
producer_swap_vocals - Added
producer_upload_audio - Added
producer_variation_music
18 tool updates
v0.1.12- Removed
producer_cover_music - Removed
producer_extend_music - Removed
producer_generate_custom_music - Removed
producer_generate_lyrics - Removed
producer_generate_music - Removed
producer_generate_video - Removed
producer_generate_wav - Removed
producer_get_lyric_format_guide - Removed
producer_get_task - Removed
producer_get_tasks_batch - Removed
producer_list_actions - Removed
producer_list_models - Removed
producer_replace_section - Removed
producer_stems_music - Removed
producer_swap_instrumentals - Removed
producer_swap_vocals - Removed
producer_upload_audio - Removed
producer_variation_music
18 tool updates
v0.1.0- First observed
producer_cover_music - First observed
producer_extend_music - First observed
producer_generate_custom_music - First observed
producer_generate_lyrics - First observed
producer_generate_music - First observed
producer_generate_video - First observed
producer_generate_wav - First observed
producer_get_lyric_format_guide - First observed
producer_get_task - First observed
producer_get_tasks_batch - First observed
producer_list_actions - First observed
producer_list_models - First observed
producer_replace_section - First observed
producer_stems_music - First observed
producer_swap_instrumentals - First observed
producer_swap_vocals - First observed
producer_upload_audio - First observed
producer_variation_music
TDQS
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.
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.
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.
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
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
AI music studio: song generation with vocals, covers, stems, voice conversion, mastering, editing.
Write lyrics in 100+ styles, score them, generate full songs with 4 engines, split stems. OAuth.
1Generate images, video, music, voice and 3D through one API. 30 tools, 200+ models.
Create and track AI music videos and audio-reactive visuals from songs.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides AI-powered audio generation and processing through the MusicGPT API, enabling music creation, voice conversion, audio manipulation, stem extraction, and audio analysis capabilities.24171MIT
- AlicenseNot gradedqualityBmaintenanceIntegrates AI-powered music generation with professional production tools, enabling autonomous music creation workflows from MIDI input to live streaming.5MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI music generation and management through the Suno API, supporting text prompts, custom lyrics, track status monitoring, and credit management.11-
- AlicenseNot gradedqualityBmaintenanceAI-powered music production toolkit enabling AI agents to generate, remix, separate stems, master tracks, and control DAWs via MCP.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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