Doseedo
Ce que fait ce MCP
Edits and converts DAW projects, generates music, separates stems, transcribes audio, renders sessions, and manages Logic and other music-production workflows.
Outils
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['session_id'], 'properties': {'filename': {'type': 'string', 'description': 'Optional name for the asset.'}, 'audio_key': {'type': 'string', 'description': "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_url': {'type': 'string', 'description': 'Public https URL of the audio (e.g. a doseedo artifact URL).'}, 'session_id': {'type': 'string'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['audio_key'], 'properties': {'name': {'type': 'string', 'description': 'Project name for the session file.'}, 'loops': {'type': 'boolean', 'description': 'Detect repeated clips and lay them as loops (default false).'}, 'chords': {'type': 'boolean', 'description': 'Add a detected-chords guide track (default false).'}, 'simple': {'type': 'boolean', 'description': 'Faster minimal build: meter + tempo + stems only, no MIDI (default false). Required for stem_mode="detect".'}, 'target': {'enum': ['logic', 'ableton'], 'type': 'string', 'description': 'DAW target (default logic).'}, 'separate': {'type': 'boolean', 'description': 'false = no separation: the mix lands as ONE audio track (default true).'}, 'audio_key': {'type': 'string', 'description': 'R2 ingest key of an uploaded audio file (from doseedo_get_upload_url / POST /api/upload/r2/ingest-url; starts with "ingest/").'}, 'stem_mode': {'enum': ['6stem', 'drumsep', 'detect'], 'type': 'string', 'description': 'Separation family: 6stem (default), drumsep (split the kit too) or detect (orchestral, auto-picked; needs simple=true).'}, 'tempo_map': {'type': 'boolean', 'description': 'false = one constant tempo instead of a tempo map (default true).'}, 'midi_stems': {'type': 'string', 'description': 'Optional comma-separated stems to also add as MIDI tracks, e.g. "piano,bass".'}, 'instruments': {'type': 'string', 'description': 'stem_mode="detect": optional comma list restricting the orchestral set.'}, 'crop_silence': {'type': 'boolean', 'description': 'Punch regions in where each stem plays instead of whole-length stems (default false).'}, 'drum_sampler': {'type': 'boolean', 'description': 'Sampled kits → a one-shot sampler track + MIDI (default false).'}, 'idempotency_key': {'type': 'string', 'description': '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.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['session_id'], 'properties': {'stems': {'type': 'boolean', 'description': 'true (default) = one file per track; false = a single mixdown.'}, 'format': {'enum': ['wav', 'aiff'], 'type': 'string', 'description': 'Output format (default wav).'}, 'track_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tracks to bounce (t_… ids from doseedo_get_session). Omit to bounce the whole session.'}, 'session_id': {'type': 'string'}, 'tail_seconds': {'type': 'number', 'description': 'Extra seconds for reverb/delay to ring out (default 2).'}, 'idempotency_key': {'type': 'string', 'description': '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.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'description': 'The job_id from a submit tool or doseedo_list_jobs.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {'kind': {'enum': ['generate', 'cover', 'separate', 'transcribe', 'session', 'convert', 'bounce'], 'type': 'string', 'description': 'Which tool family created the task.'}, 'job_id': {'type': 'string', 'description': 'Alternatively the job_id (job_…) from a submit tool or the jobs API — replaces task_id + kind.'}, 'task_id': {'type': 'string', 'description': 'The task_id returned by a submit tool.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['project_key', 'direction'], 'properties': {'direction': {'enum': ['logic2ableton', 'ableton2logic', 'fl2logic', 'fl2ableton', 'ableton2fl', 'logic2fl', 'reaper2logic', 'reaper2ableton', 'reaper2fl', 'logic2reaper', 'ableton2reaper', 'fl2reaper', 'protools2logic', 'protools2ableton', 'protools2fl', 'protools2reaper', 'logic2protools', 'ableton2protools', 'fl2protools', 'reaper2protools', 'cubase2logic', 'cubase2ableton', 'cubase2fl', 'cubase2reaper', 'cubase2protools', 'cubase2dorico', 'logic2cubase', 'ableton2cubase', 'fl2cubase', 'reaper2cubase', 'protools2cubase', 'dorico2logic', 'dorico2ableton', 'dorico2fl', 'dorico2reaper', 'dorico2protools', 'dorico2cubase', 'logic2dorico', 'ableton2dorico', 'fl2dorico', 'reaper2dorico', 'protools2dorico'], 'type': 'string', 'description': 'Source 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). dorico2* reads a .dorico, .musicxml or .mxl and *2dorico writes MusicXML (.mxl).'}, 'project_key': {'type': 'string', 'description': 'R2 key of the uploaded project (from doseedo_get_project_upload_url / POST /api/upload/r2/signed-url; starts with "uploads/").'}, 'idempotency_key': {'type': 'string', 'description': '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.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['audio_key'], 'properties': {'export': {'enum': ['logic', 'ableton'], 'type': 'string', 'description': 'Optionally also build a DAW session for this target.'}, 'lyrics': {'type': 'string', 'description': 'Optional replacement lyrics.'}, 'audio_key': {'type': 'string', 'description': 'R2 ingest key of an uploaded audio file (from doseedo_get_upload_url / POST /api/upload/r2/ingest-url; starts with "ingest/").'}, 'instruments': {'type': 'object', 'description': 'Optional per-stem instrument swap map, e.g. {"piano": "electric_guitar"}.', 'additionalProperties': {'type': 'string'}}, 'idempotency_key': {'type': 'string', 'description': '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.'}, 'cover_noise_strength': {'type': 'number', 'description': 'Optional 0–1 fidelity dial: higher departs further from the source.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['name'], 'properties': {'daw': {'enum': ['logic', 'ableton'], 'type': 'string', 'description': 'Bound DAW (default logic).'}, 'name': {'type': 'string', 'description': 'Session name.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['session_id'], 'properties': {'daw': {'enum': ['logic', 'ableton', 'fl', 'reaper'], 'type': 'string', 'description': 'Target DAW (default logic; only logic is a one-shot native download — for others use doseedo_convert_project).'}, 'session_id': {'type': 'string'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['session_id', 'ops'], 'properties': {'ops': {'type': 'array', 'items': {'type': 'object', 'required': ['op', 'args'], 'properties': {'op': {'type': 'string', 'description': 'The op name, e.g. "set_track_crop".'}, 'args': {'type': 'object', 'description': 'The op arguments (see the ops reference).'}}, 'additionalProperties': False}, 'description': 'The 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 doseedo_edit_ops_reference.'}, 'atomic': {'type': 'boolean', 'description': 'Default true: any rejected op means nothing is stored. Set false to store the valid ops and receive the rest as `rejected`.'}, 'batch_key': {'type': 'string', 'description': '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.'}, 'session_id': {'type': 'string'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['prompt'], 'properties': {'bpm': {'type': 'number', 'description': 'Optional tempo in BPM (default 120).'}, 'seed': {'type': 'number', 'description': 'Optional random seed for reproducibility.'}, 'lyrics': {'type': 'string', 'description': 'Optional lyrics to sing. Omit for instrumental.'}, 'prompt': {'type': 'string', 'description': 'Style/mood/instrumentation prompt, e.g. "warm jazz trio, brushed drums, late-night ballad".'}, 'time_signature': {'type': 'string', 'description': 'Optional time signature, e.g. "4/4", "3/4".'}, 'idempotency_key': {'type': 'string', 'description': '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.'}, 'duration_seconds': {'type': 'number', 'description': 'Target length in seconds (e.g. 30–120). Omit for the model default.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['filename'], 'properties': {'filename': {'type': 'string', 'description': 'File name including extension, e.g. "Song Project.zip", "beat.flp", "song.cpr" or "score.mxl".'}, 'content_type': {'type': 'string', 'description': 'MIME type: application/zip for zips (default), application/octet-stream for bare project files.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['session_id'], 'properties': {'session_id': {'type': 'string', 'description': 'From doseedo_list_sessions.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['filename'], 'properties': {'filename': {'type': 'string', 'description': 'File name including extension, e.g. "song.wav".'}, 'content_type': {'type': 'string', 'description': 'MIME type; inferred from the extension when omitted (audio/* only).'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {'kind': {'type': 'string', 'description': 'Only this job kind, e.g. "separate_stems".'}, 'limit': {'type': 'number', 'description': 'How many (1–100, default 20).'}, 'before': {'type': 'string', 'description': 'Page cursor: the next_cursor of a previous call.'}, 'status': {'enum': ['queued', 'running', 'succeeded', 'failed', 'canceled'], 'type': 'string'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'How many to return (default 25, max 200).'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['job'], 'properties': {'job': {'enum': ['generate_music', 'cover_song', 'separate_stems', 'transcribe', 'audio_to_session', 'convert_project'], 'type': 'string', 'description': 'Which job to price (a doseedo_ tool name or recipe verb is accepted too).'}, 'args': {'type': 'object', 'description': 'The arguments you intend to pass to the job tool; only the price-relevant ones matter.', 'additionalProperties': True}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'A recipe name or alias, e.g. "session" / "stems-to-session". Omit to list all.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['audio_key'], 'properties': {'export': {'enum': ['logic', 'ableton'], 'type': 'string', 'description': 'Optionally also build a DAW session from the stems.'}, 'models': {'enum': ['6stem', 'auto', 'orchestra', 'detect'], 'type': 'string', 'description': 'Separation model set. Default 6stem (vocals/drums/bass/guitar/piano/other); auto/orchestra/detect for wider instrument sets.'}, 'audio_key': {'type': 'string', 'description': 'R2 ingest key of an uploaded audio file (from doseedo_get_upload_url / POST /api/upload/r2/ingest-url; starts with "ingest/").'}, 'instruments': {'type': 'string', 'description': '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, harp, brass, trumpet, trombone, french_horn, tuba, saxophone, clarinet, oboe, bassoon, flute, woodwind, strings, violin, viola, cello. Omit for the curated default set.'}, 'include_midi': {'type': 'boolean', 'description': 'Also transcribe each stem to MIDI (default true).'}, 'idempotency_key': {'type': 'string', 'description': '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.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {'chairs': {'type': 'string', 'description': 'polyphony="section": register codes per chair, as an alternative to roster.'}, 'family': {'type': 'string', 'description': 'Optional instrument family (e.g. "brass", "reeds", "strings") when the exact instrument is unknown.'}, 'roster': {'type': 'string', 'description': 'polyphony="section": the chairs on the stem, e.g. "trumpet,trumpet,trombone,tenor_sax". Omit for the family default.'}, 'backend': {'type': 'string', 'description': 'Advanced: force a transcription backend. Omit — the server routes by instrument.'}, 'strikes': {'type': 'boolean', 'description': 'With tempo_bpm: also return the harmony_strikes attack grid.'}, 'register': {'type': 'string', 'description': 'Optional register hint for the instrument (e.g. "soprano", "tenor", "bass").'}, 'audio_key': {'type': 'string', 'description': '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_url': {'type': 'string', 'description': 'Public https URL of the audio to transcribe (alternative to audio_key).'}, 'polyphony': {'type': 'string', 'description': 'Optional: "solo" (monophonic line), "poly", or "section" (a horn section — see roster/chairs).'}, 'tempo_bpm': {'type': 'number', 'description': 'Optional known tempo — enables beat-aligned note times.'}, 'instrument': {'type': 'string', 'description': 'Optional instrument hint, e.g. "piano", "sax", "vocals", "bass".'}, 'beats_per_bar': {'type': 'number', 'description': 'With tempo_bpm: beats per bar for the beat-domain times (default 4).'}, 'idempotency_key': {'type': 'string', 'description': '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.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {'kind': {'enum': ['generate', 'cover', 'separate', 'transcribe', 'session', 'convert', 'bounce'], 'type': 'string', 'description': 'Which tool family created the task.'}, 'job_id': {'type': 'string', 'description': 'Alternatively the job_id (job_…) from a submit tool or the jobs API — replaces task_id + kind.'}, 'task_id': {'type': 'string', 'description': 'The task_id returned by a submit tool.'}, 'timeout_seconds': {'type': 'number', 'description': 'Max seconds to wait in this call (5–50, default 45).'}}, 'additionalProperties': False}
Modifications récentes des outils
Serveurs MCP similaires
MiOffice — AI-Powered Workspace Studio
Provides browser-based tools for processing PDFs, images, video, and audio, including generation, enhancement, conversion, transc…
BlitzReels Video Editor
Creates and edits short-form videos, including timelines, captions, transitions, AI-generated visuals, music, voiceovers, sound e…
Morpha
Enables creating, animating, and exporting layered short-form video projects.
switch
Enables management and exploration of an account-scoped library of AI-generated images and videos.
framesail
Creates long-form YouTube videos through script generation, storyboarding, visual assets, voiceover, music, scene composition, an…
Magnific
Provides image enhancement and design tools, AI image and audio generation, text-to-speech, creation management, and reusable cre…
Uwear
Supports AI fashion photoshoot production with garments, outfits, avatars, locations, art direction, image generation, backdrops,…
Creative Claw
Generates and edits branded images, video, audio, speech, and 3D-related creative assets, with media processing and reusable them…