Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Doseedo

REMOTE · API.DOSEEDO.COM · SCANNED SEP 30

Edit DAW sessions; convert Logic/Ableton/FL/PT/REAPER/Cubase/Dorico; stems, transcribe, generate

Available components

+3 this week 83 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security94
Transport & Reachability100
Schema Quality & AI Usability65
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 6568 tokens (~262/item across 25 items; 25 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management43
  • Stability observed for 13 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 94% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 25 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 26 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the Doseedo MCP server?

Doseedo is a hosted endpoint at https://api.doseedo.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · api.doseedo.com

# add to Claude Code
claude mcp add --transport http com-doseedo-doseedo 'https://api.doseedo.com/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "com-doseedo-doseedo": {
      "url": "https://api.doseedo.com/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-doseedo-doseedo": {
      "type": "http",
      "url": "https://api.doseedo.com/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.com-doseedo-doseedo]
url = "https://api.doseedo.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-doseedo-doseedo": {
      "type": "remote",
      "url": "https://api.doseedo.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-doseedo-doseedo --url 'https://api.doseedo.com/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-doseedo-doseedo:
    url: "https://api.doseedo.com/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-doseedo-doseedo": {
      "Transport": "http",
      "Url": "https://api.doseedo.com/mcp"
    }
  }
}
# add to Vellum
assistant mcp add com-doseedo-doseedo -t streamable-http -u 'https://api.doseedo.com/mcp'
// mcp.json
{
  "mcpServers": {
    "com-doseedo-doseedo": {
      "type": "http",
      "url": "https://api.doseedo.com/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 29 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 26 Sept 26 0
    • Tool “doseedo_account” rewrote its description, which is the text the model reads security
  • 25 Sept 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 24 Sept 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • New tool “doseedo_cancel_job”, which the server declares destructive security
    • Server version: 0.10.0 → 0.11.0 functional
    • New tool “doseedo_list_jobs” functional
    • “doseedo_audio_to_session” added an optional parameter “idempotency_key” cosmetic
    • “doseedo_bounce_session” added an optional parameter “idempotency_key” cosmetic
    • “doseedo_convert_project” added an optional parameter “idempotency_key” cosmetic
    • “doseedo_cover_song” added an optional parameter “idempotency_key” cosmetic
    • “doseedo_generate_music” added an optional parameter “idempotency_key” cosmetic
    • “doseedo_separate_stems” added an optional parameter “idempotency_key” cosmetic
    • “doseedo_transcribe” added an optional parameter “idempotency_key” cosmetic
  • 23 Sept 26 +6
    • HTTPS: unverified → pass ▲ security
    • HSTS header: fail → pass ▲ security
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “doseedo_edit_session” rewrote its description, which is the text the model reads security
    • Schema quality: 223 → 259 ▼ functional
    • Schema quality: 4691 → 5432 ▼ functional
    • Server version: 0.9.0 → 0.10.0 functional
    • Server version: 0.7.0 → 0.9.0 functional
    • New tool “doseedo_quote” functional
    • New tool “doseedo_recipes” functional
    • “doseedo_audio_to_session” added an optional parameter “crop_silence” cosmetic
    • “doseedo_audio_to_session” added an optional parameter “drum_sampler” cosmetic
    • “doseedo_audio_to_session” added an optional parameter “instruments” cosmetic
    • “doseedo_audio_to_session” added an optional parameter “loops” cosmetic
    • “doseedo_audio_to_session” added an optional parameter “name” cosmetic
    • “doseedo_audio_to_session” added an optional parameter “separate” cosmetic
    • “doseedo_audio_to_session” added an optional parameter “stem_mode” cosmetic
    • “doseedo_audio_to_session” added an optional parameter “tempo_map” cosmetic
    • “doseedo_check_task” added an optional parameter “job_id” cosmetic
    • “doseedo_transcribe” added an optional parameter “backend” cosmetic
    • “doseedo_transcribe” added an optional parameter “beats_per_bar” cosmetic
    • “doseedo_transcribe” added an optional parameter “chairs” cosmetic
    • “doseedo_transcribe” added an optional parameter “family” cosmetic
    • “doseedo_transcribe” added an optional parameter “polyphony” cosmetic
    • “doseedo_transcribe” added an optional parameter “register” cosmetic
    • “doseedo_transcribe” added an optional parameter “roster” cosmetic
    • “doseedo_transcribe” added an optional parameter “strikes” cosmetic
    • “doseedo_wait_task” added an optional parameter “job_id” cosmetic
    • “doseedo_edit_session” added an optional parameter “atomic” cosmetic
    • “doseedo_edit_session” added an optional parameter “batch_key” cosmetic
    • “doseedo_audio_to_session” reworded the description of “audio_key” cosmetic
    • “doseedo_audio_to_session” reworded the description of “simple” cosmetic
    • “doseedo_convert_project” reworded the description of “project_key” cosmetic
    • “doseedo_cover_song” reworded the description of “audio_key” cosmetic
    • “doseedo_separate_stems” reworded the description of “audio_key” cosmetic
    • “doseedo_transcribe” reworded the description of “audio_key” cosmetic
    • “doseedo_check_task” made “kind” optional cosmetic
    • “doseedo_check_task” made “task_id” optional cosmetic
    • “doseedo_wait_task” made “kind” optional cosmetic
    • “doseedo_wait_task” made “task_id” optional cosmetic
  • 22 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 30 Sept 2026 · Probed https://api.doseedo.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=doseedo.com CN=WE1,O=Google Trust Services,C=US 2 Aug 2026 1 Nov 2026 ECDSA 256 ECDSA-SHA256 2c86723026a8fde20e654edc5fb9219f
SANs: doseedo.com, api.doseedo.com, *.api.doseedo.com
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of api.doseedo.com. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
doseedo.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer realm="doseedo", resource_metadata="https://api.doseedo.com/.well-known/oauth-protected-resource"

Bearer realm="doseedo", resource_metadata="https://api.doseedo.com/.well-known/oauth-protected-resource"
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload
x-content-type-options nosniff

Protected resource metadata

Document https://api.doseedo.com/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://api.doseedo.com/mcp
Authorisation server https://api.doseedo.com

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.doseedo.com/mcp Verified 200
http (plaintext) http://api.doseedo.com/mcp HTTPS enforced 301 https://api.doseedo.com/mcp
MCP tools · 25 exposed · ~5,078 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
doseedo_account ~59

Check the connected doseedo account: plan tier, the monthly credit pool (generation AND DAW conversions draw it), purchased extra-usage credits, and storage. Read-only — consumes nothing. Use it before starting expensive work to confirm there is budget.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

doseedo_add_audio_to_session ~227

Add an audio file to a session — from a public URL (a doseedo-generated song, a separated stem, any https audio) OR from a LOCAL file you uploaded (doseedo_get_upload_url → PUT the bytes → pass the returned audio_key here). Ingested server-side and returned as a sha256 you then use: place it on a track with attach_audio, or load it into a Quick Sampler with load_quick_sampler_sample {track_id, sample_path: "<the sha>"} (bakes into the exported .logicx, no desktop needed — the drum-pack/sample-swap path). Give audio_url OR audio_key.

NameTypeReqDescription
audio_keystring–audio_key from doseedo_get_upload_url after you PUT a local file to its upload_url (a file from the user's disk, e.g. a drum-pack WAV).
audio_urlstring–Public https URL of the audio (e.g. a doseedo artifact URL).
filenamestring–Optional name for the asset.
session_idstringyes–

No output schema declared.

No examples provided.

doseedo_audio_to_session ~433

Turn an uploaded full mix into a complete DAW session (separated stems as tracks, tempo map, optional per-stem MIDI and chord guide). The result is a downloadable session zip for Logic Pro or Ableton. Async: returns a task_id — poll with doseedo_wait_task kind="session" (~4 minutes).

NameTypeReqDescription
audio_keystringyesR2 ingest key of an uploaded audio file (from doseedo_get_upload_url / POST /api/upload/r2/ingest-url; starts with "ingest/").
chordsboolean–Add a detected-chords guide track (default false).
crop_silenceboolean–Punch regions in where each stem plays instead of whole-length stems (default false).
drum_samplerboolean–Sampled kits → a one-shot sampler track + MIDI (default false).
idempotency_keystring–Optional. Any unique string for THIS request (e.g. a UUID). Re-sending the same call with the same key after a timeout returns the same job instead of starting a second one.
instrumentsstring–stem_mode="detect": optional comma list restricting the orchestral set.
loopsboolean–Detect repeated clips and lay them as loops (default false).
midi_stemsstring–Optional comma-separated stems to also add as MIDI tracks, e.g. "piano,bass".
namestring–Project name for the session file.
separateboolean–false = no separation: the mix lands as ONE audio track (default true).
simpleboolean–Faster minimal build: meter + tempo + stems only, no MIDI (default false). Required for stem_mode="detect".
stem_modestring–Separation family: 6stem (default), drumsep (split the kit too) or detect (orchestral, auto-picked; needs simple=true).
targetstring–DAW target (default logic).
tempo_mapboolean–false = one constant tempo instead of a tempo map (default true).

No output schema declared.

No examples provided.

doseedo_bounce_session ~255

Bounce a session (or specific tracks) to audio through their REAL plugin chains, offline — Dø Desktop renders them in the background WITHOUT the user opening the DAW (live via Logic if it's open, headless if it isn't; this is the thing stock DAWs can't do). Async: returns a task_id — poll with doseedo_wait_task kind="bounce". The result is downloadable stem URLs. Needs Dø Desktop to run at some point to pick up the job; until then it stays queued.

NameTypeReqDescription
formatstring–Output format (default wav).
idempotency_keystring–Optional. Any unique string for THIS request (e.g. a UUID). Re-sending the same call with the same key after a timeout returns the same job instead of starting a second one.
session_idstringyes–
stemsboolean–true (default) = one file per track; false = a single mixdown.
tail_secondsnumber–Extra seconds for reverb/delay to ring out (default 2).
track_idsarray–Tracks to bounce (t_… ids from doseedo_get_session). Omit to bounce the whole session.

No output schema declared.

No examples provided.

doseedo_cancel_job ~74

Cancel a queued or running job. A generation that has not reached the GPU yet is stopped and its credit refunded; work a plane has already started may finish, but the job ends as canceled and its output is discarded.

NameTypeReqDescription
job_idstringyesThe job_id from a submit tool or doseedo_list_jobs.

No output schema declared.

No examples provided.

doseedo_check_task ~93

Check an async doseedo task once. Returns current status, and the result (file URLs / notes) when finished.

NameTypeReqDescription
job_idstring–Alternatively the job_id (job_…) from a submit tool or the jobs API — replaces task_id + kind.
kindstring–Which tool family created the task.
task_idstring–The task_id returned by a submit tool.

No output schema declared.

No examples provided.

doseedo_convert_project ~611

Convert a complete DAW project between Logic Pro (.logicx), Ableton Live (.als), FL Studio (.flp), Pro Tools (.ptx), REAPER (.rpp), Cubase (.cpr) and Dorico (.dorico/.musicxml) — any pair, both ways. The project is rebuilt natively in the target format: tracks, MIDI, audio clips, tempo, and markers arrive editable (for Logic↔Ableton also automation, buses/sends, and plugin state). ★ CUBASE AND DORICO ARE ASYMMETRIC, by necessity — neither native format is documented, so a file we cannot guarantee opens is never written. TO Cubase you get a .dawproject (the open format Cubase 14+ and Nuendo import as a real editable session; Studio One and Bitwig read it too), not a .cpr. TO Dorico you get MusicXML (.mxl) — Dorico's own full-notation import route, which MuseScore, Finale and Sibelius also open — not a .dorico. FROM Cubase reads the native .cpr: tracks, tempo, signature and MIDI parts carry; its audio pool does not, so audio tracks arrive named but empty. FROM Dorico: a .dorico carries its players and flows but NOT its notes (score.dtn exposes no note position or duration), so export MusicXML from Dorico and convert THAT for the music — this tool accepts .musicxml/.mxl under the same dorico2* directions. Every conversion reports what it could not carry; read the task result rather than assuming silence means lossless. First call doseedo_get_project_upload_url and PUT the project there (zip a project FOLDER so its audio travels; a bare .als/.flp/.rpp/.ptx/.cpr/.dorico/.mxl or zipped .logicx works too). Async: returns a task_id — poll with doseedo_wait_task kind="convert" (typically 15s–2min).

NameTypeReqDescription
directionstringyesSource and target as "<source>2<target>" (logic | ableton | fl | protools | reaper | cubase | dorico). cubase2* reads a .cpr and *2cubase writes a .dawproject (Cubase 14+/Nuendo open it natively). do…
idempotency_keystring–Optional. Any unique string for THIS request (e.g. a UUID). Re-sending the same call with the same key after a timeout returns the same job instead of starting a second one.
project_keystringyesR2 key of the uploaded project (from doseedo_get_project_upload_url / POST /api/upload/r2/signed-url; starts with "uploads/").

No output schema declared.

No examples provided.

doseedo_cover_song ~246

Re-render an uploaded song as a cover: keep its structure/melody while changing timbre, instruments, or lyrics. Optionally swap specific stems to other instruments, or export a DAW session too. Async: returns a task_id — poll with doseedo_wait_task kind="cover" (several minutes for full songs).

NameTypeReqDescription
audio_keystringyesR2 ingest key of an uploaded audio file (from doseedo_get_upload_url / POST /api/upload/r2/ingest-url; starts with "ingest/").
cover_noise_strengthnumber–Optional 0–1 fidelity dial: higher departs further from the source.
exportstring–Optionally also build a DAW session for this target.
idempotency_keystring–Optional. Any unique string for THIS request (e.g. a UUID). Re-sending the same call with the same key after a timeout returns the same job instead of starting a second one.
instrumentsobject–Optional per-stem instrument swap map, e.g. {"piano": "electric_guitar"}.
lyricsstring–Optional replacement lyrics.

No output schema declared.

No examples provided.

doseedo_create_session ~71

Create a new, empty DAW session in the account (a blank project you can then populate with doseedo_edit_session, or target with doseedo_audio_to_session). Returns its session_id.

NameTypeReqDescription
dawstring–Bound DAW (default logic).
namestringyesSession name.

No output schema declared.

No examples provided.

doseedo_desktop_status ~81

Is Dø Desktop running on the user's Mac and connected to their DAW? Reports which sessions it currently holds, whether a live Logic hook is answering, and its per-session applied cursor. Use it to know whether an edit will reach the DAW live now (desktop online + logic connected) or wait for the next session open. Read-only.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

doseedo_download_session ~212

Save a session to the device as a native Logic project (.logicx.zip), rebuilt server-side from the current session state — no desktop needed. Returns a SHORT-LIVED, NO-AUTH download URL: fetch it with a plain `curl -o ~/Downloads/…` (no API key or header) and unzip. Use this to put the project in the user's Downloads folder. The result also carries `replay` — what the build actually put in the file (per track: kind, the sample its Quick Sampler plays, MIDI note count, audio region count; media in the bundle; ops the offline build could not synthesize) — and `warnings`. Verify from those; do not unzip and inspect ProjectData. `place_local_files` (when present) MUST be run after unzipping.

NameTypeReqDescription
dawstring–Target DAW (default logic; only logic is a one-shot native download — for others use doseedo_convert_project).
session_idstringyes–

No output schema declared.

No examples provided.

doseedo_edit_ops_reference ~127

The full catalog of session edit ops doseedo_edit_session accepts: every op with its arguments, units, and where it lands (live in the open project, at next open, or state-only) — plus the WORKFLOW, UNITS (ids, beats, 0.709 = 0 dB, Quick Sampler root C3 = 60) and RECIPES (drum kit from local samples, one-shots on an audio track, remote sample, submix bus, verify). Read it ONCE per session and copy a recipe. Read-only.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

doseedo_edit_session ~428

Edit a DAW session by applying a list of ops (move/trim a region, set MIDI notes, add/remove a track, change a fader/pan/mute, insert or tweak a plugin, set tempo, add a marker, …). If Dø Desktop is running with the project open, the edits appear in Logic live within seconds; otherwise they persist and apply next time the session opens. Get ids and current values from doseedo_get_session first, and see doseedo_edit_ops_reference for every op and its arguments. CONTRACT: every op is validated before anything is stored (unknown ops and ops outside the key's ops:<group> scopes are refused). atomic (default true): one rejected op → NOTHING is stored and the response lists every rejection; atomic:false stores the good ops and lists the rest. RETRY: a call that timed out may have been stored — re-send it with the SAME batch_key and it dedups (deduped:true, original cursors); a retry without batch_key duplicates the edits. Stored ops are applied by the desktop one at a time in order; there is no per-batch undo group — verify what landed with doseedo_download_session (replay).

NameTypeReqDescription
atomicboolean–Default true: any rejected op means nothing is stored. Set false to store the valid ops and receive the rest as `rejected`.
batch_keystring–A stable id for THIS batch (e.g. "drumkit-build-1"). Same batch_key + same ops on a retry = the same client_op_ids = no duplicates. Always pass one for a build you might have to retry.
opsarrayyesThe edits, e.g. [{"op":"set_track_crop","args":{"track_id":"t_…","start_beats":4,"end_beats":124,"prev_start_beats":24}}, {"op":"set_channel_volume","args":{"channel_id":"ch_…","value":0.6}}]. See do…
session_idstringyes–

No output schema declared.

No examples provided.

doseedo_generate_music ~236

Generate an original song or instrumental from a text prompt (optionally with lyrics). Async: returns a task_id — poll with doseedo_wait_task kind="generate" (typically 1–3 minutes). The finished result is a list of downloadable audio file URLs.

NameTypeReqDescription
bpmnumber–Optional tempo in BPM (default 120).
duration_secondsnumber–Target length in seconds (e.g. 30–120). Omit for the model default.
idempotency_keystring–Optional. Any unique string for THIS request (e.g. a UUID). Re-sending the same call with the same key after a timeout returns the same job instead of starting a second one.
lyricsstring–Optional lyrics to sing. Omit for instrumental.
promptstringyesStyle/mood/instrumentation prompt, e.g. "warm jazz trio, brushed drums, late-night ballad".
seednumber–Optional random seed for reproducibility.
time_signaturestring–Optional time signature, e.g. "4/4", "3/4".

No output schema declared.

No examples provided.

doseedo_get_project_upload_url ~155

Get a presigned upload for a DAW PROJECT file (for doseedo_convert_project). Returns an upload_url (PUT the bytes there, e.g. `curl -X PUT -H "Content-Type: application/zip" --data-binary @project.zip "<upload_url>"`) and a project_key to pass to doseedo_convert_project. Zip a project folder so its audio travels with it.

NameTypeReqDescription
content_typestring–MIME type: application/zip for zips (default), application/octet-stream for bare project files.
filenamestringyesFile name including extension, e.g. "Song Project.zip", "beat.flp", "song.cpr" or "score.mxl".

No output schema declared.

No examples provided.

doseedo_get_session ~133

Read a DAW session as a compact arrangement summary an agent can edit against: every track with its wire ids (track_id t_…, its mixer strip channel_id ch_…), its regions in BOTH beats and seconds, mixer state (volume with dB, pan, mute), and plugin chain (third-party flagged); plus tempo, time signature, markers, length, and a "sync" block saying whether Dø Desktop is live on this session and how far it has applied. Read-only. Pass these ids straight to doseedo_edit_session.

NameTypeReqDescription
session_idstringyesFrom doseedo_list_sessions.

No output schema declared.

No examples provided.

doseedo_get_upload_url ~133

Get a presigned upload for your own audio file. 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.

NameTypeReqDescription
content_typestring–MIME type; inferred from the extension when omitted (audio/* only).
filenamestringyesFile name including extension, e.g. "song.wav".

No output schema declared.

No examples provided.

doseedo_list_jobs ~118

List the jobs this account submitted (generate / cover / stems / transcribe / session / convert / bounce), newest first — to find an earlier result, check what is still running, or resume after a lost connection. Read-only.

NameTypeReqDescription
beforestring–Page cursor: the next_cursor of a previous call.
kindstring–Only this job kind, e.g. "separate_stems".
limitnumber–How many (1–100, default 20).
statusstring––

No output schema declared.

No examples provided.

doseedo_list_plugins ~88

List the plugins you can insert on a strip with doseedo_edit_session's add_device op. Returns the stock Logic catalog (instruments + effects, always available) and — when Dø Desktop is connected — the actual plugins installed on the user's Mac (stock + third-party). Insert any of them BY NAME: add_device {channel_id, device: {name: "…"}}.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

doseedo_list_sessions ~71

List the connected account's DAW sessions (most recently updated first) — their ids, names, DAW, and update time. Use a session id with doseedo_get_session and doseedo_edit_session.

NameTypeReqDescription
limitnumber–How many to return (default 25, max 200).

No output schema declared.

No examples provided.

doseedo_quote ~151

Estimate what a job will cost in credits BEFORE submitting it, and whether the connected account can afford it right now. Spends nothing. Pass the job (generate_music, cover_song, separate_stems, transcribe, audio_to_session, convert_project) and the same args you would give the job tool (duration_seconds, models, instruments, …). The estimate follows the planes' own price table; the gate is authoritative and a refusal names the exact price.

NameTypeReqDescription
argsobject–The arguments you intend to pass to the job tool; only the price-relevant ones matter.
jobstringyesWhich job to price (a doseedo_ tool name or recipe verb is accepted too).

No output schema declared.

No examples provided.

doseedo_recipes ~121

The named pipelines people actually ask for — stems, session (mix → DAW project), cover, transcribe, generate, convert, bounce — each with its inputs, the tool calls in order, outputs, a credit/time estimate and how to VERIFY success from the response. Call with no name for the index (pick by use_when), or with a name for the full recipe. Read-only.

NameTypeReqDescription
namestring–A recipe name or alias, e.g. "session" / "stems-to-session". Omit to list all.

No output schema declared.

No examples provided.

doseedo_separate_stems ~347

Split an uploaded mix into stems (vocals, drums, bass, guitar, piano, other — or orchestral/auto-detected instruments), with optional per-stem MIDI transcription and DAW-session export. Async: returns a task_id — poll with doseedo_wait_task kind="separate" (~2 minutes).

NameTypeReqDescription
audio_keystringyesR2 ingest key of an uploaded audio file (from doseedo_get_upload_url / POST /api/upload/r2/ingest-url; starts with "ingest/").
exportstring–Optionally also build a DAW session from the stems.
idempotency_keystring–Optional. Any unique string for THIS request (e.g. a UUID). Re-sending the same call with the same key after a timeout returns the same job instead of starting a second one.
include_midiboolean–Also transcribe each stem to MIDI (default true).
instrumentsstring–models=orchestra only: comma-separated extractor targets, e.g. "saxophone,trumpet,trombone". Available: drums, percussion, bass, double_bass, guitar, electric_guitar, acoustic_guitar, piano, organ, h…
modelsstring–Separation model set. Default 6stem (vocals/drums/bass/guitar/piano/other); auto/orchestra/detect for wider instrument sets.

No output schema declared.

No examples provided.

doseedo_transcribe ~464

Transcribe audio to notes (pitch, onset/offset seconds, velocity, confidence as JSON — not a MIDI file). Works from an uploaded audio_key or a public audio_url. Async: returns a task_id — poll with doseedo_wait_task kind="transcribe" (usually ~15–60s).

NameTypeReqDescription
audio_keystring–R2 ingest key of an uploaded audio file (from doseedo_get_upload_url / POST /api/upload/r2/ingest-url; starts with "ingest/"). Provide this or audio_url.
audio_urlstring–Public https URL of the audio to transcribe (alternative to audio_key).
backendstring–Advanced: force a transcription backend. Omit — the server routes by instrument.
beats_per_barnumber–With tempo_bpm: beats per bar for the beat-domain times (default 4).
chairsstring–polyphony="section": register codes per chair, as an alternative to roster.
familystring–Optional instrument family (e.g. "brass", "reeds", "strings") when the exact instrument is unknown.
idempotency_keystring–Optional. Any unique string for THIS request (e.g. a UUID). Re-sending the same call with the same key after a timeout returns the same job instead of starting a second one.
instrumentstring–Optional instrument hint, e.g. "piano", "sax", "vocals", "bass".
polyphonystring–Optional: "solo" (monophonic line), "poly", or "section" (a horn section — see roster/chairs).
registerstring–Optional register hint for the instrument (e.g. "soprano", "tenor", "bass").
rosterstring–polyphony="section": the chairs on the stem, e.g. "trumpet,trumpet,trombone,tenor_sax". Omit for the family default.
strikesboolean–With tempo_bpm: also return the harmony_strikes attack grid.
tempo_bpmnumber–Optional known tempo — enables beat-aligned note times.

No output schema declared.

No examples provided.

doseedo_wait_task ~144

Wait for an async doseedo task to finish (polls server-side for up to ~50s, then returns the latest status). If it returns while the task is still running, simply call this tool again — long jobs can take a few minutes total.

NameTypeReqDescription
job_idstring–Alternatively the job_id (job_…) from a submit tool or the jobs API — replaces task_id + kind.
kindstring–Which tool family created the task.
task_idstring–The task_id returned by a submit tool.
timeout_secondsnumber–Max seconds to wait in this call (5–50, default 45).

No output schema declared.

No examples provided.

Common questions

What is the Doseedo MCP server?

Doseedo is an MCP server listed in the public MCP registry as com.doseedo/doseedo. Edit DAW sessions; convert Logic/Ableton/FL/PT/REAPER/Cubase/Dorico; stems, transcribe, generate. This page covers its hosted endpoint (https://api.doseedo.com/mcp).

Is the Doseedo MCP server safe to use?

Doseedo scores 83 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Doseedo MCP server expose?

Doseedo exposes 25 tools: doseedo_generate_music, doseedo_cover_song, doseedo_separate_stems, doseedo_transcribe, doseedo_audio_to_session, and 20 more. Their descriptions and schemas cost roughly 5,078 tokens of context every time the server is loaded.

Does the Doseedo MCP server require authentication?

Yes. Doseedo asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Doseedo MCP server still maintained?

Doseedo is still listed as active in the MCP registry. We last reached this channel on 30 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.