Search / com.doseedo/doseedo
Doseedo
R2· OAuth, onceEdit DAW sessions; convert Logic/Ableton/FL/PT/REAPER/Cubase/Dorico; stems, transcribe, generate
v0.14.0 · active · website · descriptor JSON · versions
Search / com.doseedo/doseedo
R2· OAuth, onceEdit DAW sessions; convert Logic/Ableton/FL/PT/REAPER/Cubase/Dorico; stems, transcribe, generate
v0.14.0 · active · website · descriptor JSON · versions
{
"mcpServers": {
"doseedo": {
"type": "http",
"url": "https://api.doseedo.com/mcp"
}
}
}claude mcp add --transport http doseedo https://api.doseedo.com/mcp[mcp_servers.doseedo]
url = "https://api.doseedo.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"doseedo": {
"type": "remote",
"url": "https://api.doseedo.com/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"doseedo": {
"type": "http",
"url": "https://api.doseedo.com/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=doseedo&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLmRvc2VlZG8uY29tL21jcCJ9"
}{
"servers": {
"doseedo": {
"type": "http",
"url": "https://api.doseedo.com/mcp"
}
}
}{
"mcpServers": {
"doseedo": {
"httpUrl": "https://api.doseedo.com/mcp"
}
}
}extensions:
"doseedo":
enabled: true
name: "doseedo"
type: streamable_http
uri: "https://api.doseedo.com/mcp"
timeout: 300
protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)auth.prmProtected Resource Metadata (RFC 9728) publishedauth.as_metadataauthorization server metadata reachableauth.cimdClient ID Metadata Documents supportedauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_length1 tools have descriptions over 1,024 characters, which crowds the contexttools.schemasevery tool has an object input schematools.annotations21 of 21 tools declare readOnlyHint or destructiveHinttools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHinttools.token_costabout 4,939 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes, stability.rug_pulltool history not recorded yetdeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+dns-namespace +website +reachable +uptime-93% +updated-13d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://api.doseedo.com/mcp streamable-http | oauth2 AS: https://api.doseedo.com | yes | 93% | 162 ms | – | 2026-10-20 |
doseedo_accountread-only | Check the connected doseedo account: plan tier and how many generation / DSP credits remain today. Read-only — consumes nothing. Use it before starting expensive work to confirm there is budget. |
doseedo_add_audio_to_session | 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. |
doseedo_audio_to_session | 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). |
doseedo_bounce_session | 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. |
doseedo_check_taskread-only | Check an async doseedo task once. Returns current status, and the result (file URLs / notes) when finished. |
doseedo_convert_project | 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). |
doseedo_cover_song | 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). |
doseedo_create_session | 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. |
doseedo_desktop_statusread-only | 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. |
doseedo_download_sessionread-only | 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. |
doseedo_edit_ops_referenceread-only | 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. |
doseedo_edit_session | 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. Ops apply in order. |
doseedo_generate_music | 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. |
doseedo_get_project_upload_url | 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. |
doseedo_get_sessionread-only | 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. |
doseedo_get_upload_url | 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. |
doseedo_list_pluginsread-only | 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: "…"}}. |
doseedo_list_sessionsread-only | 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. |
doseedo_separate_stems | 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). |
doseedo_transcribe | 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). |
doseedo_wait_taskread-only | 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. |
Schemas: list_tools.
{
"name": "com.doseedo/doseedo",
"title": "Doseedo",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://api.doseedo.com/mcp",
"type": "streamable-http"
}
],
"version": "0.14.0",
"websiteUrl": "https://doseedo.com/mcp",
"description": "Edit DAW sessions; convert Logic/Ableton/FL/PT/REAPER/Cubase/Dorico; stems, transcribe, generate"
}