Skip to main content
Glama

Doseedo: Film Scoring, AI Instruments, Sound Effects & Stems

Get a project upload URL

doseedo_get_project_upload_url
Idempotent

Get a presigned upload for a DAW PROJECT file (for doseedo_convert_project / doseedo_import_project). Zip a project FOLDER so its audio travels with it — and a .logicx or GarageBand .band, which are folders (macOS packages). SIZE LIMITS: a single PUT takes up to 5 GB; guest and free accounts convert projects up to 2 GB, paid plans up to 12 GB (a larger one is refused as project_too_large with the cap and an upgrade link). Pass size_bytes: past 4 GB (or with multipart:true) you get a MULTIPART upload instead — a part_size, one presigned part_url per part, and the complete step (doseedo_complete_project_upload); each part is retried on its own, so a dropped connection costs one part, not the upload. Single PUT: curl -sS -X PUT -H "Content-Type: application/zip" --data-binary @project.zip "<upload_url>", then pass project_key on. Multipart: split -b <part_size_bytes> project.zip part. then for each piece in order curl -sS -X PUT --data-binary @part.aa "<part_url>" -D - -o /dev/null | grep -i etag (keep each ETag), then doseedo_complete_project_upload {project_key, upload_id, parts}. Need more part URLs than one answer holds? Call this again with project_key + upload_id + part_numbers.

Input Schema

NameRequiredDescriptionDefault
filenameNoFile name including extension, e.g. "Song Project.zip", "My Song.band.zip", "beat.flp", "song.cpr", "Mix.song", "set.dawproject" or "score.mxl".
multipartNoForce a multipart upload regardless of size (resumable per part).
upload_idNoCONTINUATION: the upload_id the first call returned.
size_bytesNoThe file's size in bytes (stat it). Decides single PUT vs multipart and sizes the parts.
project_keyNoCONTINUATION of a multipart upload: the key the first call returned.
content_typeNoMIME type: application/zip for zips (default), application/octet-stream for bare project files.
part_numbersNoCONTINUATION: which part numbers (1-based) to sign now, ≤ 24 per call.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only declare readOnly=false, idempotent=true, openWorld=true, destructive=false, so the description carries the operational burden and does so well: hard size caps per plan tier, the exact refusal error (project_too_large with the cap and an upgrade link), the 4 GB multipart threshold, per-part retry semantics, and the required follow-up step doseedo_complete_project_upload. The one blemish is mild internal tension between 'a single PUT takes up to 5 GB' and 'past 4 GB you get a MULTIPART upload', which leaves the real single-PUT ceiling slightly ambiguous.

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?

It is a single dense paragraph, but it is front-loaded with purpose and size limits and every later sentence carries executable detail (curl lines, split, ETag capture, retry rationale). The 5 GB vs 4 GB statement is the one place where wording could be tightened rather than expanded.

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

Completeness5/5

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

With no output schema and a seven-parameter tool spanning a multi-step, resumable workflow, the description covers the entire lifecycle: initiating the presign, choosing the transport, executing the upload, and completing it via doseedo_complete_project_upload, plus the re-call path for additional part URLs. An agent can act correctly without consulting other documentation.

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 genuine meaning beyond the schema: size_bytes is what selects single-PUT vs multipart and sizes the parts, and project_key/upload_id/part_numbers are only meaningful as a continuation of an earlier call. The curl/split recipes attach concrete operational behavior to each parameter rather than restating its type.

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 states a specific verb and resource ('Get a presigned upload for a DAW PROJECT file') and immediately ties it to the consuming siblings doseedo_convert_project / doseedo_import_project. The one gap is that it never explicitly contrasts itself with the sibling doseedo_get_upload_url, which an agent must choose between; the distinction ('DAW project file' vs. a general upload) is only implied.

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?

It says exactly when to use it (before convert_project/import_project), how to package the input (zip a project FOLDER so audio travels with it, including .logicx/.band packages), and which mode to pick (single PUT vs multipart driven by size_bytes or the multipart flag). It also handles the non-obvious continuation case: re-call with project_key + upload_id + part_numbers when more part URLs are needed.

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