Background Music Generator - Abracadabrax
Server Details
Royalty-free instrumental music for videos, podcasts, ads, games and streams, from a mood, a genre and a length.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
generate_song, render_song_widget, and prepare_background_music all touch the 'prepare/render a song' concept and could be confused at a glance, though the descriptions do clarify that generate spends credits, render only shows a widget, and prepare produces an instrumental plan. get_song_job and update_song_project are more clearly distinct. The overlap is manageable but not clean.
All names follow a snake_case verb_noun pattern (generate_song, get_song_job, prepare_background_music, render_song_widget, update_song_project), which is predictable. The nouns vary (song vs job vs widget vs project vs background_music), creating minor inconsistency, but conventions are not mixed.
Five tools is reasonable for a focused music-generation service covering prepare, update, generate, render, and check-status. It is on the lean side but each tool maps to a distinct step in the workflow.
render_song_widget explicitly requires a project_id from prepare_song_project, but that tool is absent from the set, creating a dangling dependency. There is also no list/delete or job-cancel surface, and the prepare-to-generate lifecycle for regular (non-background) songs is not fully represented.
Available Tools
5 toolsgenerate_songGenerate SongADestructiveInspect
Render the prepared song in the user's Abracadabrax account. Call this only after the user explicitly asked to generate, never on your own initiative: it spends the user's credits and sends the generation inputs to the configured model provider. Optional settings overwrite the saved project. Repeating with unchanged settings reuses a running or completed job, but a failed job can start a new paid attempt. Returns the job id and status; poll get_song_job for the audio. It needs the user's Abracadabrax account: the client asks the user to sign in when it is missing. Use this only to create a new song from a style description and (optional) lyrics. Do not use it for uploaded or existing audio: covers, remixes, extending or editing a track, stem separation, voice cloning or transcription.
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | Genre, mood, tempo, instruments and vocal style, e.g. 'upbeat indie pop, female vocals, 120 bpm, bright guitars'. | |
| title | No | Song title. | |
| lyrics | No | Full lyrics with section tags such as [Verse], [Chorus], [Bridge]. Write them with the user first; omit for an instrumental. | |
| model_id | No | Abracadabrax song model id: minimax-music (default, vocals + lyrics), acestep-create (fast, lyrics, chosen length), elevenlabs-music (studio, no lyrics), stable-audio (instrumental). | |
| model_name | No | ||
| project_id | Yes | ||
| duration_sec | No | Song length in seconds for models that support it (30, 60, 120, 180, 300). | |
| instrumental | No | True for a track without vocals. |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | No | |
| state | Yes | |
| balance | No | |
| message | Yes | |
| project | Yes | |
| dashboard_url | Yes | |
| credits_required | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructive/non-readonly/non-idempotent, but the description supplies the substance behind them: it spends the user's credits, transmits generation inputs to a third-party model provider, optional settings overwrite the saved project, a repeated call with unchanged settings reuses a job while a failed job can trigger a new paid attempt, and sign-in is required. That is far more than the annotations convey.
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?
Front-loaded with the action and the credit-spend warning, and nearly every sentence carries routing or side-effect information. It runs long and the final 'Use this only to create a new song from a style description' sentence partially restates the opening, which is the only real 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?
An output schema exists so return values needn't be detailed, yet the description still notes the job id/status return and the get_song_job polling path. Auth, cost, provider exposure, overwrite behavior, idempotency nuance, and scope exclusions are all covered for an 8-parameter mutating tool.
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 75% and the schema already documents style, lyrics, model_id, duration_sec and instrumental well. The description still adds non-obvious semantics for the optional parameters ('Optional settings overwrite the saved project') and frames style/lyrics as the creation inputs, though it says nothing about the undocumented model_name parameter.
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 and resource ('Render the prepared song') and then narrows it precisely: 'Use this only to create a new song from a style description and (optional) lyrics.' It is clearly distinguishable from get_song_job (polling), prepare_song_project, and update_song_project without opening any schema.
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?
Explicit when-to-use ('only after the user explicitly asked to generate, never on your own initiative'), explicit alternatives ('poll get_song_job for the audio'), and a long explicit exclusion list (covers, remixes, extending, editing, stem separation, voice cloning, transcription). Nothing about routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_song_jobCheck Song StatusBRead-onlyDestructiveIdempotentInspect
Return the status and saved output URLs of an existing song job owned by the linked account. A queued or running job older than ten minutes can be marked failed and its credits refunded once. This changes job and credit records; it never starts a generation.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | No | |
| state | Yes | |
| message | Yes | |
| dashboard_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description asserts 'This changes job and credit records,' while the annotations declare readOnlyHint=true. That is a direct contradiction: a read-only tool by definition does not modify its environment, yet this one can mutate job and credit state. Although the description's disclosure of the timeout/refund behavior is otherwise valuable, the conflict with the structured safety hint makes the tool's actual mutability profile unsafe to rely on. (destructiveHint=true is consistent with the disclosure, which deepens the readOnlyHint inconsistency.)
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 sentences, front-loaded with the purpose, then the edge-case behavior, then the negative scoping. Nothing is padded, though the middle sentence packs timeout, failure marking, and refund semantics into one dense clause that could be split for clarity.
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?
An output schema exists, so return values need not be re-explained, and the description covers the read purpose, the conditional side effect, and what it does not do. What is missing is the interaction between the mutation and the readOnlyHint annotation, and whether the timeout/refund is automatic or caller-induced.
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?
One parameter (job_id) with 0% schema description coverage, so the description must carry some load. It adds the constraint that the job must already exist and be owned by the linked account, but it never says where job_id comes from or its format, so an agent still has to guess whether a generation id, project id, or job handle is expected.
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 — 'Return the status and saved output URLs of an existing song job' — and scopes it to jobs 'owned by the linked account.' It also closes off the sibling ambiguity with 'it never starts a generation,' which separates it from generate_song without needing to open either schema.
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?
Usage is only implied: an agent can infer you call this to poll an existing job for status/output URLs. There is no explicit statement of when to prefer it (e.g., 'call after generate_song returns a job_id') and no named alternatives among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_background_musicPrepare Background MusicAInspect
Prepare an instrumental background track with Abracadabrax for a video, podcast, ad, game, meditation, presentation, livestream or study session, from a mood, a genre, a tempo and a length. Returns the settings and the credits required; nothing is generated and no credits are spent. No sign-in is needed to prepare. New tracks only: do not use it for uploaded or existing audio (covers, remixes, extensions, stem separation, voice cloning); for those, point the user to the Abracadabrax music studio.
| Name | Required | Description | Default |
|---|---|---|---|
| use | No | What the music is for; default youtube-video. | |
| mood | Yes | Mood and feel, e.g. calm and warm, upbeat and confident, dark and tense. | |
| genre | No | Genre or instruments, e.g. lo-fi hip hop, cinematic strings, corporate acoustic, ambient synth. | |
| tempo | No | Tempo, e.g. slow, 90 bpm, fast. | |
| title | No | Optional track title. | |
| model_id | No | Optional model id: stable-audio (default, instrumental) or elevenlabs-music (studio quality, more credits). | |
| duration_sec | No | Length in seconds: 30, 60, 120 (default) or 180. |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | No | |
| state | Yes | |
| balance | No | |
| message | Yes | |
| project | Yes | |
| dashboard_url | Yes | |
| credits_required | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare safety/state hints (readOnlyHint=false, idempotent=false, destructiveHint=false), and the description adds genuinely useful context beyond them: no generation occurs, no credits are spent, and no sign-in is required. This clarifies the 'prep' semantics that the false readOnlyHint alone leaves ambiguous. It stops short of describing whether any draft state is persisted, which would be the only remaining behavioral question.
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 sentences, front-loaded with purpose, then the no-cost/no-auth caveats, then the exclusion clause. It is slightly dense but each clause earns its place; nothing is redundant filler.
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?
With an output schema present, return values need not be explained, and the description correctly focuses on scope, cost, auth, and exclusions. Combined with 100% schema coverage, an agent has enough to call it correctly; only the persistence/draft behavior of 'prepare' is left unstated.
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 every parameter with examples and constraints. The description's 'from a mood, a genre, a tempo and a length' merely restates the parameter set without adding format or default detail beyond the schema, so 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 states a specific verb (Prepare) and resource (instrumental background track) and enumerates concrete use cases (video, podcast, ad, game, etc.), making the scope unmistakable. It also implicitly separates itself from sibling 'generate_song' by clarifying that this only prepares settings rather than generating output.
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?
It gives explicit when-not guidance: 'New tracks only: do not use it for uploaded or existing audio (covers, remixes, extensions, stem separation, voice cloning)' and routes those cases to the Abracadabrax music studio. The boundary between this and generation tools is clear, so an agent can decide correctly without guessing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_song_widgetShow Song ProjectADestructiveIdempotentInspect
Show a saved Abracadabrax song project and its existing job. A queued or running job older than ten minutes can be marked failed and its credits refunded once. This changes job and credit records; it never starts a generation. Requires a project_id returned by prepare_song_project.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | No | |
| state | Yes | |
| balance | No | |
| message | Yes | |
| project | Yes | |
| dashboard_url | Yes | |
| credits_required | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations only giving destructiveHint/idempotentHint flags, the description carries the real behavioral detail: it changes job and credit records, a stale (>10 min) queued/running job can be marked failed with a one-time credit refund, and it never starts a generation. That is exactly the 'what gets destroyed / under what conditions' context an agent needs, and it actively resolves the misleading 'Show' framing.
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?
Four short sentences, front-loaded with the purpose, each adding distinct information (side effect, boundary, prerequisite) with no filler. Slightly dense, but nothing is redundant.
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?
An output schema exists so return values need no explanation, and annotations cover the safety profile. The description adds the side-effect conditions and the prerequisite, leaving only minor gaps such as behavior when no stale job exists. Adequate for a single-parameter mutation tool.
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 0%, so the description must compensate. It does add real meaning by specifying the provenance of project_id ('returned by prepare_song_project'), which tells the agent how to obtain a valid value. It does not add format or constraint details, but provenance is the salient semantic here.
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 ('Show a saved Abracadabrax song project and its existing job') and explicitly draws a boundary against one sibling by saying it 'never starts a generation' (vs generate_song). It does not distinguish itself from get_song_job or update_song_project, so sibling differentiation is only partial. The verb 'Show' also undersells the mutation, but the purpose is still identifiable.
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?
It supplies the key prerequisite ('Requires a project_id returned by prepare_song_project') and one explicit exclusion ('it never starts a generation'), which routes the agent away from generate_song. It stops short of stating when to prefer this over get_song_job or update_song_project, so guidance is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_song_projectUpdate Song SettingsADestructiveIdempotentInspect
Overwrite the saved widget settings (title, style, lyrics, instrumental, length, model) to a prepared song before generating. Changing generation settings detaches the prior job from this project without deleting that job or its media. Intended for the widget UI; no credits are spent. Use this only to create a new song from a style description and (optional) lyrics. Do not use it for uploaded or existing audio: covers, remixes, extending or editing a track, stem separation, voice cloning or transcription.
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | Genre, mood, tempo, instruments and vocal style, e.g. 'upbeat indie pop, female vocals, 120 bpm, bright guitars'. | |
| title | No | Song title. | |
| lyrics | No | Full lyrics with section tags such as [Verse], [Chorus], [Bridge]. Write them with the user first; omit for an instrumental. | |
| model_id | No | Abracadabrax song model id: minimax-music (default, vocals + lyrics), acestep-create (fast, lyrics, chosen length), elevenlabs-music (studio, no lyrics), stable-audio (instrumental). | |
| model_name | No | ||
| project_id | Yes | ||
| duration_sec | No | Song length in seconds for models that support it (30, 60, 120, 180, 300). | |
| instrumental | No | True for a track without vocals. |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | No | |
| state | Yes | |
| balance | No | |
| message | Yes | |
| project | Yes | |
| dashboard_url | Yes | |
| credits_required | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the annotations by disclosing that changing generation settings detaches the prior job from the project without deleting the job or its media, and that no credits are spent. This gives real substance to destructiveHint=true and idempotentHint=true. It doesn't explicitly address the overwrite semantics for fields omitted from the call, which is the one remaining gap.
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?
Front-loaded with the verb and resource, then the behavioral consequence, then the use/do-not-use routing. No filler sentences and every clause carries information an agent needs.
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 an 8-parameter idempotent mutation with an output schema and full annotations, the description supplies the missing pieces: what gets detached, that no credits are spent, and the exclusion list. An agent could invoke this correctly from the definition alone.
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 75% and the schema already documents style, lyrics, model_id, duration_sec and instrumental well. The description's parenthetical field list (title, style, lyrics, instrumental, length, model) merely echoes parameter names and adds no format or constraint detail. 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?
States a specific verb and resource: overwrite the saved widget settings (title, style, lyrics, instrumental, length, model) on a prepared song before generating. That distinguishes it from generation and from prepare_song_project, though it never names the siblings directly. Clear and unambiguous overall.
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?
Explicit positive scope ("use this only to create a new song from a style description and optional lyrics") plus an enumerated negative list: covers, remixes, extending/editing, stem separation, voice cloning, transcription. The agent knows exactly which request routes here versus elsewhere.
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.
5 tool updates
- First observed
generate_song - First observed
get_song_job - First observed
prepare_background_music - First observed
render_song_widget - First observed
update_song_project
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs115 npm55 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1618 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.