Cover image
Try Now
2025-04-07

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.

3 years

Works with Finder

1

Github Watches

0

Github Forks

7

Github Stars

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小節の合唱曲を作って。
若干マイナー調で、メロディックな音階を作ってほしい

https://github.com/user-attachments/assets/e20ebef0-fdbf-4e72-910d-41b94183f9d9

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.

相关推荐

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • https://maiplestudio.com
  • Find Exhibitors, Speakers and more

  • Lists Tailwind CSS classes in monospaced font

  • lumpenspace
  • Take an adjectivised noun, and create images making it progressively more adjective!

  • https://appia.in
  • Siri Shortcut Finder – your go-to place for discovering amazing Siri Shortcuts with ease

  • Carlos Ferrin
  • Encuentra películas y series en plataformas de streaming.

  • Yusuf Emre Yeşilyurt
  • I find academic articles and books for research and literature reviews.

  • tomoyoshi hirata
  • Sony α7IIIマニュアルアシスタント

  • apappascs
  • Discover the most comprehensive and up-to-date collection of MCP servers in the market. This repository serves as a centralized hub, offering an extensive catalog of open-source and proprietary MCP servers, complete with features, documentation links, and contributors.

  • ShrimpingIt
  • Micropython I2C-based manipulation of the MCP series GPIO expander, derived from Adafruit_MCP230xx

  • jae-jae
  • MCP server for fetch web page content using Playwright headless browser.

  • ravitemer
  • A powerful Neovim plugin for managing MCP (Model Context Protocol) servers

  • patruff
  • Bridge between Ollama and MCP servers, enabling local LLMs to use Model Context Protocol tools

  • pontusab
  • The Cursor & Windsurf community, find rules and MCPs

  • av
  • Effortlessly run LLM backends, APIs, frontends, and services with one command.

  • WangRongsheng
  • 🧑‍🚀 全世界最好的LLM资料总结(Agent框架、辅助编程、数据处理、模型训练、模型推理、o1 模型、MCP、小语言模型、视觉语言模型) | Summary of the world's best LLM resources.

  • Mintplex-Labs
  • The all-in-one Desktop & Docker AI application with built-in RAG, AI agents, No-code agent builder, MCP compatibility, and more.

  • modelcontextprotocol
  • Model Context Protocol Servers

    Reviews

    2 (1)
    Avatar
    user_Fl0Viqy0
    2025-04-17

    The midi-mcp-server by tubone24 is an excellent tool for any MCP application enthusiast. It offers seamless integration and efficient MIDI management, enhancing productivity and control. The repository's clear documentation and user-friendly interface make it accessible and easy to implement. Highly recommended for anyone looking to simplify and improve their MCP workflows!