Skip to main content
Glama
flozonn

Mirelo MCP Server

by flozonn

Mirelo MCP Server

A Model Context Protocol (MCP) server that wraps the Mirelo v2 HTTP API, exposing Mirelo's sound-effects generation, audio extension, inpainting, and account tooling to any MCP-compatible client (Claude Desktop, Kiro, and others).

The server speaks MCP over stdio and advertises 21 tools covering six generation families plus job polling, asset uploads, and account lookup.

Features

  • Six generation families, each available as a sync generate, async submit, and preflight tool:

    • Text → SFX

    • Video → SFX

    • Extend audio (audio-only)

    • Extend audio (with video)

    • Inpaint audio (audio-only)

    • Inpaint audio (with video)

  • Async job polling (mirelo_job_status) for long-running submissions.

  • Asset upload slots with optional direct upload of a local file to the presigned S3 URL.

  • Account/quota lookup (mirelo_get_account).

  • Eager config validation at startup, with a clear error and non-zero exit on invalid configuration.

  • Starts and advertises every tool even without an API key — credential-requiring calls return a structured missing-credential error instead of failing at startup.

Related MCP server: higgsfield-mcp

Requirements

  • Node.js >=20

Installation

npm install
npm run build

npm run build compiles TypeScript to dist/ and produces the executable entrypoint dist/index.js (with a #!/usr/bin/env node shebang, exposed as the mirelo-mcp-server bin).

Configuration

The server reads three environment variables at startup:

Variable

Required

Default

Notes

MIRELO_API_KEY

No

Mirelo API key (bearer token). If absent, the server still starts and advertises all tools; calls that need credentials return a missing-credential error.

MIRELO_BASE_URL

No

https://api.mirelo.ai

Must be an absolute http/https URL. Normalized (trailing slash stripped). An invalid value aborts startup.

MIRELO_TIMEOUT_MS

No

60000

Request timeout in ms. Must be an integer in [1000, 600000]. An out-of-range value aborts startup.

Invalid MIRELO_BASE_URL or MIRELO_TIMEOUT_MS values cause a ConfigError, printed to stderr with a non-zero exit code.

MCP client configuration

Add the server to your MCP client's config (e.g. mcp.json).

Recommended — run via npx (no clone or build; npx fetches the published package on demand):

{
  "mcpServers": {
    "mirelo": {
      "command": "npx",
      "args": ["-y", "mirelo-mcp-server"],
      "env": {
        "MIRELO_API_KEY": "your-mirelo-api-key",
        "MIRELO_BASE_URL": "https://api.mirelo.ai",
        "MIRELO_TIMEOUT_MS": "60000"
      }
    }
  }
}

Global install (installs the mirelo-mcp-server bin on PATH):

npm install -g mirelo-mcp-server
{
  "mcpServers": {
    "mirelo": {
      "command": "mirelo-mcp-server",
      "env": {
        "MIRELO_API_KEY": "your-mirelo-api-key"
      }
    }
  }
}

From source (clone + build, then point at the built entrypoint):

{
  "mcpServers": {
    "mirelo": {
      "command": "node",
      "args": ["/absolute/path/to/mirelo-mcp/dist/index.js"],
      "env": {
        "MIRELO_API_KEY": "your-mirelo-api-key"
      }
    }
  }
}

Tools

The server advertises 21 tools.

Generation families

Each family provides three tools:

  • _generate — synchronous generation; returns result_urls when the job completes inline.

  • _submit — asynchronous submission; returns a job_id / job_url to poll.

  • _preflight — validates inputs and reports what would be sent without calling the generation endpoint.

Family

Tools

Notes

Text → SFX

mirelo_text_to_sfx_generate, mirelo_text_to_sfx_submit, mirelo_text_to_sfx_preflight

Model versions v1.5 / v1.6.

Video → SFX

mirelo_video_to_sfx_generate, mirelo_video_to_sfx_submit, mirelo_video_to_sfx_preflight

Requires a video Input_Source and duration_ms.

Extend audio (audio-only)

mirelo_extend_audio_generate, mirelo_extend_audio_submit, mirelo_extend_audio_preflight

v1.6.

Extend audio (with video)

mirelo_extend_audio_with_video_generate, mirelo_extend_audio_with_video_submit, mirelo_extend_audio_with_video_preflight

v1.6.

Inpaint audio (audio-only)

mirelo_inpaint_audio_generate, mirelo_inpaint_audio_submit, mirelo_inpaint_audio_preflight

v1.6.

Inpaint audio (with video)

mirelo_inpaint_audio_with_video_generate, mirelo_inpaint_audio_with_video_submit, mirelo_inpaint_audio_with_video_preflight

v1.6.

Management tools

Tool

Purpose

mirelo_job_status

Poll an async job by job_id (GET /v2/jobs/{job_id}). Reports processingsucceeded / errored.

mirelo_create_asset_upload_slot

Create an asset upload slot (POST /v2/assets) and optionally upload a local file to the returned presigned S3 URL.

mirelo_get_account

Fetch account details (GET /v2/me): id, email, credits_available, overage_enabled.

Input sources

Tools that take audio or video accept an Input_Source in one of two shapes:

{ "type": "url", "audio_url": "https://..." }
{ "type": "asset", "asset_id": "asset_..." }

(Use video_url for video sources.) To reference an uploaded file, create an asset with mirelo_create_asset_upload_slot, then pass { "type": "asset", "asset_id": "..." }.

Example prompts to test

These are natural-language prompts you can give an MCP client (Claude Desktop, Kiro, etc.) once the server is connected and MIRELO_API_KEY is set. Each is phrased so the client maps it to the right tool and parameters. Durations are in milliseconds and stay within each tool's valid range.

Account and connectivity

  • "Check my Mirelo account — what's my email and how many credits do I have left?"

  • "Is overage enabled on my Mirelo account?"

Text → SFX

  • "Generate a 5-second sound effect of heavy rain on a tin roof." (sync generate, duration_ms: 5000)

  • "Create the sound of a sword being drawn from a metal scabbard, about 2 seconds long, and give me 3 variations." (duration_ms: 2000, num_samples: 3)

  • "Make a seamless 10-second looping campfire crackle." (sets loop: true, duration_ms: 10000)

  • "Generate a distant thunder rumble using model v1.5." (model_version: "v1.5")

  • "Estimate the cost and time to generate a 30-second forest ambience before actually making it." (preflight)

  • "Submit a long 45-second cinematic whoosh as a background job and give me the job id." (async submit)

Video → SFX

  • "Generate sound effects for this video and match them to its first 8 seconds: https://example.com/clip.mp4." (video url source, duration_ms: 8000)

  • "Add foley to my video asset asset_123 starting at the 2-second mark, and return the result as a muxed video." (start_offset_ms: 2000, output: "video")

  • "Preflight the cost of scoring a 12-second video clip." (preflight, duration_ms: 12000)

  • "Submit a video-to-SFX job for https://example.com/scene.mp4 covering 20 seconds and give me the job id to poll." (async submit)

Extend audio (audio-only)

  • "Take this audio https://example.com/loop.wav and extend it by 8 more seconds." (append_duration_ms: 8000)

  • "Extend my audio asset asset_456 by 15 seconds and guide the new part with the prompt 'building to a crescendo'." (append_duration_ms: 15000, prompt)

  • "Loop-extend this 3-second clip so it plays seamlessly, adding 5 seconds." (loop: true, append_duration_ms: 5000)

Extend audio (with video)

  • "I have a video at https://example.com/ad.mp4 and its audio at https://example.com/ad.wav — extend the audio by 6 seconds to match the video tail." (append_duration_ms: 6000)

  • "Extend the soundtrack of my video asset by 30 seconds starting 4 seconds in." (append_duration_ms: 30000, start_offset_ms: 4000)

Inpaint audio (audio-only)

  • "In this audio https://example.com/take.wav, replace the section from 2s to 5s with a clean guitar strum." (segment: { start_ms: 2000, end_ms: 5000 }, prompt)

  • "Fix my audio asset asset_789 by regenerating the 10000-14000ms region." (segment: { start_ms: 10000, end_ms: 14000 })

  • "Preflight replacing a 3-second segment (from 6s to 9s) of a clip." (preflight)

Inpaint audio (with video)

  • "For my video asset (video asset_v1, audio asset_a1), replace the audio between 3s and 7s to fix a glitch." (segment: { start_ms: 3000, end_ms: 7000 })

Assets

  • "Create an upload slot for a WAV file and upload /Users/me/sfx/input.wav to it." (content_type: "audio/wav", file_path)

  • "Create an asset upload slot for content type video/mp4 and give me the presigned URL." (slot only, no local upload)

Async job polling

  • "Check the status of Mirelo job job_abc123." (mirelo_job_status)

  • "Poll job job_abc123 and, once it's succeeded, give me the result URLs."

Tip: the _preflight tools never generate audio or spend credits, so they're the safest way to smoke-test connectivity and your API key.

Async job flow

  1. Call a family's _submit tool to get a job_id.

  2. Poll mirelo_job_status with that job_id.

  3. When the status is succeeded, read the result_urls from the response.

Synchronous _generate tools skip this loop and return result_urls directly when the job finishes inline.

Architecture

  • Transport: stdio via the @modelcontextprotocol/sdk server. The SDK owns the handshake, version negotiation, and request dispatch.

  • Startup sequence: load and validate config → read the API key once → build a single configured HTTP client → bind each registry tool's handler → register ListTools + CallTool and connect the stdio transport.

  • The entrypoint (src/index.ts) exports createServer, connectStdio, and main, and is import-safe (importing it has no side effects) so it can be exercised by tests without spawning stdio.

  • Tool definitions live in src/tools/* and are aggregated by src/registry.ts, which enforces the 21-tool invariant at load time.

Development

npm test          # run the test suite once (vitest)
npm run test:watch # watch mode
npm run build     # type-check and emit dist/

The suite includes property-based tests using fast-check alongside unit and integration tests.

License

MIT

Available Tools

21 tools
mirelo_create_asset_upload_slotA

Create an asset upload slot (POST /v2/assets) for a given content_type, returning an asset_id and a presigned upload_url. When an optional local file_path is provided, the file's bytes are uploaded to that URL so the asset_id is immediately usable in generation and editing operations.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathNoOptional path to a local file whose bytes are uploaded to the returned presigned URL. When provided, the path must resolve to a readable file.
content_typeYesThe MIME content type of the file to upload, e.g. "audio/wav". Required, non-empty.

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the core behavior (slot creation, file upload) and mentions that file_path must resolve to a readable file. However, it does not cover failure modes, rate limits, or what happens on invalid inputs.

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

Conciseness5/5

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

Two concise sentences clearly front-load the core action and optional behavior. No filler or redundant information.

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

Completeness4/5

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

The description covers the tool's purpose, required parameter, optional behavior, and return value (asset_id and upload_url). No output schema exists, but the return is explicitly stated. For a simple tool with two parameters, this is complete enough.

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

Parameters4/5

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

Schema coverage is 100% (both parameters described in schema). The description adds useful context: file_path is optional and triggers immediate upload, and it must resolve to a readable file. This adds validation meaning beyond the schema's 'Optional path' description.

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

Purpose5/5

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

The description clearly states the tool creates an upload slot via POST /v2/assets, returns an asset_id and presigned upload_url, and optionally uploads a local file. It specifies the required content_type and optional file_path, distinguishing it from sibling tools focused on audio processing.

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

Usage Guidelines4/5

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

The description explains when to use the tool (to create an upload slot for a given content_type) and the optional file upload behavior. No explicit exclusions or alternatives are needed since no sibling tool serves the same purpose.

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

mirelo_extend_audio_generateA

Extend Audio (audio-only), synchronous: append newly generated audio to an existing audio input and return the result URL(s).

ParametersJSON Schema
NameRequiredDescriptionDefault
loopNoWhether to loop the appended audio. Defaults to false.
audioYesAudio Input_Source: { "type": "url", "audio_url": <public url> } or { "type": "asset", "asset_id": <asset id> }.
promptNoOptional text prompt conditioning the appended audio (1-5000 characters when provided).
num_samplesNoNumber of samples to generate (integer >= 1). Defaults to 1.
model_versionNoModel version. Extend_Audio supports only "v1.6" (the default).
append_duration_msYesMilliseconds of new audio to append. Required. When loop is false: 1000-30000. When loop is true: at least 2000 (total output duration must be 5000-60000).

TDQS

A3.7/5.0
Behavior3/5

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

The description states 'synchronous' and 'return the result URL(s)', but no annotations exist to provide safety info. It does not disclose side effects, authentication needs, or rate limits. The transparency is adequate but relies on the schema for details.

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

Conciseness5/5

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

The description consists of a single, front-loaded sentence that conveys all key information. There is no unnecessary text, making it highly concise and structured.

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

Completeness3/5

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

For a tool with 6 parameters and no output schema, the description is minimal. It omits details about the return format beyond 'URL(s)' and does not mention that a preflight step may be needed. The schema fills gaps, but the description alone is only moderately complete.

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

Parameters3/5

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

Schema description coverage is 100% for all 6 parameters. The description adds no additional meaning beyond what is documented in the schema, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Extend Audio' and resource 'existing audio input', explicitly noting it is audio-only and synchronous. It distinguishes from sibling tools like 'mirelo_extend_audio_with_video_generate' by specifying 'audio-only'.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus siblings (e.g., preflight or submit variants). The synchronous nature is mentioned, but there is no mention of when to choose this over other tools or any prerequisites.

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

mirelo_extend_audio_preflightA

Extend Audio (audio-only) preflight: estimate the credit cost and processing time for an extend-audio request.

ParametersJSON Schema
NameRequiredDescriptionDefault
duration_msNoDuration in milliseconds used to estimate cost/time. Defaults to 60000.
num_samplesNoNumber of samples used to estimate cost/time (integer >= 1). Defaults to 1.
model_versionNoModel version. Extend_Audio supports only "v1.6" (the default).

TDQS

A3.9/5.0
Behavior3/5

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

No annotations; description lacks details on side effects, idempotency, or error behavior beyond estimation.

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

Conciseness5/5

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

Single sentence, front-loaded purpose, no filler.

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

Completeness3/5

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

Missing output description (no output schema), but parameters are fully documented.

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

Parameters3/5

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

Schema coverage is 100%, so description adds no extra meaning beyond parameter names and defaults.

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

Purpose5/5

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

The description clearly states the tool estimates credit cost and processing time for an extend-audio request, distinguishing it from generation and submission siblings.

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?

Implied usage as a preflight before generation, but no explicit alternative 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.

mirelo_extend_audio_submitA

Extend Audio (audio-only), asynchronous submission: submit an extend-audio job and return its job_id and job_url for later polling.

ParametersJSON Schema
NameRequiredDescriptionDefault
loopNoWhether to loop the appended audio. Defaults to false.
audioYesAudio Input_Source: { "type": "url", "audio_url": <public url> } or { "type": "asset", "asset_id": <asset id> }.
promptNoOptional text prompt conditioning the appended audio (1-5000 characters when provided).
num_samplesNoNumber of samples to generate (integer >= 1). Defaults to 1.
model_versionNoModel version. Extend_Audio supports only "v1.6" (the default).
append_duration_msYesMilliseconds of new audio to append. Required. When loop is false: 1000-30000. When loop is true: at least 2000 (total output duration must be 5000-60000).

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. While it states the tool returns a job_id and job_url, it does not disclose potential rate limits, authentication requirements, error behavior, or other important side effects of submitting an async job.

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

Conciseness5/5

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

The description is a single, clear sentence with no superfluous words. It front-loads the primary purpose and key output information.

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

Completeness2/5

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

Given the absence of an output schema and annotations, the description is too sparse. It does not elaborate on return format details beyond job_id and job_url, nor does it cover error cases or success indicators, leaving the agent with incomplete context for robust usage.

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

Parameters3/5

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

Schema coverage is 100%, so all parameters have descriptions in the schema. The tool description adds no additional parameter details beyond stating the action, meeting the baseline but not exceeding it.

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

Purpose5/5

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

The description clearly states the tool submits an extend-audio job asynchronously and returns job_id and job_url for polling. It specifies 'audio-only', distinguishing it from the with-video siblings.

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

Usage Guidelines4/5

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

The description explicitly mentions 'asynchronous submission' and 'for later polling', providing clear context for when to use this tool over synchronous alternatives like mirelo_extend_audio_generate. The sibling tool names further help differentiate usage.

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

mirelo_extend_audio_with_video_generateA

Extend an existing audio input with newly generated audio conditioned by a video (synchronous). Returns result URLs. Requires audio and video Input_Sources and append_duration_ms (1000-57000 ms). Model v1.6 only.

ParametersJSON Schema
NameRequiredDescriptionDefault
audioYesRequired. The base audio Input_Source to extend.
videoYesRequired. The conditioning video Input_Source.
promptNoOptional. Text prompt included only when provided.
num_samplesNoOptional. Integer >= 1; defaults to 1.
model_versionNoModel version. Only "v1.6" is supported; omitted/empty resolves to "v1.6".
start_offset_msNoOptional. Non-negative integer; defaults to 0.
append_duration_msYesRequired. Milliseconds of new audio to append; integer in [1000, 57000].

TDQS

A3.8/5.0
Behavior3/5

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

Mentions synchronous operation and return of result URLs, adding some behavioral context. However, lacks details on job creation, side effects, or whether it's blocking. Adequate given no annotations.

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

Conciseness5/5

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

Extremely concise with three sentences covering purpose, output, and requirements. Every sentence adds value; no redundancy.

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

Completeness4/5

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

For a tool with 7 params, nested objects, and no output schema, the description covers the essential purpose, required inputs, constraints, and synchronous nature. Could mention output format but overall sufficient.

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

Parameters3/5

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

Schema coverage is 100%, descriptions already cover parameters. The description reiterates key constraints (duration range and model version) but does not add significant new meaning 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?

Clearly states the verb 'Extend' and the resource 'audio input with video conditioning'. Differentiates from siblings like mirelo_extend_audio_generate by specifying video conditioning and synchronous behavior.

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

Usage Guidelines3/5

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

Implies usage for extending audio with video conditioning, but does not explicitly state when to use this vs. alternatives (e.g., mirelo_extend_audio_generate). No when-not guidance provided.

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

mirelo_extend_audio_with_video_preflightA

Estimate the credit cost and processing time for an Extend_Audio with-video generation before committing. Requires append_duration_ms (1000-57000 ms); num_samples defaults to 1. Model v1.6 only.

ParametersJSON Schema
NameRequiredDescriptionDefault
num_samplesNoOptional. Integer >= 1; defaults to 1.
model_versionNoModel version. Only "v1.6" is supported; omitted/empty resolves to "v1.6".
append_duration_msYesRequired. Milliseconds of new audio to append; integer in [1000, 57000].

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description clearly indicates this is a read-only estimation tool with no destructive behavior, but could elaborate on side effects or authorization needs.

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

Conciseness5/5

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

Two sentences efficiently convey purpose, requirements, and constraints without waste.

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

Completeness4/5

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

Adequate for a preflight tool with 3 params and no output schema; describes input constraints and model, but missing output format details.

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

Parameters4/5

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

Schema coverage is 100%. Description adds value by stating defaults (num_samples=1), allowed range for append_duration_ms, and model restriction (v1.6 only), which go beyond schema.

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

Purpose5/5

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

The description clearly states the tool estimates credit cost and processing time for Extend_Audio with-video generation before committing, distinguishing it from the generate and submit siblings.

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

Usage Guidelines4/5

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

The description specifies required parameter range and defaults, and implies usage before committing, but does not explicitly exclude use cases or differentiate from sibling mirelo_extend_audio_preflight without video.

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

mirelo_extend_audio_with_video_submitA

Submit an asynchronous Extend_Audio with-video job (append audio conditioned by a video). Returns a job_id and job_url to poll with mirelo_job_status. Requires audio and video Input_Sources and append_duration_ms (1000-57000 ms). Model v1.6 only.

ParametersJSON Schema
NameRequiredDescriptionDefault
audioYesRequired. The base audio Input_Source to extend.
videoYesRequired. The conditioning video Input_Source.
promptNoOptional. Text prompt included only when provided.
num_samplesNoOptional. Integer >= 1; defaults to 1.
model_versionNoModel version. Only "v1.6" is supported; omitted/empty resolves to "v1.6".
start_offset_msNoOptional. Non-negative integer; defaults to 0.
append_duration_msYesRequired. Milliseconds of new audio to append; integer in [1000, 57000].

TDQS

A4/5.0
Behavior3/5

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

No annotations are present, so the description must disclose behavioral traits. It mentions asynchronous nature and polling, but lacks details on authorization, rate limits, or failure behavior. While not misleading, it could provide more transparency.

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

Conciseness5/5

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

The description is extremely concise with two sentences, front-loads the core action and return, and avoids any unnecessary words.

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

Completeness4/5

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

For a submit tool with nested objects and no output schema, the description covers the asynchronous aspect, required inputs, and model version. It could briefly mention the typical workflow (e.g., after preflight) to enhance completeness.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds little beyond reinforcing constraints like append_duration_ms range and model v1.6. It does not delve into parameter semantics beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states it submits an asynchronous job to extend audio conditioned by a video. It specifies the return values (job_id, job_url) and distinguishes itself from siblings like mirelo_extend_audio_submit by mentioning video conditioning.

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

Usage Guidelines4/5

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

The description implies usage for submitting an extend audio with video job and directs polling via mirelo_job_status, providing clear context. However, it does not explicitly contrast with preflight or generate siblings, leaving some inference required.

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

mirelo_get_accountA

Retrieve the authenticated Mirelo account identity and available credit balance: id, email, credits_available, and overage_enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description bears full burden. It clearly states the tool is a read operation (no side effects) and lists returned fields. It does not detail authentication requirements or error behavior, but is transparent within its scope.

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

Conciseness5/5

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

A single, concise sentence front-loads the purpose and lists key return fields with no wasted words.

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

Completeness4/5

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

For a zero-parameter tool with no output schema, the description is fairly complete. It covers purpose, return fields, and implies authentication context. Missing details like potential errors or rate limits are minor given simplicity.

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

Parameters4/5

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

Schema coverage is 100% (no parameters). The description adds value by explaining the return fields (id, email, credits_available, overage_enabled) beyond the schema's description.

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

Purpose5/5

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

The description uses a specific verb ('Retrieve') and resource ('Mirelo account identity and available credit balance'), listing exact fields (id, email, credits_available, overage_enabled). It clearly distinguishes from sibling tools, which all involve audio generation or job status.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives. Since it's the only account retrieval tool, context implies its use, but no prerequisites or exclusions are mentioned.

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

mirelo_inpaint_audio_generateB

Synchronously replace a bounded segment of an audio clip with newly generated audio (Inpaint_Audio, audio-only). Returns the resulting audio URL(s).

ParametersJSON Schema
NameRequiredDescriptionDefault
audioYesThe audio Input_Source to inpaint: either { type: "url", audio_url } or { type: "asset", asset_id }.
promptNoOptional text prompt guiding the replacement audio.
segmentYesThe bounded audio span to replace.
num_samplesNoNumber of samples to generate; integer >= 1. Defaults to 1.
model_versionNoModel version. Inpaint_Audio is v1.6-only; defaults to "v1.6".

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It states synchronous behavior and return of URL(s), but omits side effects (e.g., credit consumption, original asset modification), failure modes, or idempotency. Minimal 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.

Conciseness5/5

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

Single sentence, front-loaded with core purpose and modality. Every word earns its place. No filler or repetition.

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

Completeness2/5

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

Given no annotations and no output schema, the description should cover more context (error handling, permission needs, return format details). It only states input/output basics, leaving gaps for a tool with nested objects and multiple parameters.

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

Parameters3/5

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

Schema coverage is 100%; all parameters are documented. The description adds no extra meaning beyond the schema's property descriptions. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's action: 'Synchronously replace a bounded segment of an audio clip with newly generated audio'. It explicitly names the operation (Inpaint_Audio, audio-only) and distinguishes from siblings like preflight/submit or with-video variants.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives. The description mentions 'synchronously', hinting at its blocking nature, but doesn't contrast with asynchronous submit versions or explain when to prefer generate vs preflight.

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

mirelo_inpaint_audio_preflightA

Estimate the credit cost and processing time of an Inpaint_Audio (audio-only) request before generating.

ParametersJSON Schema
NameRequiredDescriptionDefault
segmentYesThe bounded audio span to replace.
num_samplesNoNumber of samples to generate; integer >= 1. Defaults to 1.
model_versionNoModel version. Inpaint_Audio is v1.6-only; defaults to "v1.6".

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It identifies the tool as an estimation-only preflight, implying no side effects. However, it does not explicitly state it is read-only, non-destructive, or what authentication is required.

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

Conciseness5/5

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

The description is a single sentence, front-loaded with the core purpose. Every part earns its place with no wasted words.

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

Completeness2/5

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

The description lacks details about the output format or structure. Since there is no output schema, the description should explain what the estimated costs and processing time look like, which is missing.

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

Parameters3/5

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

The input schema already describes all three parameters with detailed descriptions (100% coverage). The description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'estimate' and the resource 'credit cost and processing time of an Inpaint_Audio request'. It distinguishes from siblings like generate and submit by specifying 'before generating', making the tool's role unique.

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

Usage Guidelines4/5

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

The description implies usage before generating ('before generating'), which provides clear context. However, it does not explicitly state when not to use it or mention alternatives, though sibling names help differentiate.

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

mirelo_inpaint_audio_submitA

Submit an asynchronous Inpaint_Audio (audio-only) job that replaces a bounded audio segment, returning a job identifier to poll with mirelo_job_status.

ParametersJSON Schema
NameRequiredDescriptionDefault
audioYesThe audio Input_Source to inpaint: either { type: "url", audio_url } or { type: "asset", asset_id }.
promptNoOptional text prompt guiding the replacement audio.
segmentYesThe bounded audio span to replace.
num_samplesNoNumber of samples to generate; integer >= 1. Defaults to 1.
model_versionNoModel version. Inpaint_Audio is v1.6-only; defaults to "v1.6".

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must cover behavioral traits. It mentions async submission and replacement of an audio segment, but lacks details on destructiveness, authentication, rate limits, or error handling.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the action and outcome. Every word is necessary, with no redundancy.

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

Completeness4/5

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

Given the tool's complexity (5 parameters, nested objects, no output schema, no annotations), the description adequately covers its async nature and polling mechanism. However, it could mention the job identifier format or potential errors.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents each parameter. The description adds no new parameter-specific information, meeting the baseline.

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

Purpose5/5

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

The description explicitly states the tool submits an asynchronous Inpaint_Audio job that replaces a bounded audio segment, and returns a job identifier to poll. It specifies 'audio-only' to distinguish from video-related sibling tools, making the purpose very clear.

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

Usage Guidelines4/5

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

The description implies polling with mirelo_job_status but does not explicitly state when to use submit versus preflight or generate. Given the sibling names, the context is fairly clear, but explicit guidance would improve it.

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

mirelo_inpaint_audio_with_video_generateA

Synchronously replace a bounded segment of an audio clip with newly generated audio conditioned by a video (Inpaint_Audio, with-video). Requires audio and video Input_Sources and a segment. Returns the resulting audio URL(s). Model v1.6 only.

ParametersJSON Schema
NameRequiredDescriptionDefault
audioYesThe audio Input_Source to inpaint: either { type: "url", audio_url } or { type: "asset", asset_id }.
videoYesThe conditioning video Input_Source: either { type: "url", video_url } or { type: "asset", asset_id }.
promptNoOptional text prompt guiding the replacement audio.
segmentYesThe bounded audio span to replace.
num_samplesNoNumber of samples to generate; integer >= 1. Defaults to 1.
model_versionNoModel version. Inpaint_Audio is v1.6-only; defaults to "v1.6".

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description bears full burden. It discloses synchronous operation and model restriction but omits side effects (e.g., original audio unchanged), required permissions, rate limits, or failure modes. Adequate but not thorough.

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

Conciseness5/5

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

Two concise sentences front-load the action and key resources. Every clause adds value: synchronous, bounded segment, conditional generation, model version, and output type. No waste.

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

Completeness4/5

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

Given 6 parameters with nested objects and no output schema, the description covers the core operation but misses details like return format (plural URLs from num_samples?), constraints (segment length validated in schema), and default values. Nearly complete but could expand slightly.

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

Parameters3/5

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

Schema coverage is 100% with detailed descriptions for all 6 parameters. The description only summarizes required inputs ('audio and video Input_Sources and a segment'), adding minimal extra meaning beyond the schema's own documentation.

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

Purpose5/5

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

The description clearly states the tool's function: synchronously replacing a segment of audio conditioned by a video. It specifies inputs (audio, video, segment), output (audio URL), and model version (v1.6 only), distinguishing it from siblings like mirelo_inpaint_audio_generate.

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

Usage Guidelines4/5

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

The description implies when to use this tool (when video conditioning is needed) vs the non-video variant present in siblings. However, it lacks explicit when-not or alternative guidance, such as when preflight or submit tools are more appropriate.

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

mirelo_inpaint_audio_with_video_preflightA

Estimate the credit cost and processing time of an Inpaint_Audio (with-video) request before generating. Requires a segment; num_samples defaults to 1. Model v1.6 only.

ParametersJSON Schema
NameRequiredDescriptionDefault
segmentYesThe bounded audio span to replace.
num_samplesNoNumber of samples to generate; integer >= 1. Defaults to 1.
model_versionNoModel version. Inpaint_Audio is v1.6-only; defaults to "v1.6".

TDQS

A3.9/5.0
Behavior3/5

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

No annotations present, so description carries full burden. Discloses estimation behavior and constraints (segment, num_samples, v1.6) but does not explicitly confirm it's read-only or non-destructive. Lacks details on what happens (e.g., no resource creation).

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

Conciseness5/5

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

Two focused sentences, front-loaded with purpose. No redundancy, every word adds value. Extremely concise for the information conveyed.

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

Completeness3/5

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

Lacks explanation of output (credit cost, processing time) despite no output schema. Adequate for a preflight tool but missing critical return-value context. Model version and defaults are covered.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3. Description reinforces schema (requires segment, defaults, v1.6) but adds no new semantic insight beyond the schema descriptions. No additional context for nested segment properties.

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

Purpose5/5

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

Description clearly states the tool estimates credit cost and processing time for Inpaint_Audio with-video, distinguishing it from generate/submit siblings. Uses specific verb 'estimate' and resource 'credit cost and processing time'.

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

Usage Guidelines4/5

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

Explicitly states it's a preflight step requiring a segment, with defaults and model version constraint. Implies usage before generation but does not explicitly list alternative (e.g., generate) or exclusion cases.

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

mirelo_inpaint_audio_with_video_submitA

Submit an asynchronous Inpaint_Audio (with-video) job that replaces a bounded audio segment conditioned by a video, returning a job identifier to poll with mirelo_job_status. Requires audio and video Input_Sources and a segment. Model v1.6 only.

ParametersJSON Schema
NameRequiredDescriptionDefault
audioYesThe audio Input_Source to inpaint: either { type: "url", audio_url } or { type: "asset", asset_id }.
videoYesThe conditioning video Input_Source: either { type: "url", video_url } or { type: "asset", asset_id }.
promptNoOptional text prompt guiding the replacement audio.
segmentYesThe bounded audio span to replace.
num_samplesNoNumber of samples to generate; integer >= 1. Defaults to 1.
model_versionNoModel version. Inpaint_Audio is v1.6-only; defaults to "v1.6".

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses async nature, model version constraint, and required inputs. However, it does not discuss job lifecycle details (e.g., typical duration, cancellation, failure modes) or prerequisites (e.g., asset uploads). These gaps limit transparency despite adequate core disclosure.

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

Conciseness5/5

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

Two sentences, no redundancy, critical information front-loaded: purpose, async behavior, required inputs, model version. Every word contributes value.

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

Completeness4/5

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

For a submit tool with no output schema, the description explains the return value (job identifier) and how to poll it. It covers the main use case but could be slightly more complete by mentioning optional parameters (prompt, num_samples) in context, though they are documented in schema.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for each parameter. The description adds a high-level summary ('requires audio, video, segment') and model version constraint, but does not provide meaning beyond what's in the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states the verb 'Submit', the resource 'Inpaint_Audio (with-video) job', and the action 'replaces a bounded audio segment conditioned by a video'. It distinguishes from siblings by noting it's asynchronous and returns a job identifier, contrasting with synchronous generate variants.

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?

Describes when to use (asynchronous job for audio inpainting with video conditioning) and explicitly notes model restriction (v1.6 only) and polling requirement via mirelo_job_status. Does not explicitly exclude alternatives or compare to preflight/generate siblings, but context is clear enough.

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

mirelo_job_statusA

Poll the status of an asynchronous Mirelo generation job by its job_id via the shared GET /v2/jobs/{job_id} endpoint. Surfaces processing progress, succeeded result URLs, or the failure reason.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesIdentifier of the asynchronous job to poll (from a submit-mode response).

TDQS

A4.2/5.0
Behavior3/5

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

Describes polling behavior and outputs but does not mention idempotency, rate limits, or auth requirements. Since annotations are absent, more detail would help.

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

Conciseness5/5

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

Two succinct sentences conveying endpoint, action, and outputs. No excess information.

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

Completeness4/5

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

Covers key outputs without schema. Could mention polling intervals or multiple calls needed, but sufficient for a simple poll tool.

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

Parameters4/5

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

Parameter description adds context beyond schema (origin from submit-mode response). High schema coverage reduces burden, but description still adds value.

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

Purpose5/5

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

Clearly states the tool polls job status, specifies the endpoint and outputs (progress, success URLs, failure reason). Distinct from sibling submit/preflight/generate tools.

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?

Implies usage after job submission by referencing job_id from submit-mode response. No explicit when-not-to-use, but context is clear given sibling separation.

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

mirelo_text_to_sfx_generateB

Generate sound effects synchronously from a text prompt and return the result URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
loopNoWhether the output should loop seamlessly. Default false.
promptYesText prompt to generate audio from (1-5000 characters).
duration_msNoOutput duration in milliseconds. Integer. When loop is false: 1000-60000; when loop is true: 3000-600000. Default 60000.
num_samplesNoNumber of samples to generate. Integer >= 1. Default 1.
model_versionNoMirelo model version. One of "v1.5" or "v1.6". Omitted or empty resolves to "v1.6".

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It mentions synchronous operation and URL return but omits important traits like error handling, rate limits, idempotency, or required permissions.

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

Conciseness5/5

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

The description is a single, well-structured sentence that immediately states the action (generate), resource (sound effects from text prompt), and key traits (synchronous, returns URLs). No wasted words.

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

Completeness2/5

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

Despite 5 parameters and no output schema, the description provides no details on return format (e.g., list of URLs, ordering), duration enforcement, or potential delays. The agent lacks sufficient context for reliable invocation.

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

Parameters3/5

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

Schema coverage is 100%, so all parameters are documented in the input schema. The description adds no extra semantic context beyond what is already provided, meeting the baseline for high coverage.

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

Purpose5/5

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

The description clearly states the tool generates sound effects synchronously from a text prompt and returns result URLs. It distinguishes itself from sibling tools like preflight and submit by specifying synchronous generation.

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

Usage Guidelines3/5

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

The description implies synchronous use but provides no explicit guidance on when to use this tool versus the preflight/submit workflow or other generation tools. The agent must infer the appropriate choice.

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

mirelo_text_to_sfx_preflightA

Estimate the credit cost and processing time for a Text-to-SFX generation without generating audio.

ParametersJSON Schema
NameRequiredDescriptionDefault
duration_msNoOutput duration in milliseconds. Integer 1000-60000. Default 60000.
num_samplesNoNumber of samples. Integer >= 1. Default 1.
model_versionNoMirelo model version. One of "v1.5" or "v1.6". Omitted or empty resolves to "v1.6".

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It clearly states the tool does not generate audio, which is a key behavioral trait. However, it does not disclose other behaviors like idempotency or quota effects, but for a preflight tool, the main behavior (estimation without side effects) is adequately communicated.

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

Conciseness5/5

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

The description is a single concise sentence that front-loads the key action and result. No unnecessary words.

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

Completeness2/5

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

Given no output schema, the description should at least hint at the return value (e.g., credit cost, processing time). It only says 'estimate' without specifying what the estimate includes. This is a notable gap for a preflight tool.

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

Parameters3/5

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

The input schema covers 100% of parameters with descriptions, so the description does not need to add much. It does not provide additional context beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Estimate the credit cost and processing time for a Text-to-SFX generation without generating audio'. The verb 'estimate' and resource 'Text-to-SFX' are specific, and the phrase 'without generating audio' distinguishes it from the generation sibling tools like mirelo_text_to_sfx_generate.

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

Usage Guidelines3/5

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

The description implies usage for cost estimation before generation, but it does not explicitly state when to use or not use this tool, nor does it mention alternatives. The name and sibling context provide some guidance, but the description lacks explicit usage directives.

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

mirelo_text_to_sfx_submitA

Submit an asynchronous Text-to-SFX generation job and return the job id and job URL for later polling.

ParametersJSON Schema
NameRequiredDescriptionDefault
loopNoWhether the output should loop seamlessly. Default false.
promptYesText prompt to generate audio from (1-5000 characters).
duration_msNoOutput duration in milliseconds. Integer. When loop is false: 1000-60000; when loop is true: 3000-600000. Default 60000.
num_samplesNoNumber of samples to generate. Integer >= 1. Default 1.
model_versionNoMirelo model version. One of "v1.5" or "v1.6". Omitted or empty resolves to "v1.6".

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It mentions 'asynchronous' and 'for later polling,' which indicates non-blocking behavior and the need to poll later. However, it does not disclose side effects, prerequisites (e.g., preflight), error handling, or rate limits.

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

Conciseness5/5

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

The description is a single sentence with 15 words, front-loaded with the main action. Every word is necessary and adds value. No redundancy.

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

Completeness3/5

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

The tool has 5 parameters and no output schema. The description covers the core functionality and return values (job id and URL) but omits details like default behaviors, constraints on parameters (e.g., duration limits), and the relationship to polling tools like mirelo_job_status.

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

Parameters3/5

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

Schema coverage is 100%, so each parameter is already documented. The description adds no additional meaning beyond the schema. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action (Submit), the resource (Text-to-SFX generation job), and the return values (job id and job URL for polling). It distinguishes from siblings like mirelo_text_to_sfx_generate by indicating it is asynchronous and returns a job handle.

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

Usage Guidelines3/5

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

The description implies asynchronous usage and polling but does not explicitly state when to use this tool over alternatives (e.g., preflight, generate) or when not to use it. No exclusions or comparisons with siblings are provided.

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

mirelo_video_to_sfx_generateC

Generate a synced sound track for a supplied video synchronously and return the result URLs. Requires a video Input_Source and duration_ms.

ParametersJSON Schema
NameRequiredDescriptionDefault
videoYesRequired video Input_Source: { "type": "url", "video_url": <public url> } or { "type": "asset", "asset_id": <asset id> }.
outputNoOptional output kind: "audio" or "video". Defaults to "audio".
duration_msYesRequired. Integer milliseconds in [1000, 600000].
num_samplesNoOptional integer >= 1. Defaults to 1.
model_versionNoModel version: v1.5 or v1.6. Defaults to v1.6 when omitted.
start_offset_msNoOptional non-negative integer offset. Defaults to 0.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must cover behavioral traits. It states synchronous execution and result URLs, but omits side effects (e.g., asset creation), auth requirements, rate limits, or destruction of existing data. Minimal transparency beyond the core action.

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

Conciseness5/5

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

Two sentences, front-loaded with the primary action and output. No redundant or filler content. Every word adds value within its scope.

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

Completeness2/5

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

Despite 6 parameters and no output schema, the description is too brief. It fails to explain the workflow (e.g., needing a video URL or asset), output structure, or defaults. Inadequate for a tool of this complexity.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for each parameter. The tool description only repeats two required params without adding semantic meaning or usage hints beyond the schema. Baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states it generates a synced soundtrack for a supplied video synchronously and returns result URLs. It implies the verb (generate) and resource (video to SFX), but does not explicitly differentiate from sibling tools like preflight/submit beyond the mention of synchronous execution.

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

Usage Guidelines2/5

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

Only mentions required parameters (video Input_Source and duration_ms). Provides no guidance on when to use this synchronous generate tool versus the async preflight/submit siblings, nor any context about limitations or preconditions (e.g., video format, size).

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

mirelo_video_to_sfx_preflightA

Estimate the credit cost and processing time for a Video_To_SFX generation without generating. Uses duration_ms and num_samples.

ParametersJSON Schema
NameRequiredDescriptionDefault
duration_msNoOptional integer milliseconds in [1000, 600000]. Defaults to 60000.
num_samplesNoOptional integer >= 1. Defaults to 1.
model_versionNoModel version: v1.5 or v1.6. Defaults to v1.6 when omitted.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It correctly indicates the tool is a read-only estimation (no generation), but doesn't disclose additional behavioral details like rate limits, authentication needs, or state impact beyond the basic estimation.

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

Conciseness5/5

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

Single, front-loaded sentence with no filler. Every word serves a purpose: states action, scope, and key parameters.

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

Completeness4/5

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

For a simple preflight tool with 3 well-described parameters, the description is sufficient. However, since there is no output schema, mentioning what the estimation returns (e.g., estimated credits, time) would improve completeness.

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

Parameters3/5

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

Schema coverage is 100% with parameter descriptions. The description adds minimal value by mentioning that duration_ms and num_samples are used, but does not provide deeper semantics beyond what the schema already offers.

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

Purpose5/5

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

The description clearly states the tool estimates credit cost and processing time for Video_To_SFX generation without generating. It explicitly mentions the key parameters (duration_ms, num_samples), making the purpose distinct from generate/submit siblings.

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

Usage Guidelines3/5

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

The description implies use before the generate step ('without generating'), but does not provide explicit when-not-to-use guidance or compare to sibling preflight tools like text_to_sfx_preflight or extend_audio_preflight.

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

mirelo_video_to_sfx_submitA

Submit a Video_To_SFX generation as an asynchronous job and return the job id and job URL for later polling. Requires a video Input_Source and duration_ms.

ParametersJSON Schema
NameRequiredDescriptionDefault
videoYesRequired video Input_Source: { "type": "url", "video_url": <public url> } or { "type": "asset", "asset_id": <asset id> }.
outputNoOptional output kind: "audio" or "video". Defaults to "audio".
duration_msYesRequired. Integer milliseconds in [1000, 600000].
num_samplesNoOptional integer >= 1. Defaults to 1.
model_versionNoModel version: v1.5 or v1.6. Defaults to v1.6 when omitted.
start_offset_msNoOptional non-negative integer offset. Defaults to 0.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must fully disclose behavior. It notes the asynchronous nature and return of job id/URL, but omits details like idempotency, error cases, rate limits, or side effects. The provided information 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.

Conciseness5/5

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

The description is two short sentences, front-loading the main purpose and required inputs. Every sentence adds value; no redundancy or fluff.

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

Completeness4/5

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

For an async submission tool without an output schema, the description adequately covers core behavior and required inputs. The 4 optional parameters are fully described in the schema. It could mention polling workflow, but the sibling context (e.g., mirelo_job_status) fills that gap.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description reiterates 'video Input_Source and duration_ms' as required but adds no new semantic meaning beyond what the schema's property descriptions already provide.

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

Purpose5/5

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

The description states the tool submits a Video_To_SFX generation job asynchronously and returns a job id and URL for polling. It clearly identifies the verb ('submit'), resource ('Video_To_SFX'), and output, and distinguishes from sibling tools like 'generate' (synchronous) and 'preflight' by explicitly noting the asynchronous nature.

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

Usage Guidelines3/5

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

Usage context is implied through the term 'asynchronous job', which contrasts with 'generate' and 'preflight' siblings. However, the description does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites or exclusions.

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.

  1. 21 tool updatesv0.1.0
    • First observedmirelo_create_asset_upload_slot
    • First observedmirelo_extend_audio_generate
    • First observedmirelo_extend_audio_preflight
    • First observedmirelo_extend_audio_submit
    • First observedmirelo_extend_audio_with_video_generate
    • First observedmirelo_extend_audio_with_video_preflight
    • First observedmirelo_extend_audio_with_video_submit
    • First observedmirelo_get_account
    • First observedmirelo_inpaint_audio_generate
    • First observedmirelo_inpaint_audio_preflight
    • First observedmirelo_inpaint_audio_submit
    • First observedmirelo_inpaint_audio_with_video_generate
    • First observedmirelo_inpaint_audio_with_video_preflight
    • First observedmirelo_inpaint_audio_with_video_submit
    • First observedmirelo_job_status
    • First observedmirelo_text_to_sfx_generate
    • First observedmirelo_text_to_sfx_preflight
    • First observedmirelo_text_to_sfx_submit
    • First observedmirelo_video_to_sfx_generate
    • First observedmirelo_video_to_sfx_preflight
    • First observedmirelo_video_to_sfx_submit

TDQS

A3.7/5.0

Scored across 21 tools

Disambiguation5/5

Each tool targets a distinct operation: generation, preflight estimation, or asynchronous submission for specific audio tasks (extend, inpaint, text-to-sfx, video-to-sfx), with clear separation between audio-only and with-video variants. Additional tools for account, asset upload, and job polling are unique and non-overlapping.

Naming Consistency5/5

All tools follow a consistent snake_case pattern with the 'mirelo_' prefix, using verb_noun combinations like 'extend_audio_generate' and 'job_status'. The naming is predictable and uniform across synchronous, preflight, and submit variants.

Tool Count4/5

21 tools is slightly above the typical range, but each tool is justified for a comprehensive audio generation and editing service covering synchronous and asynchronous modes, preflight cost estimation, and support for multiple input types. The count is well-scoped and not excessive.

Completeness4/5

The tool set covers core generation and editing workflows (extend, inpaint, text-to-sfx, video-to-sfx), including cost estimates and async submission. Missing features include job cancellation, listing assets, and asset deletion, but these are minor gaps for the primary audio generation purpose.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers