accueil / serveurs / Médias / com.musicboxmelodies/music-box
com.musicboxmelodies/music-box
serveur MCP (Model Context Protocol) · musicboxmelodies 1.2.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que com.musicboxmelodies/music-box est sûr ?
Au dernier audit MCP Hub, le serveur MCP « com.musicboxmelodies/music-box » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 17 outils
- add_version≈ 852 tokens
Saves a melody as the version of an existing song for one box (a song can have one version per box: 15, 20, 30 notes or freestyle). Replaces that box's version if it exists. Works on the signed-in person's songs, or on a song saved without an account if you pass its claim_token. The melody must have no errors.
Paramètres, retour & exemple (6)
Paramètresbox· string · requis · 15 | 20 | 30 | freestyle
Music box type: "15", "20", "30" (notes) or "freestyle" (digital only). See list_music_boxes.bpm· number · requis
Tempo in beats per minute (30-300).notes· array · requis
Notes in any order, at most 2000. Only onsets matter: music boxes have no note durations.song_id· string · requisclaim_token· string · optionnel
Only for songs saved without an account.illegal_threshold_ticks· integer · optionnel
Minimum gap between two identical notes, in ticks (default 384 = 2 beats).
Exemple d'appel{"name": "add_version", "arguments": {"box": "15", "bpm": 1, "notes": [], "song_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"box": "texte", "song_id": "texte", "replaced": true, "validation": {}, "composer_url": "texte"}} - create_song≈ 1162 tokens
Saves a melody as a new private song. The melody must have no errors (run validate_melody or fit_melody_to_box first); warnings such as notes repeated too quickly are saved and marked, as in the composer. If the person is signed in, the song goes to their account and you get a link to open it in the composer. Without an account the song is saved anonymously and you get a claim link: give it to the person so they can keep it (valid 30 days). Set save_to_my_account to true to ask the person to sign in first (apps that cannot sign in mid-conversation should save without an account and give the claim link instead). Limits: 5 songs a day without an account, 15 a day with one.
Paramètres, retour & exemple (9)
Paramètresbox· string · requis · 15 | 20 | 30 | freestyle
Music box type: "15", "20", "30" (notes) or "freestyle" (digital only). See list_music_boxes.bpm· number · requis
Tempo in beats per minute (30-300).name· string · requis
Song title.tags· array · optionnelnotes· array · requis
Notes in any order, at most 2000. Only onsets matter: music boxes have no note durations.artist· string · requis
Original artist or composer ("Traditional" if unknown).description· string · optionnel
Optional notes about the arrangement.save_to_my_account· boolean · optionnel
True to save it in the person's account; they will be asked to sign in if they are not.illegal_threshold_ticks· integer · optionnel
Minimum gap between two identical notes, in ticks (default 384 = 2 beats).
Exemple d'appel{"name": "create_song", "arguments": {"box": "15", "bpm": 1, "name": "texte", "notes": [], "artist": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"box": "texte", "quota": {}, "private": true, "song_id": "texte", "claim_url": "texte", "validation": {}, "claim_token": "texte", "composer_url": "texte", "claim_expires_at": "texte", "saved_to_account": true}} - delete_song≈ 291 tokens
Permanently deletes one of the signed-in person's songs (all its box versions), or a song you saved without an account (pass its claim_token). This cannot be undone: tell the person which song will be deleted, ask them to confirm, then call again with confirmed: true.
Paramètres, retour & exemple (3)
Paramètressong_id· string · requisconfirmed· boolean · optionnel
true only after the person confirmed the deletion.claim_token· string · optionnel
Only for songs saved without an account.
Exemple d'appel{"name": "delete_song", "arguments": {"song_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"name": "texte", "status": "deleted", "song_id": "texte"}} - export_song≈ 418 tokens
Creates a download link for one box version of a song: an MP3, a MIDI file or a printable strip PDF to cut and punch for a hand-crank music box ("pdf_long" is one continuous strip, "pdf_a4"/"pdf_letter" are sliced to fit the page). Works on the person's songs and on public tunes. Requires signing in, like exporting in the composer.
Paramètres, retour & exemple (6)
Paramètresbox· string · optionnel · 15 | 20 | 30 | freestyle
Which version. Defaults to the preferred one.grid· string · optionnel · standard | note_lines | tempo_lines | empty
Grid printed on the strip (PDF only). Default standard.format· string · requis · mp3 | midi | pdf_long | pdf_a4 | pdf_lettersong_id· string · requisshow_title· boolean · optionnel
Print the song title on the strip (PDF only). Default true.strip_shape· string · optionnel · capped | straight | pointy | round
Shape of the strip ends (PDF only). Default capped.
Exemple d'appel{"name": "export_song", "arguments": {"format": "mp3", "song_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"box": "texte", "format": "texte", "song_id": "texte", "download_url": "texte"}} - fit_melody_to_box≈ 1112 tokens
Adjusts a melody so it can be played on a music box and lists every change. Strategies: "transpose" (shift the whole melody to the key that fits best), "nearest_note" (move each unplayable note to the closest playable one), "transpose_then_nearest" (default: both). Optionally snaps notes to a grid. Returns the new melody and its validation.
Paramètres, retour & exemple (7)
Paramètresbox· string · requis · 15 | 20 | 30 | freestyle
Music box type: "15", "20", "30" (notes) or "freestyle" (digital only). See list_music_boxes.bpm· number · requis
Tempo in beats per minute (30-300).notes· array · requis
Notes in any order, at most 2000. Only onsets matter: music boxes have no note durations.strategy· string · optionnel · transpose | nearest_note | transpose_then_nearesttarget_box· string · optionnel · 15 | 20 | 30 | freestyle
Box to fit into. Defaults to the melody's box.quantize_beats· number · optionnel
Snap every note to this grid in beats (e.g. 0.5 = eighth notes).illegal_threshold_ticks· integer · optionnel
Minimum gap between two identical notes, in ticks (default 384 = 2 beats).
Exemple d'appel{"name": "fit_melody_to_box", "arguments": {"box": "15", "bpm": 1, "notes": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"melody": {}, "changes": [], "summary": "texte", "semitones": 1, "validation": {}, "composer_link": "texte"}} - get_order_status≈ 351 tokens
Shows the signed-in person's orders (newest first) or one order: its status, items, price and, once delivered, the links to the finished files. Requires signing in.
Paramètres, retour & exemple (1)
Paramètresorder_id· string · optionnel
Omit to list recent orders.
Exemple d'appel{"name": "get_order_status", "arguments": {"order_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"orders": []}} - get_product_options≈ 399 tokens
Lists the variations (with prices in US dollars) and the details needed to order a custom music box melody or a custom strip design. Call it before prepare_order.
Paramètres, retour & exemple (1)
Paramètresproduct· string · requis · custom_melody | custom_strip_design
"custom_melody" (a song arranged in music box style, delivered as audio) or "custom_strip_design" (printable strips for a 15 or 30-note hand-crank box).
Exemple d'appel{"name": "get_product_options", "arguments": {"product": "custom_melody"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"name": "texte", "fields": [], "product": "texte", "variations": []}} - get_song≈ 614 tokens
Gets a music box tune with its notes in the melody format (the same one validate_melody accepts), for one box version. Works for public tunes, for the signed-in person's own songs, and for a song this agent saved anonymously (pass its claim_token). Use search_songs or list_my_songs to find song ids.
Paramètres, retour & exemple (3)
Paramètresbox· string · optionnel · 15 | 20 | 30 | freestyle
Which version to return. Defaults to the version the arranger marked as preferred.song_id· string · requis
Song id from search_songs, list_my_songs or create_song.claim_token· string · optionnel
Only for songs saved without an account: the claim_token create_song returned.
Exemple d'appel{"name": "get_song", "arguments": {"song_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "name": "texte", "tags": [], "stats": {}, "artist": "texte", "melody": {}, "private": true, "song_id": "texte", "arranged_by": "texte", "description": "texte", "composer_url": "texte", "available_boxes": []}} - import_midi≈ 655 tokens
Converts a MIDI file (base64, up to 512 KB) into the melody format and validates it for a box, so you can fit, edit and save it. Drums are ignored. Saves nothing.
Paramètres, retour & exemple (2)
Paramètresbox· string · optionnel · 15 | 20 | 30 | freestyle
Box to validate against. Default "30".midi_base64· string · requis
The .mid file, base64-encoded.
Exemple d'appel{"name": "import_midi", "arguments": {"midi_base64": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"name": "texte", "melody": {}, "validation": {}, "notes_in_file": 1, "skipped_percussion_tracks": 1}} - list_music_boxes≈ 333 tokens
Lists the music box types a melody can be written for, with their exact playable notes and rules. Call this before composing or validating a melody.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_music_boxes", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"boxes": [], "ticks_per_beat": 1, "default_min_repeat_beats": 1}} - list_my_songs≈ 360 tokens
Lists the signed-in person's songs on Musicboxmelodies, newest first, including private ones. Requires signing in.
Paramètres, retour & exemple (2)
Paramètrespage· integer · optionnelpage_size· integer · optionnel
Default 20.
Exemple d'appel{"name": "list_my_songs", "arguments": {"page": 1, "page_size": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"page": 1, "pages": 1, "songs": [], "total": 1}} - list_products≈ 318 tokens
Lists what Musicboxmelodies sells, with current prices in US dollars and delivery times: custom music box melodies, custom printable strip designs and PRO composer accounts. Orders are placed and paid by the person on the website.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_products", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"currency": "texte", "products": []}} - prepare_order≈ 572 tokens
Prepares a custom melody or strip design order with all its details and returns a link to the Musicboxmelodies cart, where the person reviews it, adds photos if needed, applies discount codes and pays with PayPal. Nothing is charged here. The link works for 7 days. Confirm the song, the variation and the price with the person before calling it. The price is calculated by the site.
Paramètres, retour & exemple (9)
Paramètrestime· string · requis
Part of the song to convert, e.g. "0:00 - 1:30" or "whole song".theme· string · optionnel · artist_pictures | own_pictures
Strip designs only.product· string · requis · custom_melody | custom_strip_design
"custom_melody" (a song arranged in music box style, delivered as audio) or "custom_strip_design" (printable strips for a 15 or 30-note hand-crank box).song_name· string · requisnote_count· ? · optionnel
Strip designs only: notes of the person's music box.song_artist· string · requisvariation_id· string · requis
From get_product_options.existing_tune· boolean · optionnel
Strip designs only: the song is already on our YouTube channel (25% off).reference_link· string · optionnel
YouTube or other link to the version the person wants.
Exemple d'appel{"name": "prepare_order", "arguments": {"time": "texte", "product": "custom_melody", "song_name": "texte", "song_artist": "texte", "variation_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"summary": "texte", "cart_url": "texte", "price_usd": 1, "expires_at": "texte"}} - render_audio≈ 604 tokens
Creates an MP3 of a melody (before or without saving it) or of a saved song, so you and the person can hear it. Pass either song_id or a melody (box, bpm, notes). Sounds: "synth" (free, the site's default sound) or "music_box" (real music box recordings for the box; PRO accounts only). Saved songs use the sound their author chose unless you pass one. Up to 5 minutes; 20 new audios a day without an account and 60 with one (the same melody again is free).
Paramètres, retour & exemple (7)
Paramètresbox· string · optionnel · 15 | 20 | 30 | freestyle
With song_id: which version. Otherwise the melody's box.bpm· number · optionnel
Melody tempo (required without song_id).notes· array · optionnel
Melody notes (required without song_id).sound· string · optionnel · synth | music_boxsong_id· string · optionnel
A saved song (public, the person's own, or one you saved without an account with its claim_token).claim_token· string · optionnelillegal_threshold_ticks· integer · optionnel
Minimum gap between two identical notes, in ticks (default 384 = 2 beats).
Exemple d'appel{"name": "render_audio", "arguments": {"box": "15", "bpm": 1, "notes": [], "sound": "synth", "song_id": "texte", "claim_token": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "sound": "texte", "audio_url": "texte", "duration_seconds": 1}} - search_songs≈ 466 tokens
Searches the public catalog of music box tunes made by the Musicboxmelodies community. Search by song name, artist or arranger; optionally only tunes that have a version for one box type. Returns at most 20 per page.
Paramètres, retour & exemple (4)
Paramètresbox· string · optionnel · 15 | 20 | 30 | freestyle
Only tunes with a version for this box.page· integer · optionnel
Page number, starting at 1.query· string · optionnel
Words to search in the song name, artist or arranger. Omit to list tunes.page_size· integer · optionnel
Results per page, 1-20 (default 10).
Exemple d'appel{"name": "search_songs", "arguments": {"box": "15", "page": 1, "query": "texte", "page_size": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"page": 1, "pages": 1, "songs": [], "total": 1}} - set_song_visibility≈ 295 tokens
Makes one of the signed-in person's songs public (anyone can find and play it on musicboxmelodies.com) or private. Only make a song public when the person asked for it: ask them to confirm, then call again with confirmed: true.
Paramètres, retour & exemple (3)
Paramètressong_id· string · requisconfirmed· boolean · optionnel
Required to make a song public: true only after the person confirmed.visibility· string · requis · public | private
Exemple d'appel{"name": "set_song_visibility", "arguments": {"song_id": "texte", "visibility": "public"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"url": "texte", "status": "updated", "song_id": "texte", "visibility": "texte"}} - validate_melody≈ 791 tokens
Checks whether a melody can be played on a music box: notes outside the box, same note repeated too fast, off-grid notes, tempo and length. Every issue names the note and how to fix it. Saves nothing. Call it before offering a melody to the person.
Paramètres, retour & exemple (5)
Paramètresbox· string · requis · 15 | 20 | 30 | freestyle
Music box type: "15", "20", "30" (notes) or "freestyle" (digital only). See list_music_boxes.bpm· number · requis
Tempo in beats per minute (30-300).notes· array · requis
Notes in any order, at most 2000. Only onsets matter: music boxes have no note durations.snap_beats· number · optionnel
Optional grid in beats (e.g. 0.5) to warn about notes off that grid.illegal_threshold_ticks· integer · optionnel
Minimum gap between two identical notes, in ticks (default 384 = 2 beats).
Exemple d'appel{"name": "validate_melody", "arguments": {"box": "15", "bpm": 1, "notes": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"ok": true, "stats": {}, "issues": [], "composer_link": "texte"}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».