Sonic Pi MCP

Integrations

  • Supports playing notes using MIDI note numbers (0-127), enabling programmatic music composition through standard MIDI note representations.

  • Required as a prerequisite for running the MCP server, which enables communication between AI tools and Sonic Pi.

  • Allows execution of Ruby code in Sonic Pi, enabling music creation and control through Ruby's syntax and Sonic Pi's musical capabilities.

소닉 파이 MCP

AI 어시스턴트가 OSC 메시지를 통해 Sonic Pi와 상호 작용할 수 있도록 하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이를 통해 Claude와 Cursor와 같은 AI 도구가 음악을 제작하고 Sonic Pi를 프로그래밍 방식으로 제어할 수 있습니다.

특징

  • 사용자 정의 가능한 신디사이저 매개변수로 개별 음표 연주
  • 임의의 Sonic Pi 코드 실행
  • 모든 MCP 호환 클라이언트(Claude Desktop, Cursor 등)와 호환됩니다.

필수 조건

  • Node.js (v18 이상)
  • 소닉 파이 (v4.0 이상)
  • MCP 호환 클라이언트(Cursor, Claude Desktop 등)

소닉 파이 구성

MCP 서버를 사용하기 전에 Sonic Pi 버퍼에 다음 코드를 추가해야 합니다. 이 코드는 서버에서 전송되는 OSC 메시지를 처리합니다.

지엑스피1

MCP 서버를 사용하기 전에 Sonic Pi에서 이 코드가 실행되고 있는지 확인하세요.

클라이언트와의 통합

커서

~/.cursor/mcpServers.json 에 추가:

{ "mcpServers": { "sonic_pi_mcp": { "name": "Sonic Pi MCP", "command": "npx", "args": ["-y", "sonic-pi-mcp", "start"], "transport": { "type": "stdio" } } } }

클로드 데스크탑

Claude의 MCP 구성에 추가:

{ "mcpServers": { "sonic_pi_mcp": { "command": "npx", "args": ["-y", "sonic-pi-mcp", "start"] } } }

사용 가능한 도구

플레이노트

사용자 정의 가능한 매개변수로 단일 음을 재생합니다.

매개변수:

  • note (필수): MIDI 음표 번호(0-127)
  • synth (선택 사항): 사용할 신스(예: ":saw", ":beep", ":prophet")
  • sustain (선택 사항): 음표 지속 시간(초)(기본값: 1)
  • cutoff (선택 사항): 필터 차단 주파수(기본값: 100)

예:

// Play middle C with saw wave synth { "name": "play_note", "parameters": { "note": 60, "synth": ":saw", "sustain": 0.5, "cutoff": 80 } }

실행 코드

임의의 Sonic Pi 코드를 실행합니다.

매개변수:

  • code (필수): 실행할 Sonic Pi 코드

예:

{ "name": "run_code", "parameters": { "code": "use_synth :prophet\nplay_pattern_timed [60, 64, 67], [0.5]" } }

사용 예

MCP 도구를 사용한 몇 가지 상호작용 예는 다음과 같습니다.

심플 멜로디

// Play a C major arpeggio { "code": ` use_synth :piano play_pattern_timed [60, 64, 67, 72], [0.25], release: 0.1 ` }

복잡한 패턴

// Create a rhythmic pattern { "code": ` live_loop :rhythm do use_synth :tb303 play choose(chord(:C3, :minor)), release: 0.2, cutoff: rrand(60, 120) sleep 0.25 end ` }

문제 해결

  1. 소리 없음
    • Sonic Pi가 실행 중인지 확인하세요
    • Sonic Pi에서 OSC 핸들러 코드가 실행 중인지 확인하세요.
    • Sonic Pi가 포트 4560(기본값)에서 수신 중인지 확인하세요.
  2. 연결 오류
    • 서버의 다른 인스턴스가 실행 중인지 확인하세요
    • 소닉 파이 재시작
    • 다른 애플리케이션이 포트 4560을 사용하고 있지 않은지 확인하세요.
  3. 코드 실행 오류
    • 오류 메시지는 Sonic Pi 로그 창에서 확인하세요.
    • Sonic Pi 코드의 구문을 확인하세요
    • 필요한 모든 합성 및 샘플을 사용할 수 있는지 확인하세요.

개발

# Clone the repository git clone https://github.com/abhishekjairath/sonic-pi-mcp.git cd sonic-pi-mcp # Install dependencies npm install # Build npm run build # Install MCP Inspector globally (for testing) npm install -g @modelcontextprotocol/inspector # Start Sonic Pi and run the OSC handler code (see Sonic Pi Configuration section) # Start the server in one terminal npm run dev # In another terminal, start the MCP Inspector mcp-inspector

MCP Inspector로 테스트

  1. 브라우저를 열고 http://localhost:3000 으로 이동하세요.
  2. MCP Inspector UI에서 연결을 구성합니다.
    • 명령어: node
    • 인수: dist/server.mjs
    • 작업 디렉토리: /path/to/your/sonic-pi-mcp (실제 프로젝트 경로 사용)
    • 전송 유형: stdio
  3. play_note 도구를 테스트해 보세요.
{ "name": "play_note", "parameters": { "note": 60, "synth": ":beep", "sustain": 0.5 } }
  1. run_code 도구를 테스트하세요.
{ "name": "run_code", "parameters": { "code": "use_synth :prophet\nplay_pattern_timed scale(:c4, :major), [0.25]" } }
  1. 오류 메시지나 출력이 있는지 Sonic Pi 로그 창을 확인하세요.

개발 문제 해결

  1. 빌드 오류
    • npm run build 실행하고 TypeScript 오류를 확인하세요.
    • 모든 종속성이 올바르게 설치되었는지 확인하세요
    • tsconfig.json 에서 적절한 구성을 확인하세요.
  2. MCP 검사기 연결 문제
    • 서버가 실행 중인지 확인하세요( npm run dev )
    • 작업 디렉토리 경로가 올바른지 확인하세요
    • 서버의 다른 인스턴스가 실행되고 있지 않은지 확인하세요.
  3. OSC 커뮤니케이션 문제
    • Sonic Pi가 실행 중이고 OSC 핸들러 코드가 활성화되어 있는지 확인하세요.
    • 연결 오류가 있는지 서버 로그를 확인하세요.
    • 포트 4560이 사용 가능하고 차단되지 않았는지 확인하세요.

기여하다

  1. 저장소를 포크하세요
  2. 기능 브랜치를 생성합니다( git checkout -b feature/amazing-feature )
  3. 변경 사항을 커밋하세요( git commit -m 'Add some amazing feature' )
  4. 브랜치에 푸시( git push origin feature/amazing-feature )
  5. 풀 리퀘스트 열기

특허

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.

-
security - not tested
A
license - permissive license
-
quality - not tested

Claude와 Cursor와 같은 AI 어시스턴트가 OSC 메시지를 통해 음악을 제작하고 Sonic Pi를 프로그래밍 방식으로 제어할 수 있게 해주는 모델 컨텍스트 프로토콜 서버입니다.

  1. Features
    1. Prerequisites
      1. Sonic Pi Configuration
        1. Integration with Clients
          1. Cursor
          2. Claude Desktop
        2. Available Tools
          1. play_note
          2. run_code
        3. Example Usage
          1. Simple Melody
          2. Complex Pattern
        4. Troubleshooting
          1. Development
            1. Testing with MCP Inspector
            2. Troubleshooting Development Issues
          2. Contributing
            1. License
              ID: 5scbvmkwup