fcp-midi
Allows composing music semantically by describing musical intent (notes, chords, dynamics, tempo changes) and rendering it into standard MIDI files.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@fcp-midiCompose electronic music with sub-bass and arpeggios, save as track.mid"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
fcp-midi
MCP server for semantic MIDI composition.
What It Does
fcp-midi lets LLMs compose music by describing musical intent -- notes, chords, dynamics, tempo changes -- and renders it into standard MIDI files. Instead of manipulating raw bytes or MIDI events, the LLM works with operations like note Bass E2 at:1.1 dur:quarter vel:90 and crescendo @track:Lead vel:45-75 @range:3.1-6.4. Built on the FCP framework; a mido.MidiFile is the source of truth throughout, so there's no separate serialization step.
Related MCP server: Vibe Composer MIDI MCP
Quick Example
midi_session('new "Voltage Drop" tempo:140 key:E-minor')
midi([
'note Drums kick at:1.1 dur:eighth vel:100',
'note Bass E2 at:1.1 dur:quarter vel:90',
'chord Pad Em at:1.1 dur:whole vel:70',
'crescendo @track:Lead vel:45-75 @range:3.1-6.4',
'tempo 174 at:11.1',
])
midi_session('save as:./voltage_drop.mid')Available MCP Tools
Tool | Purpose |
| Batch mutations -- notes, chords, tracks, tempo, dynamics, copy/transpose |
| Inspect the composition -- map, tracks, events, piano-roll, instruments, find |
| Lifecycle -- new, open, save, checkpoint, undo, redo |
| Full reference card |
Hero Examples
Plumber's Journey -- Classic game theme faithfully recreated: 4 tracks, 288 notes, 16 seconds, 180 BPM.
Voltage Drop -- A drum-and-bass track with tempo acceleration (140 -> 155 -> 174 BPM), 5 tracks, breakbeats, sub-bass, arpeggios, and a signature DROP section. Also used in the FCP vs raw Python agent battle -- FCP produced 1,674 notes across 12 tracks in 87 seconds, compared to 694 notes from ~689 lines of hand-written Python.
See docs/examples/ for MIDI files and the full writeup.
Installation
Requires Python >= 3.11.
pip install fcp-midiMCP Client Configuration
{
"mcpServers": {
"midi": {
"command": "uv",
"args": ["run", "python", "-m", "fcp_midi"]
}
}
}Architecture
Mido-native — no parallel semantic model between the op handlers and the file format:
MCP Server (fcp-core create_fcp_server + MidiAdapter)
Parses op strings, dispatches to verb handlers, session lifecycle
|
MidiModel (mido.MidiFile is the source of truth)
Op handlers read/write mido messages directly on the tracks;
a NoteIndex gives fast selector lookups. Undo/redo and batch
atomicity are byte snapshots of the file, not event replay.Key features:
Instrument library -- GM instruments by name (
acoustic-grand-piano,synth-bass-1,standard-kit)Soundfont support -- Load custom instrument banks
Beat addressing --
at:1.1(bar 1, beat 1),at:3.2.240(bar 3, beat 2, tick 240)Duration vocabulary --
whole,half,quarter,eighth,sixteenth,tripletDynamics --
crescendo,diminuendoacross rangesCopy/transpose -- Duplicate and shift musical phrases
Development
uv sync
uv run pytest # 620 tests
uv run pytest -m "not slow" # skip stress tests (604 tests, ~0.25s)
uv run ruff check # linting
uv run pyright # type checkingLicense
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA MIDI composition system that enables AI assistants to create music through FluidSynth, with capabilities for playing notes, creating melodies, managing tracks, and exporting audio.1
- AlicenseCqualityDmaintenanceEnables LLMs to compose and play multi-track MIDI music through natural language prompts. Supports outputting to software or hardware synthesizers for enhanced audio quality.26624MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI-assisted music composition through copyable pattern templates, style constraints, and arrangement tools that compile to MIDI files. Provides 30+ tools for managing musical structures, layers, patterns, and styles with deterministic compilation from YAML arrangements.1MIT
- AlicenseAqualityFmaintenanceEnables AI-driven MIDI composition with chord name support, interactive piano-roll preview, and multiple deployment modes.251MIT
Related MCP Connectors
Deterministic music theory for agents: analyze, voice, reharmonize, conduct — computed, not guessed
Generate AI music via the Lacuna Music API from MCP clients like Claude Desktop & Code.
Generate images, video, music and voice from your CLI or AI agent. On-brand AI media toolkit.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/os-tack/fcp-midi'
If you have feedback or need assistance with the MCP directory API, please join our Discord server