Skip to main content
Glama

Doseedo Film Score: spot a video, play your score on AI instruments, mix it to picture

Get an audio upload URL

doseedo_get_upload_url
Idempotent

Get a presigned upload for your own audio file — or a SCORE (.mid / .midi / .musicxml / .xml / .mxl → a score_key for doseedo_render_score: send a big score as a file, not as notes in the call). Returns an upload_url (PUT the raw file bytes there, e.g. curl -X PUT -H "Content-Type: <content_type>" --data-binary @song.wav "<upload_url>") and an audio_key to pass to doseedo_separate_stems / doseedo_transcribe / doseedo_cover_song / doseedo_audio_to_session, or to doseedo_add_audio_to_session. A FILM (mp4, mov, m4v, webm, mkv; ≤ 2 GB) uploads the same way: pass the key as video_key to doseedo_spot_video / doseedo_score_to_picture. Formats: WAV, AIFF, FLAC, MP3, M4A/AAC, Ogg/Opus, WebM — all accepted for processing on every plan. Storing audio IN A SESSION (doseedo_add_audio_to_session) keeps WAV/AIFF/FLAC lossless only on Pro+; below Pro+ lossless is not kept there, so send Opus (audio/ogg). Samples/regions for a session that are on this machine need NO upload: use load_quick_sampler_sample sample_path / attach_audio local_path / set_track_clips audio_ref.local_path and run place_local_files after the download.

Input Schema

NameRequiredDescriptionDefault
filenameYesFile name including extension, e.g. "song.wav", "film.mp4", or "cue.mid" / "cue.musicxml" for a score.
content_typeNoMIME type; inferred from the extension when omitted (wav, aif/aiff, flac, mp3, m4a/aac, ogg/opus, webm; a film: mp4, mov, m4v, mkv). Required for any other extension.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / filename / description
      Previous value: -"File name including extension, e.g. \"song.wav\"."New value: +"File name including extension, e.g. \"song.wav\", \"film.mp4\", or \"cue.mid\" / \"cue.musicxml\" for a score."
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, so the safety profile is already covered; the description still adds substantial behavior: the exact PUT mechanics with a curl example and Content-Type header, the ≤ 2 GB film limit, the accepted format list, and a plan-dependent lossless policy for session storage. It does not disclose the presigned URL's expiry window or whether an uploaded-but-unused key is garbage-collected, which keeps it off a 5.

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

Conciseness4/5

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

Front-loaded with the core action and the disambiguation of audio/score/film before any detail, and every sentence carries operative information. However the long em-dash-and-parenthetical chains and the trailing local-file paragraph make it denser and harder to scan than it needs to be for a 2-parameter tool.

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?

There is no output schema, and the description compensates by naming both returned values (upload_url, audio_key) and explaining how each must be used. Size limits, formats, and plan caveats are present; the remaining gap is URL lifetime and what happens if the PUT is never performed.

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%, so the baseline is 3, but the description adds real semantics: the filename's extension determines which kind of key comes back (score_key vs audio_key vs video_key) and therefore which downstream tool is valid, and it reiterates that content_type may be omitted for known extensions. That mapping is not visible in the schema.

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

Purpose5/5

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

States a specific verb and resource — 'Get a presigned upload' — and immediately disambiguates the three payload kinds it serves (audio, SCORE, FILM) by naming the distinct keys each returns (audio_key, score_key, video_key). An agent can tell exactly which sibling tools consume the result, so it is distinguishable from every other doseedo_* tool without opening the schema.

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

Usage Guidelines5/5

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

Gives explicit routing rules: use this file path for a big score rather than 'notes in the call', pass the key to the specific downstream tools listed per media type, and — crucially — a when-NOT case: local samples/regions need NO upload, use sample_path / local_path / place_local_files instead. This is exactly the alternative-selection guidance the dimension asks for.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources