get_midi_info
Extract metadata and track details from a MIDI file by specifying its absolute file path.
Instructions
Get midi file info
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Absoulate File Path to midi file |
Implementation Reference
- src/main.ts:41-64 (handler)The 'get_midi_info' tool handler: registers via server.tool(), takes filePath input, loads the MIDI file using loadMidiFile, extracts header JSON, track count, duration, and durationTicks, then returns them as a JSON string.
server.tool( 'get_midi_info', 'Get midi file info', { filePath: z.string().describe('Absoulate File Path to midi file'), }, withErrorHandling(({ filePath }) => { const midi = loadMidiFile(filePath) const midiInfo = { header: midi.header.toJSON(), tracksCount: midi.tracks.length, duration: midi.duration, durationTicks: midi.durationTicks, } return { content: [ { type: 'text', text: JSON.stringify(midiInfo), }, ] } }) - src/main.ts:44-46 (schema)Input schema for 'get_midi_info': accepts a single required string parameter 'filePath' (absolute path to a MIDI file).
{ filePath: z.string().describe('Absoulate File Path to midi file'), }, - src/main.ts:41-65 (registration)The tool is registered via server.tool() with the name 'get_midi_info' and a description 'Get midi file info'.
server.tool( 'get_midi_info', 'Get midi file info', { filePath: z.string().describe('Absoulate File Path to midi file'), }, withErrorHandling(({ filePath }) => { const midi = loadMidiFile(filePath) const midiInfo = { header: midi.header.toJSON(), tracksCount: midi.tracks.length, duration: midi.duration, durationTicks: midi.durationTicks, } return { content: [ { type: 'text', text: JSON.stringify(midiInfo), }, ] } }) ) - src/utils/file-util.ts:5-9 (helper)Helper function loadMidiFile used by the handler to read and parse the MIDI file from disk using @tonejs/midi library.
export function loadMidiFile(filePath: string) { const midiData = fs.readFileSync(filePath) const midi = new Midi(midiData) return midi }