Recognize sheet music
recognize_sheet_musicRecognize a PDF or image of sheet music and return its MusicXML with a summary (pages, parts, measures, warnings). Give exactly one of url, attachment, file_base64 or path. A file on the user's own machine (a remote server cannot read it, and a PDF is too big for base64): use get_upload_link instead. Calls the ScanSing API, see https://scansing.app/mcp/.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | http(s) URL of a PDF or image of sheet music | |
| mode | No | merged (default): one MusicXML; collection: a songbook, one MusicXML per number (see files) | |
| path | No | local file path; only when this server runs on the same machine (stdio) | |
| pages | No | PDF pages to recognize, e.g. '3' or '3-5' | |
| labels | No | write each note's name under it as a lyric line: letters (C♯, B♭), solfege-fixed (Do…Si, Do is always C), movable-do (Do is the tonic), degrees (1…7 of the scale, ♭3) or kalimba (the tines' numbers); default none | |
| save_to | No | local path to write the MusicXML to (stdio only); default: next to `path` | |
| filename | No | name for the score, e.g. 'hosanna.pdf' | |
| attachment | No | a PDF or image the user attached to the chat (ChatGPT fills this in: download_url, file_name) | |
| labels_key | No | with labels movable-do, degrees or kalimba: the key they count from, e.g. 'E minor'; default: read off the music | |
| file_base64 | No | the file itself, base64 (a data: URL is fine) | |
| include_musicxml | No | return the MusicXML text inline; default: when it is small and not saved to a file |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||