본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 06. 15. 10:09

reaper-reapy-mcp: MCP를 이용한 REAPER DAW 제어용 Python 애플리케이션

요약

Model Context Protocol(MCP)을 활용하여 REAPER DAW를 제어할 수 있는 Python 애플리케이션입니다. 트랙, FX, 프로젝트 및 MIDI/오디오 아이템 관리 기능을 AI 어시스턴트가 수행할 수 있도록 지원합니다.

핵심 포인트

  • MCP를 통해 AI 어시스턴트가 REAPER DAW를 직접 제어 가능
  • 트랙 관리, FX 제어, MIDI 및 오디오 아이템 조작 기능 제공
  • 시간(초) 및 마디:박자 표기법을 모두 지원하는 이중 위치 형식 적용
  • Python 기반의 현대적인 패키징(pyproject.toml) 및 uv 지원

MCP(Model Context Protocol)를 사용하여 REAPER Digital Audio Workstation (DAW)를 제어하기 위한 Python 애플리케이션입니다.

트랙 관리 (Track Management): 트랙 생성, 이름 변경 및 색상 지정
FX 관리 (FX Management): 이펙트 추가, 제거 및 파라미터 제어
프로젝트 제어 (Project Control): 템포 설정, 리전(region) 및 마커(marker) 관리
마스터 트랙 제어 (Master Track Control): 볼륨, 팬(pan), 뮤트(mute) 및 솔로(solo) 작업
MIDI 작업 (MIDI Operations): 아이템 생성, 노트 추가/가져오기, 음악적 위치를 이용한 아이템 삭제
오디오 아이템 작업 (Audio Item Operations): 삽입, 복제, 향상된 위치 지정 지원을 통한 수정
이중 위치 형식 (Dual Position Format): 시간(초) 및 마디:박자(measure:beat) 표기법 모두 지원
신뢰할 수 있는 복제 (Reliable Duplication): 정확한 아이템 복사를 위해 REAPER의 내장 명령 사용
MCP 통합 (MCP Integration): AI 어시스턴트 제어를 위한 Model Context Protocol 서버

  • Python 3.7+
  • REAPER DAW
    python-reapy

Python 모듈
mcp[cli]

MCP 서버용 패키지

  • 인터넷 연결 (샘플 오디오 파일 다운로드용)

  • 아직 설치하지 않았다면 REAPER를 설치하세요

  • REAPER 스크립팅을 통해 reapy 서버를 활성화하세요. reaper_side_enable_server.py를 REAPER 액션에 추가하고 REAPER 스튜디오 내부에서 실행하세요

  • 패키지 설치:

PyPI에서 설치: pip install reaper_reapy_mcp

GitHub 저장소에서 설치: pip install git+https://github.com/wegitor/reaper-reapy-mcp.git

  • REAPER에서 Python을 활성화하세요

Wheel 패키지에는 필요한 모든 종속성이 포함되어 있으며, REAPER 통합이 필요한 다른 Python 프로젝트에서 사용할 수 있습니다. 이 프로젝트는 더 나은 종속성 관리와 빌드 시스템 구성을 제공하는 현대적인 Python 패키징 설정인 pyproject.toml을 사용합니다.

애플리케이션은 오디오 작업을 테스트하기 위해 샘플 MP3 파일을 사용합니다. 파일은 필요할 때 다음에서 자동으로 다운로드됩니다:

이것은 오디오 애플리케이션 테스트에 흔히 사용되는 짧은 스타워즈(Star Wars) 테마 클립입니다.

uv를 사용하여 서버를 직접 실행할 수 있습니다:

uv --directory <project_path> run -m reaper_reapy_mcp

예를 들어, Windows의 경우:

uv --directory C:\path\to\reaper_reapy_mcp run -m reaper_reapy_mcp

또는 설치 후 Python 모듈을 직접 사용하기:

python -m reaper_reapy_mcp

test_mcp.bat

사용 가능한 MCP 도구:

test_connection
: REAPER와의 연결 확인

create_track
: 새 트랙 생성

rename_track
: 기존 트랙 이름 변경

set_track_color
: 트랙 색상 설정

get_track_color
: 트랙 색상 가져오기

get_track_count
: 프로젝트 내 트랙 수 가져오기

get_track_list
: 속성을 포함한 모든 트랙 목록 가져오기

add_fx
: 트랙에 FX (이펙트) 추가

remove_fx
: 트랙에서 FX (이펙트) 제거

set_fx_param
: FX 파라미터 값 설정

get_fx_param
: FX 파라미터 값 가져오기

get_fx_param_list
: FX 파라미터 목록 가져오기

get_fx_list
: 트랙의 FX 목록 가져오기

