Musicboxmelodies
Compose, save and print music box tunes for 15, 20 and 30-note music boxes.
| Endpoint | https://api.musicboxmelodies.com/mcp (streamable-http) |
|---|---|
| Registry version | 1.2.0 |
| Now | 17 tools · grade B (81) · pin ts_c49a3485af1c0421c33a4ede9f4837b1 · protocol 2025-06-18 |
| First / last listed | 2026-10-24 23:03 UTC / 2026-10-24 23:03 UTC |
| Grade over time | 2026-10-24: B (81), 17 tools |
Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.
Tools: list_music_boxes search_songs get_song validate_melody fit_melody_to_box list_products create_song add_version list_my_songs set_song_visibility delete_song export_song render_audio import_midi get_product_options prepare_order get_order_status
list_music_boxes | 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. params: none |
search_songs | 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. params: query, box, page, page_size |
get_song | 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. params: song_id*, box, claim_token |
validate_melody | 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. params: box*, bpm*, notes*, illegal_threshold_ticks, snap_beats |
fit_melody_to_box | 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. params: box*, bpm*, notes*, illegal_threshold_ticks, target_box, strategy, quantize_beats |
list_products | 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. params: none |
create_song | 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 params: name*, artist*, description, tags, box*, bpm*, notes*, illegal_threshold_ticks, save_to_my_account |
add_version | 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. params: song_id*, claim_token, box*, bpm*, notes*, illegal_threshold_ticks |
list_my_songs | Lists the signed-in person's songs on Musicboxmelodies, newest first, including private ones. Requires signing in. params: page, page_size |
set_song_visibility | 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. params: song_id*, visibility*, confirmed |
delete_song | 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. params: song_id*, claim_token, confirmed |
export_song | 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. params: song_id*, box, format*, strip_shape, grid, show_title |
render_audio | 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 params: song_id, claim_token, box, bpm, notes, illegal_threshold_ticks, sound |
import_midi | 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. params: midi_base64*, box |
get_product_options | 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. params: product* |
prepare_order | 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. params: product*, variation_id*, song_name*, song_artist*, time*, reference_link, note_count, theme, existing_tune |
get_order_status | 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. params: order_id |
Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.