Cirklon MIDI控制服务

通过USB MIDI控制Sequentix Cirklon硬件MIDI音序器的MCP服务器,支持传输控制、场景选择、音符发送、SysEx通信等功能。

  • by Ziforge
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Ziforge/cirklon-mcp

使用说明

cirklon-mcp

MCP server for controlling a Sequentix Cirklon hardware MIDI sequencer from Claude Code (or any MCP client) over USB MIDI.

The Cirklon is a class-compliant USB MIDI device with 6 ports — no drivers needed.

Features

  • Transport — Start, Stop, Continue, MIDI Clock sender
  • Scene/Song — Select scenes (0-127), transpose, program change with bank select
  • Notes & CCs — Send notes, chords, CCs, pitch bend, aftertouch to any channel
  • Musical Helpers — Chord sender, CC sweep/ramp, NRPN/RPN, raw MIDI
  • Recording — Send timed note sequences and CC automation streams for real-time recording
  • SysEx — Send/receive raw SysEx, full memory dump backup
  • Monitor — Log and filter incoming MIDI from the Cirklon
  • Safety — All Notes Off, full MIDI panic (reset all channels + stop)

31 tools across 10 categories.

Requirements

  • Python 3.11+
  • uv
  • Sequentix Cirklon connected via USB

Setup

# Clone
git clone https://github.com/Ziforge/cirklon-mcp.git
cd cirklon-mcp

# Install dependencies
uv sync

# Configure (optional — can also connect manually via tools)
cp .env.example .env
# Edit .env with your port names

Register with Claude Code

claude mcp add --scope user cirklon-midi -- uv run --directory ~/Dev/cirklon-mcp server.py

Usage

Once registered, use natural language in Claude Code:

"List available MIDI ports"
"Connect to the Cirklon"
"Start playback"
"Select scene 5"
"Send a C major chord on channel 1"
"Sweep filter cutoff (CC74) from 0 to 127 over 2 seconds on channel 3"
"Start monitoring MIDI input"
"Show me the last 20 MIDI messages"
"MIDI panic — kill all notes"
"Back up the Cirklon via SysEx dump"
"What's the current status?"

Tools Reference

Category Tool Description
Connection list_midi_ports List available MIDI I/O ports
connect_cirklon Connect by port name or index
disconnect_cirklon Disconnect
Transport transport_start MIDI Start (0xFA)
transport_stop MIDI Stop (0xFC)
transport_continue MIDI Continue (0xFB)
send_clock Send MIDI clock at BPM
Scene select_scene Program Change on remote channel
set_transpose Note On on remote channel
send_program_change PC + optional bank select
Note/CC send_note Note On, wait, Note Off
send_cc Control Change message
send_pitch_bend 14-bit pitch bend
send_aftertouch Channel pressure
send_poly_aftertouch Per-note pressure
Recording record_notes Timed note sequence
record_cc_stream CC automation stream
SysEx send_sysex Raw SysEx (auto-frames F0/F7)
receive_sysex Listen for incoming SysEx
sysex_dump_receive Full memory dump to .syx file
Monitor start_midi_monitor Begin logging input
stop_midi_monitor Stop logging
get_midi_log Retrieve recent messages
Safety all_notes_off CC#123 on one or all channels
midi_panic Full reset: notes off + controllers + stop
Status query_status Connection, monitor, clock, config
Helpers send_chord Multiple notes simultaneously
sweep_cc Ramp CC from start to end value
send_nrpn Non-Registered Parameter Number
send_rpn Registered Parameter Number
send_raw Raw MIDI bytes (power users)

Cirklon Configuration

Set the remote control channel in Cirklon: GLOBAL > MIDI > REMOTE CH (default: 16).

For SysEx dumps: GLOBAL > SYSEX > SEND on the Cirklon, then use sysex_dump_receive tool.

License

MIT