Skip to main content
Glama
veniceai

Venice MCP Server

Official
by veniceai

Venice Music Queue

venice_music_generate

Queue AI music or sound-effect generation from a text prompt and chosen model, returning a queue_id to poll until the audio track is ready.

Instructions

Queue music generation. Available models: ace-step-15, elevenlabs-music, minimax-music-v2/v25/v26, stable-audio-25, mmaudio-v2-text-to-audio, elevenlabs-sound-effects-v2. Uncensored: NSFW prompts allowed where the model permits. Supports x402 wallet auth (no Venice account needed) and API key. Returns { model, queue_id }; poll with venice_music_status.

Input Schema

NameRequiredDescriptionDefault
loopNoCreate a seamless loop on models reporting supports_loop.
modelYesRequired. Music model id, e.g. "elevenlabs-music".
speedNoModel-specific speed multiplier. Check model min_speed/max_speed.
voiceNoModel-supported voice id/name.
lyricsNoDeprecated: use lyrics_prompt. Ignored when lyrics_prompt is set.
promptYes
instrumentalNoDeprecated: use force_instrumental. Ignored when force_instrumental is set.
language_codeNoISO 639-1 language code on supported models.
lyrics_promptNoLyrics/text for lyric-capable models. Length limits come from model metadata.
duration_secondsNoOptional duration in seconds as a positive integer or numeric string. Model-specific.
lyrics_optimizerNoAuto-generate lyrics. lyrics_prompt must be empty when enabled.
force_instrumentalNoOnly for models reporting supports_force_instrumental.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed15 schema fields changedv0.3.0
    • addedInput schema / properties / duration_seconds / anyOf
      Added value: +[
      +  {
      +    "exclusiveMinimum": 0,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^[1-9]\\d*$",
      +    "type": "string"
      +  }
      +]
    • addedInput schema / properties / duration_seconds / description
      Added value: +"Optional duration in seconds as a positive integer or numeric string. Model-specific."
    • removedInput schema / properties / duration_seconds / maximum
      Removed value: -300
    • removedInput schema / properties / duration_seconds / minimum
      Removed value: -1
    • removedInput schema / properties / duration_seconds / type
      Removed value: -"number"
    • addedInput schema / properties / force_instrumental
      Added value: +{
      +  "description": "Only for models reporting supports_force_instrumental.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / instrumental / description
      Added value: +"Deprecated: use force_instrumental. Ignored when force_instrumental is set."
    • addedInput schema / properties / language_code
      Added value: +{
      +  "description": "ISO 639-1 language code on supported models.",
      +  "type": "string"
      +}
    • addedInput schema / properties / loop
      Added value: +{
      +  "description": "Create a seamless loop on models reporting supports_loop.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / lyrics / description
      Added value: +"Deprecated: use lyrics_prompt. Ignored when lyrics_prompt is set."
    • removedInput schema / properties / lyrics / maxLength
      Removed value: -4096
    • addedInput schema / properties / lyrics_optimizer
      Added value: +{
      +  "description": "Auto-generate lyrics. lyrics_prompt must be empty when enabled.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / lyrics_prompt
      Added value: +{
      +  "description": "Lyrics/text for lyric-capable models. Length limits come from model metadata.",
      +  "type": "string"
      +}
    • addedInput schema / properties / speed
      Added value: +{
      +  "description": "Model-specific speed multiplier. Check model min_speed/max_speed.",
      +  "maximum": 4,
      +  "minimum": 0.25,
      +  "type": "number"
      +}
    • addedInput schema / properties / voice
      Added value: +{
      +  "description": "Model-supported voice id/name.",
      +  "type": "string"
      +}
  2. First observedv0.2.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false), and the description adds substantial context beyond them: dual auth paths (x402 wallet with no account, or API key), the NSFW/uncensored policy where models permit, and the exact return payload { model, queue_id }. This is rich, non-redundant behavioral disclosure.

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

Conciseness4/5

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

Purpose is front-loaded and the sentence structure is dense and information-bearing. The enumerated model list is long but functional for model selection, so it earns its space, though it slightly inflates the text.

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

Completeness5/5

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

With no output schema, the description compensates by stating the return shape and the required follow-up (poll via venice_music_status), and it covers auth, model availability, and content policy. An agent has what it needs to invoke and then track the job.

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

Parameters3/5

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

Schema description coverage is 92%, so the schema already documents the 12 parameters thoroughly; the description's model list is the only meaningful cross-reference to the 'model' parameter. Baseline 3 is appropriate since the description does not add syntax or behavior detail beyond the schema.

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

Purpose5/5

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

States a specific verb+resource ('Queue music generation') and immediately differentiates the async queue flow from siblings by instructing the agent to poll with venice_music_status. The listed models and the returned shape make the tool's identity unambiguous.

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

Usage Guidelines4/5

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

The polling workflow ('poll with venice_music_status') gives clear operational context for using the result, and the auth options tell the agent how access is obtained. It does not, however, explicitly contrast this async tool against venice_music_complete (sync) for the same resource, which would be the natural when-to-use guidance.

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