phase8-mcp
MCP server for the Korg Phase 8 acoustic synthesizer that enables triggering resonators, controlling per-resonator knobs, and modulating global parameters over USB MIDI.
README
phase8-mcp
MCP server for the Korg Phase 8 acoustic synthesizer. Wraps the MIDI implementation documented in the phase 8 owner's manual v1.00 (2025-11-20) so a Model Context Protocol client (Claude Code, Cursor, Continue, etc.) can trigger resonators, drive per-resonator knobs, and modulate globals over USB MIDI.
Written by Ziforge as part of the superclean-collaboration livecoding
rig at EMS Stockholm. Companion to the other Ziforge MCPs for
Eurorack + hardware synths — see Related MCPs below.
MIDI implementation covered
Direct from section 12.0 (MIDI Implementation Chart) of the phase 8 owner's manual:
| Feature | MIDI | Notes |
|---|---|---|
| 8 resonator triggers | Notes 36-43 (C2..G2) | one note per resonator, left→right |
| Per-resonator Velocity knob | CC 12-19 | resonator 1..8 |
| Per-resonator Envelope knob | CC 20-27 | resonator 1..8 |
| Mod Depth | CC 28 | 0..127 |
| Mod Rate | CC 29 | 0..127 |
| Air slider | CC 30 | 0..127 |
| Tempo (Internal) | CC 31 | 0..127 |
| Shift | CC 90 | 0..127 |
| Mod Type | CC 92 | 0 = Pitch Env, 1 = Vibrato |
| All Sound Off | CC 120 | silence all |
| Reset All Controllers | CC 121 | reset all CCs |
| Program Change | 0-7 | one of the 8 patches |
| SysEx | Korg exclusive + Inquiry | via send_raw_sysex |
Not implemented (Phase 8 doesn't respond to them):
- Aftertouch (Key's or Channel)
- Pitch Bend
Tools
| Category | Tools |
|---|---|
| Connection | list_midi_ports, connect_phase8(port_pattern, channel), disconnect_phase8, set_channel(channel) |
| Notes | trigger_resonator(resonator, velocity, duration_ms), release_resonator(resonator), strum(from_res, to_res, velocity, step_ms) |
| Per-resonator CCs | set_velocity_knob(resonator, value), set_envelope_knob(resonator, value) |
| Global CCs | set_mod_depth, set_mod_rate, set_air, set_tempo, set_shift, set_mod_type(mod_type='vibrato') |
| Master | all_sound_off, reset_all_controllers, program_change(program) |
| Escape hatches | send_raw_sysex(hex_bytes), send_cc(controller, value) |
Install
From PyPI (once published) or directly from GitHub:
pip install git+https://github.com/Ziforge/phase8-mcp
Or in a checkout:
git clone https://github.com/Ziforge/phase8-mcp
cd phase8-mcp
pip install -e .
Auto-connects on startup to any MIDI port whose name contains
phase8. Override with connect_phase8(port_pattern="...", channel=N).
Wiring it into Claude Code
{
"mcpServers": {
"phase8": {
"command": "phase8-mcp"
}
}
}
Example prompts (for the MCP client)
- "Play a slow strum across all 8 resonators, 100 ms per note"
- "Set resonator 5's envelope knob to 80 and its velocity to 60"
- "Change to patch 3, then trigger resonator 1 for 2 seconds"
- "Enable vibrato mod at depth 90, rate 40"
Related MCPs
Ziforge maintains several MCP servers for the hardware in the same livecoding rig — all follow the same shape (FastMCP + python-rtmidi, auto-connect by port-name substring, typed helpers for the top of the MIDI chart plus escape hatches for the rest):
| MCP | For |
|---|---|
disting-nt-mcp |
Expert Sleepers Disting NT |
fh2-mcp |
Expert Sleepers FH-2 MIDI-to-CV |
es9-mcp |
Expert Sleepers ES-9 audio interface |
erae-mcp |
Embodme ERAE Touch II |
cirklon-mcp |
Sequentix Cirklon sequencer |
elektron-mcp |
fork of zerubeus/elektron-mcp — Digitone, Digitakt, etc. |
Contributing
Pull requests welcome. Suggested workflow:
- Fork + branch.
pip install -e .[dev](once dev extras land) or just install the base deps and run against a physical Phase 8 or via a virtual MIDI port for smoke testing.- If you're adding a Korg SysEx opcode or an undocumented CC that the manual doesn't cover, cite the source (community wiki, forum thread, sniffed capture) so future maintainers can reproduce.
- Keep the style consistent with the other Ziforge MCPs — one
server.pywith FastMCP tools, apyproject.toml, a README with the MIDI table + tools table.
Attribution
MIDI implementation chart transcribed from the phase 8 owner's manual v1.00 (Korg, 2025-11-20), section 12.0. Manual PDF available from Korg's support page for the Phase 8.
License
GPL v2. See LICENSE.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.