Fire in da houseTop Tip:Paying $100+ per month for Perplexity, MidJourney, Runway, ChatGPT and other tools is crazy - get all your AI tools in one site starting at $15 per month with Galaxy AI Fire in da houseCheck it out free

midi-mcp-server

MCP.Pizza Chef: tubone24

MIDI MCP Server is a Model Context Protocol server that enables AI models to create MIDI files from structured text-based music data. It provides a standardized interface for programmatic musical composition generation, allowing seamless integration with MCP clients to produce MIDI outputs from JSON or other structured music representations.

Use This MCP server To

Generate MIDI files from structured JSON music data Integrate MIDI generation into AI-driven music composition workflows Automate creation of musical pieces from text descriptions Enable AI models to produce programmatic music outputs Use with MCP clients to add music generation capabilities Convert textual music notation into playable MIDI files

README

MseeP.ai Security Assessment Badge

Verified on MseeP

MIDI MCP Server

Overview

MIDI MCP Server is a Model Context Protocol (MCP) server that enables AI models to generate MIDI files from text-based music data. This tool allows for programmatic creation of musical compositions through a standardized interface.

mid

Installation

npm install
npm run build

Usage with MCP Clients (e.g., Cline)

After building the project, simply add the server to your MCP client configuration:

"mcpServers": {
    "musicComposer": {
        "command": "node",
        "args": ["/path/to/midi-mcp-server/build/index.js"]
    }
}

Replace /path/to/ with the actual path to your project directory.

Features

  • Generate MIDI files from structured JSON music data
  • Support for multiple tracks and instruments
  • Customizable tempo, time signature, and note properties
  • Save MIDI files to specified locations

Tool: create_midi

The server provides a tool called create_midi that generates MIDI files from structured music data.

Input Parameters

  • title: String - The title of the composition
  • composition: String - A JSON string representing the music data
  • output_path: String - Path where the MIDI file will be saved

Composition Format

The composition should follow this structure:

{
  "bpm": number,
  "timeSignature": { "numerator": number, "denominator": number },
  "tracks": [
    {
      "name": string,
      "instrument": number,
      "notes": [
        { "pitch": number, "startTime": number, "duration": number, "velocity": number }
      ]
    }
  ]
}

Properties

  • bpm: Tempo in beats per minute
  • timeSignature: Time signature (e.g., {numerator: 4, denominator: 4} for 4/4 time)
  • tracks: Array of instrument tracks
    • name: Track name
    • instrument: MIDI program number (0-127)
    • notes: Array of note objects
      • pitch: MIDI note number (0-127)
      • startTime: Start time in beats
      • duration: Note duration in beats
      • velocity: Note velocity/volume (0-127)

Example

const composition = {
  "bpm": 120,
  "timeSignature": { "numerator": 4, "denominator": 4 },
  "tracks": [
    {
      "name": "Piano",
      "instrument": 0,
      "notes": [
        { "pitch": 60, "startTime": 0, "duration": 1, "velocity": 100 },
        { "pitch": 64, "startTime": 1, "duration": 1, "velocity": 100 },
        { "pitch": 67, "startTime": 2, "duration": 1, "velocity": 100 }
      ]
    }
  ]
};

Dependencies

  • @modelcontextprotocol/sdk: MCP server implementation
  • midi-writer-js: Library for creating MIDI files

Demo

For example, the prompt below, which is a request to create a minor scale 8-bar choral piece, can be processed by the server:

8小節の合唱曲を作って。
若干マイナー調で、メロディックな音階を作ってほしい
2.mp4

melodic_minor_chorus.mid

Note on Local Execution

This MCP server runs locally and communicates via standard input/output (stdio). No network configuration is required as the MCP client will automatically start the server process and establish communication.

midi-mcp-server FAQ

How do I install the MIDI MCP Server?
Install via npm with 'npm install' and build using 'npm run build'.
How do I integrate the MIDI MCP Server with an MCP client?
Add the server command and path to your MCP client's configuration under 'mcpServers'.
What input format does the MIDI MCP Server accept?
It accepts structured JSON or text-based music data to generate MIDI files.
Can the MIDI MCP Server be used with different LLM providers?
Yes, it works with any MCP client connected to models like OpenAI, Claude, or Gemini.
Is the MIDI MCP Server suitable for real-time music generation?
It is designed for programmatic generation, which can be integrated into real-time workflows depending on client implementation.
Does the server support customization of MIDI parameters?
Yes, users can specify various musical attributes through the structured input data.
Where can I find security assessments for the MIDI MCP Server?
Security badges and assessments are available on the MseeP.ai platform linked in the documentation.