The host supplies the file descriptor. Start the task once, keep its task identifier, and query that task for its status and artifacts. The following is an illustrative request and response, not a live job.
MCP: start_sheet_music_conversion + get_sheet_music_conversion
Your MCP host passes the attached score as a file descriptor. start_sheet_music_conversion submits the task; get_sheet_music_conversion retrieves its status and output files.
PDF, PNG, JPG → MIDI, MXL
Parameters
file — host-provided file descriptoroutput_formats — requested outputs, for example ["midi", "mxl"]preprocess — optional preparation for the attached score
// MCP Tool Call (handled automatically by your AI agent)
{
"tool": "start_sheet_music_conversion",
"arguments": {
"file": {
"file_id": "host_uploaded_score_123",
"download_url": "https://host.example/files/score.pdf",
"file_name": "score.pdf",
"mime_type": "application/pdf"
},
"client_request_id": "chatgpt-score-0001",
"output_formats": ["midi", "mxl"]
}
}
// Poll until the job is complete
{
"tool": "get_sheet_music_conversion",
"arguments": {"task_id": "task_abc123456789"}
}
// Completed response (abridged)
{
"task_id": "task_abc123456789",
"status": "succeeded",
"artifacts": [
{"type": "midi", "file_name": "score.mid", "download_url": "https://..."},
{"type": "mxl", "file_name": "score.mxl", "download_url": "https://..."}
]
}