get_available_fx_list
: 사용 가능한 FX 플러그인 목록 가져오기

toggle_fx
: FX 활성화/비활성화 상태 전환

set_tempo
: 프로젝트 템포 (Tempo) 설정

get_tempo
: 현재 템포 가져오기

get_time_signature
: 현재 박자 (Time Signature) 가져오기

set_project_time_signature
: 프로젝트 기본 박자 설정

set_time_signature
: 특정 위치의 박자 설정

create_region
: 리전 (Region) 생성

delete_region
: 리전 삭제

create_marker
: 마커 (Marker) 생성

delete_marker
: 마커 삭제

render_project
: 프로젝트를 오디오 파일로 렌더링 (Render)

get_master_track
: 마스터 트랙 정보 가져오기

set_master_volume
: 마스터 트랙 볼륨 설정

set_master_pan
: 마스터 트랙 팬 (Pan) 설정

toggle_master_mute
: 마스터 트랙 뮤트 (Mute) 상태 전환

toggle_master_solo
: 마스터 트랙 솔로 (Solo) 상태 전환

create_midi_item
: 트랙에 빈 MIDI 아이템 생성 - 시간(초) 및 마디:박자 (measure:beat) 위치 지정 모두 지원

add_midi_note
: MIDI 아이템에 MIDI 노트 추가

add_midi_notes
: 여러 개의 MIDI 노트를 한 번에 추가

get_midi_notes
: MIDI 아이템의 모든 MIDI 노트 가져오기

clear_midi_item
: MIDI 아이템의 모든 MIDI 노트 삭제

insert_audio_item
: 오디오 파일을 미디어 아이템으로 삽입 - 시간(초) 및 마디:박자 (measure:beat) 위치 지정 모두 지원

duplicate_item

: 기존 아이템(MIDI 또는 오디오)을 복제합니다. - 신뢰할 수 있는 복사를 위해 REAPER의 내장 복제 기능을 사용합니다.

  • 시간(초) 및 마디:박자 (measure:beat) 위치 지정 모두 지원

get_item_properties

: 미디어 아이템 (media item)의 속성을 가져옵니다.

set_item_position

: 미디어 아이템의 위치를 설정합니다. - 시간(초) 및 마디:박자 (measure:beat) 위치 지정 모두 지원

set_item_length

: 미디어 아이템의 길이를 설정합니다.

delete_item

: 미디어 아이템을 삭제합니다.

get_items_in_time_range

: 시간 범위 내의 아이템들을 가져옵니다. - 시간(초) 및 마디:박자 (measure:beat) 위치 지정 모두 지원

모든 아이템 작업은 아이템 식별을 위해 순차적 인덱스 시스템 (0..n)을 사용합니다. 이는 스크립트 및 자동화에서 아이템을 다루기 쉽게 만들어 줍니다:

  • 아이템 ID는 0부터 시작하는 인덱스입니다.
  • 각 트랙은 자체적인 아이템 인덱스 시퀀스를 유지합니다.
  • 인덱스는 아이템이 삭제되거나 순서가 변경되기 전까지 안정적으로 유지됩니다.
  • 모든 아이템 작업 (MIDI, 오디오, 속성)은 동일한 인덱싱 시스템을 사용합니다.

많은 MCP 도구들이 이제 향상된 음악적 워크플로우를 위해 이중 위치 형식을 지원합니다:

{
"start_time": 15.5,
"new_time": 30.0
...
{
"start_measure": "3:2,500",
"new_measure": "5:1,000"
...

형식: "measure:beat,fraction"

여기서:

measure

: 1부터 시작하는 마디 번호

beat

: 1부터 시작하는 박자 번호

fraction

: 박자의 소수점 부분을 나타내는 밀리초 (000-999)

  • 예시:
    "4:2,500"

= 4마디, 2박, 반 박자 (500ms)

create_midi_item

  • start_time 또는 start_measure를 통한 위치 지정

insert_audio_item

  • start_time 또는 start_measure를 통한 위치 지정

duplicate_item

  • new_time 또는 new_measure를 통한 위치 지정

set_item_position

  • new_time 또는 new_measure를 통한 위치 지정

get_items_in_time_range

  • 시간 또는 마디 파라미터를 통한 범위 지정
{
"mcpServers": {
"reaper-reapy-mcp": {
...
{
"mcpServers": {
"reaper-reapy-mcp": {
...

또는

{
"mcpServers": {
"reaper-reapy-mcp": {
...

기여는 언제나 환영합니다! 자유롭게 Pull Request를 제출해 주세요.

이 프로젝트는 MIT 라이선스(MIT License) 하에 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0