🧰유용한 MCP 소개
생산성을 높이는 도구들
playwright, filesystem, context7 등 실무에서 유용한 MCP를 소개합니다.
Chapter 14: 유용한 MCP 소개 — 생산성을 높이는 도구들
MCP(Model Context Protocol)는 AI 코딩 에이전트에게 외부 도구를 연결하는 표준 프로토콜입니다. MCP 서버를 설정하면 AI가 파일을 읽고, 브라우저를 조작하고, 데이터베이스를 쿼리하고, 웹을 검색할 수 있습니다. 이 장에서는 가장 유용한 MCP 서버 10가지를 자세히 소개합니다.
MCP는 DAW의 플러그인(VST/AU) 시스템과 같습니다. Ableton 자체로도 음악을 만들 수 있지만, Serum(신시사이저), FabFilter(EQ), Valhalla(리버브) 같은 플러그인을 추가하면 가능성이 무한히 확장됩니다. MCP 서버는 AI에게 새로운 능력을 추가하는 플러그인입니다. 플러그인 없는 DAW가 맨 기타 연주라면, MCP가 연결된 AI는 풀 오케스트라입니다.
14.1 MCP 기본 개념 — 어떻게 작동하는가?
MCP의 구조를 이해하면 설정이 쉬워집니다.
MCP의 3가지 구성요소
- MCP 호스트 — AI CLI 도구 (Claude Code, Codex, Gemini CLI)
- MCP 서버 — 특정 기능을 제공하는 프로그램 (filesystem, playwright 등)
- MCP 프로토콜 — 호스트와 서버 간의 통신 규약 (JSON-RPC 기반)
AI가 "파일을 읽어야겠다"고 판단하면 → MCP 프로토콜로 filesystem 서버에 요청 → 서버가 파일 내용을 반환 → AI가 내용을 활용합니다.
설정 파일 위치
# Claude Code — 프로젝트 루트에 .mcp.json 생성
/your-project/.mcp.json
# Codex — .codex/config.toml 내 [mcp] 섹션
/your-project/.codex/config.toml
# Gemini — .gemini/settings.json 내 mcpServers
/your-project/.gemini/settings.json기본 설정 형식 (Claude Code 기준)
{
"mcpServers": {
"서버이름": {
"command": "실행할 명령어",
"args": ["인자1", "인자2"],
"env": {
"API_KEY": "키값"
}
}
}
}MCP 설정은 DAW에서 플러그인을 VST 폴더에 등록하는 것과 같습니다. Ableton에서 Preferences → Plug-ins → VST Folder를 지정하면 플러그인이 나타나듯이, .mcp.json에 서버를 등록하면 AI가 해당 도구를 사용할 수 있게 됩니다.
14.2 Playwright — 브라우저 자동화
Playwright MCP는 AI가 웹 브라우저를 직접 조작할 수 있게 해줍니다. 웹페이지를 열고, 클릭하고, 스크린샷을 찍고, 폼을 채울 수 있습니다.
설치 및 설정
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-playwright"]
}
}
}주요 기능
- browser_navigate — URL로 이동
- browser_click — 요소 클릭
- browser_fill_form — 폼 입력
- browser_take_screenshot — 화면 캡처
- browser_evaluate — JavaScript 실행
- browser_snapshot — 페이지 구조(접근성 트리) 가져오기
사용 사례
MediaPipe 손동작 인식 웹앱을 만들 때, Playwright로 자동 테스트를 할 수 있습니다. "브라우저를 열고 내 앱에 접속해서, 카메라 권한 팝업이 나오는지, MediaPipe 모델이 로드되는지 스크린샷으로 확인해줘"라고 요청하면 됩니다.
실전 활용 예시
# AI에게 이렇게 요청합니다:
"내 프로젝트를 localhost:3000에서 실행한 뒤,
브라우저로 접속해서 화면이 제대로 나오는지
스크린샷 찍어서 보여줘"
# AI가 수행하는 작업:
# 1. npm run dev로 서버 시작
# 2. Playwright로 localhost:3000 접속
# 3. 스크린샷 캡처
# 4. 문제점 분석 및 수정 제안14.3 Filesystem — 파일 읽기/쓰기
Filesystem MCP는 AI가 지정된 디렉토리 내의 파일을 읽고, 쓰고, 검색할 수 있게 합니다.
설치 및 설정
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@anthropic-ai/mcp-filesystem",
"/home/user/my-project",
"/home/user/reference-docs"
]
}
}
}args에 지정한 디렉토리만 접근 가능합니다. 루트(/)를 지정하면 시스템 전체에 접근할 수 있으므로, 반드시 필요한 디렉토리만 지정하세요. 이것은 DAW의 Sample 폴더를 지정하는 것과 같습니다 — 필요한 라이브러리 폴더만 등록하세요.
주요 기능
- read_file / read_multiple_files — 파일 읽기
- write_file — 파일 쓰기
- edit_file — 파일 부분 편집
- list_directory — 디렉토리 목록
- search_files — 파일 내용 검색
- directory_tree — 트리 구조 보기
사용 사례
프로젝트 외부의 참조 문서나 설정 파일에 접근해야 할 때 특히 유용합니다. 예를 들어, Nginx 설정 파일을 읽어 확인하거나, 다른 프로젝트의 코드를 참조하는 경우입니다.
14.4 Context7 — 라이브러리 문서 실시간 참조
Context7은 AI가 최신 라이브러리 문서를 실시간으로 참조할 수 있게 해주는 MCP입니다. AI 모델의 학습 데이터 시점 이후에 변경된 API도 정확하게 참조할 수 있습니다.
설치 및 설정
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
}
}
}주요 기능
- resolve-library-id — 라이브러리 이름으로 Context7 식별자를 검색 (예: "mediapipe" → 정확한 라이브러리 ID)
- get-library-docs — 특정 라이브러리의 최신 문서를 가져와 AI 컨텍스트에 주입
사용 사례
Context7은 최신 악보 라이브러리와 같습니다. 모차르트 시대의 악보만 알고 있는 음악가에게, "여기 어제 발표된 최신 현대음악 악보가 있어"라고 건네주는 것입니다. AI가 학습 시점 이후에 업데이트된 MediaPipe API나 Three.js API를 정확하게 사용할 수 있게 됩니다.
실전 활용 시나리오
# 시나리오 1: MediaPipe 최신 API 확인
"MediaPipe Hands의 최신 API를 Context7으로 확인하고,
손 랜드마크 데이터를 가져오는 코드를 작성해줘"
# AI가 수행하는 과정:
# 1. resolve-library-id로 "mediapipe" 검색
# 2. get-library-docs로 최신 Hand Landmarker 문서 가져오기
# 3. 최신 API 기반으로 정확한 코드 생성
# 시나리오 2: Three.js 최신 버전 대응
"Three.js r170의 새로운 WebGPU 렌더러 사용법을
Context7으로 확인하고, 기존 WebGL 코드를 마이그레이션해줘"
# 시나리오 3: Next.js 업데이트 대응
"Next.js 15의 App Router 변경사항을 Context7으로 확인하고,
현재 코드에서 deprecated된 API가 있는지 검사해줘"AI 모델은 학습 데이터 시점(cutoff)이 있어서, 최신 라이브러리 변경사항을 모를 수 있습니다. MediaPipe가 v0.10에서 API를 크게 바꿨다면, Context7 없이는 구버전 코드를 생성할 수 있습니다. Context7을 사용하면 항상 최신 정확한 코드를 얻을 수 있습니다.
특히 이 커리큘럼에서 다루는 MediaPipe, Three.js, Next.js 같은 라이브러리는 업데이트가 빈번하므로, Context7을 설정해두면 학습 중에 "왜 예제대로 했는데 안 되지?" 하는 상황을 크게 줄일 수 있습니다.
14.5 Git — Git 작업 자동화
Git MCP는 AI가 Git 저장소를 직접 조작할 수 있게 합니다.
설치 및 설정
{
"mcpServers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git", "--repository", "/path/to/repo"]
}
}
}주요 기능
- git_status — 변경된 파일 확인
- git_log — 커밋 이력 조회
- git_diff — 변경 내용 비교
- git_commit — 커밋 생성
- git_branch / git_checkout — 브랜치 관리
Claude Code나 Codex는 Bash/Shell 도구를 통해 이미 git 명령어를 실행할 수 있습니다. Git MCP는 Bash 접근이 제한된 환경이나, IDE 확장에서 MCP만 사용할 때 유용합니다. CLI에서 사용한다면 필수는 아닙니다.
14.6 Sequential Thinking — 복잡한 문제 단계별 추론
Sequential Thinking MCP는 AI가 복잡한 문제를 체계적으로 단계별로 사고할 수 있게 돕습니다.
설치 및 설정
{
"mcpServers": {
"sequential-thinking": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-sequential-thinking"]
}
}
}주요 기능
- sequentialthinking — 복잡한 문제를 단계로 나누어 추론
사용 사례
Sequential Thinking은 오케스트라 총보(full score) 분석과 같습니다. 교향곡의 한 섹션에서 문제가 있을 때, 지휘자가 "먼저 현악 파트만 확인 → 관악 파트 확인 → 타이밍 문제인지, 음정 문제인지 판단 → 해결 방안 제시"처럼 단계적으로 접근하는 것입니다.
# 이런 복잡한 질문에 특히 유용합니다:
"MediaPipe 손 인식 데이터를 OSC로 변환해서
Ableton Live에 보내는 전체 아키텍처를 설계해줘.
지연시간, 데이터 형식, 에러 처리 모두 고려해서."
# Sequential Thinking 없이: 한 번에 답하려다 중요한 부분을 놓칠 수 있음
# Sequential Thinking 사용:
# Step 1: MediaPipe 데이터 형식 분석
# Step 2: OSC 프로토콜 메시지 설계
# Step 3: 변환 로직 설계
# Step 4: 지연시간 최적화 방안
# Step 5: 에러 처리 전략
# Step 6: 전체 아키텍처 통합14.7 Brave Search — 웹 검색
Brave Search MCP는 AI가 실시간으로 웹을 검색할 수 있게 합니다.
설치 및 설정
{
"mcpServers": {
"brave-search": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-brave-search"],
"env": {
"BRAVE_API_KEY": "your-api-key-here"
}
}
}
}Brave Search API는 월 2,000회 무료입니다. https://brave.com/search/api/ 에서 가입하면 API 키를 받을 수 있습니다. 개인 프로젝트에는 무료 티어로 충분합니다.
주요 기능
- brave_web_search — 웹 검색
- brave_local_search — 로컬(지역) 검색
사용 사례
# AI에게 이렇게 요청합니다:
"MediaPipe Hands와 OSC를 함께 사용한
오픈소스 프로젝트가 있는지 검색해줘"
# AI가 Brave Search로 최신 프로젝트를 찾아
# 참고 코드나 영감을 제공합니다14.8 Memory — 대화 간 지식 유지
Memory MCP는 AI가 대화 세션이 끝나도 중요한 정보를 기억할 수 있게 합니다. 지식 그래프(Knowledge Graph) 형태로 정보를 저장합니다.
설치 및 설정
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-memory"],
"env": {
"MEMORY_FILE": "/home/user/.claude/memory.json"
}
}
}
}주요 기능
- create_entities — 새 엔티티(개념, 사람, 프로젝트) 생성
- add_observations — 엔티티에 관찰/정보 추가
- create_relations — 엔티티 간 관계 생성
- search_nodes — 저장된 지식 검색
- read_graph — 전체 지식 그래프 조회
Memory MCP는 음악 노트/스케치북과 같습니다. 작곡할 때 떠오른 멜로디 조각, 코드 진행 아이디어, "이 부분은 F#m으로 바꿀 것" 같은 메모를 적어두는 것처럼, AI에게 "이 프로젝트는 OSC 포트 8000을 사용해", "사용자가 왼손잡이라 좌우 반전 필요" 같은 정보를 기억시켜놓을 수 있습니다.
사용 사례
# 첫 번째 세션에서:
"이 프로젝트에서 OSC 포트는 9000번을 사용하고,
MediaPipe는 v0.10.14를 사용 중이야. 기억해둬."
# 다음 세션에서 (새 대화):
"OSC 설정 부분 수정해줘"
# AI가 Memory에서 포트 9000번을 기억하고 있으므로
# 바로 정확한 수정 가능14.9 SQLite — 데이터베이스 쿼리
SQLite MCP는 AI가 SQLite 데이터베이스를 직접 조회하고 수정할 수 있게 합니다.
설치 및 설정
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/path/to/database.db"]
}
}
}주요 기능
- list_tables — 테이블 목록
- describe_table — 테이블 구조 확인
- read_query — SELECT 쿼리 실행
- write_query — INSERT/UPDATE/DELETE 실행
- create_table — 새 테이블 생성
사용 사례
프로젝트에서 사용자 설정, 세션 데이터, 로그 등을 SQLite에 저장할 때 AI가 직접 데이터를 확인하고 디버깅할 수 있습니다.
write_query는 데이터를 변경하므로 항상 주의하세요. 프로덕션 데이터베이스에는 read_query만 사용하도록 권한을 제한하는 것이 안전합니다.
14.10 Fetch — 외부 URL/API 호출
Fetch MCP는 AI가 외부 웹페이지나 API를 호출할 수 있게 합니다.
설치 및 설정
{
"mcpServers": {
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
}주요 기능
- fetch — URL의 내용을 가져옴 (HTML → 마크다운 변환)
사용 사례
# AI에게 이렇게 요청합니다:
"MediaPipe 공식 문서(https://ai.google.dev/edge/mediapipe)를
읽어서 최신 Hand Landmarker API 변경사항을 알려줘"
# Fetch MCP가 URL 내용을 가져와서 AI가 분석합니다14.11 플랫폼별 MCP 설정법 비교
세 플랫폼의 MCP 설정 방식을 비교합니다.
Claude Code (.mcp.json)
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-playwright"]
},
"filesystem": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-filesystem", "/home/user/project"]
},
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
}
}
}Codex CLI (.codex/config.toml)
[mcp.servers.playwright]
command = "npx"
args = ["-y", "@anthropic-ai/mcp-playwright"]
[mcp.servers.filesystem]
command = "npx"
args = ["-y", "@anthropic-ai/mcp-filesystem", "/home/user/project"]
[mcp.servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp@latest"]Gemini CLI (.gemini/settings.json)
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-playwright"]
},
"filesystem": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-filesystem", "/home/user/project"]
},
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
}
}
}Claude Code와 Gemini CLI의 MCP 설정은 거의 동일한 JSON 구조입니다. Codex만 TOML 형식을 사용합니다. 한 플랫폼에서 설정을 익히면 다른 플랫폼으로 옮기기 쉽습니다. MIDI 설정이 DAW 간에 비슷한 것처럼요.
14.12 Ableton MCP — AI로 Ableton Live 제어하기
Ableton MCP(ableton-mcp)는 AI가 Ableton Live를 직접 제어할 수 있게 해주는 MCP 서버입니다. 트랙 생성, MIDI 노트 입력, 악기/이펙터 로딩, 재생 제어까지 — AI에게 말하면 Ableton에서 바로 실행됩니다.
Ableton MCP는 AI를 세션 프로듀서로 만들어줍니다. "80년대 신스웨이브 트랙 만들어줘"라고 말하면 AI가 직접 Ableton에서 MIDI 트랙을 만들고, 신디사이저를 로드하고, 노트를 찍고, 재생 버튼을 누릅니다. 여러분은 결과를 듣고 피드백만 주면 됩니다.
지원 도구 — 16개 전체 목록
# 📊 세션/트랙 정보 조회
get_session_info — 현재 세션 전체 정보 (트랙, 템포, 재생 상태 등)
get_track_info — 특정 트랙 상세 정보 (track_index 지정)
# 🎹 트랙 관리
create_midi_track — 새 MIDI 트랙 생성 (index: 삽입 위치, -1=맨 끝)
set_track_name — 트랙 이름 변경 (track_index, name)
# 🎵 클립 관리
create_clip — MIDI 클립 생성 (track_index, clip_index, length=4.0)
set_clip_name — 클립 이름 변경
add_notes_to_clip — MIDI 노트 추가 (pitch, start_time, duration, velocity, mute)
fire_clip — 클립 재생 시작
stop_clip — 클립 재생 중지
# ▶️ 재생 제어
start_playback — 세션 재생
stop_playback — 세션 정지
set_tempo — 템포(BPM) 변경
# 🎛️ 악기/이펙터 브라우저
get_browser_tree — 브라우저 카테고리 트리 조회
(instruments, sounds, drums, audio_effects, midi_effects)
get_browser_items_at_path — 특정 경로의 브라우저 항목 조회
load_instrument_or_effect — URI로 악기/이펙터를 트랙에 로드
load_drum_kit — 드럼 랙 + 드럼 킷 한 번에 로드설치 방법 — Codex CLI (GPT) 기준
사전 요구사항 설치
# Python 패키지 매니저 uv 설치 (필수!)
# macOS
brew install uv
# Linux/Windows — 공식 문서 참고
# https://docs.astral.sh/uv/
# 필요 환경:
# - Ableton Live 10 이상
# - Python 3.10 이상Ableton Remote Script 설치
# 1. GitHub에서 AbletonMCP_Remote_Script/__init__.py 다운로드
# https://github.com/ahujasid/ableton-mcp
# 2. Ableton MIDI Remote Scripts 폴더에 복사
# macOS:
# /Applications/Ableton Live.app/Contents/App-Resources/
# MIDI Remote Scripts/AbletonMCP/__init__.py
# Windows:
# C:\\Users\\[사용자]\\AppData\\Roaming\\Ableton\\Live x.x.x\\
# Preferences\\User Remote Scripts\\AbletonMCP\\__init__.py
# 3. Ableton Live 실행 → 설정 → Link, Tempo & MIDI
# 4. Control Surface에서 "AbletonMCP" 선택
# 5. Input/Output은 "None"으로 설정Codex CLI에 MCP 서버 등록
# .codex/config.toml에 추가
[mcp_servers.ableton]
command = "uvx"
args = ["ableton-mcp"]
# 또는 Claude Code의 경우 .mcp.json에:
# {
# "mcpServers": {
# "AbletonMCP": {
# "command": "uvx",
# "args": ["ableton-mcp"]
# }
# }
# }
# Gemini CLI의 경우 .gemini/settings.json에:
# {
# "mcpServers": {
# "AbletonMCP": {
# "command": "uvx",
# "args": ["ableton-mcp"]
# }
# }
# }사용 예시
# Codex 또는 Claude Code에서:
"Ableton에 새 MIDI 트랙을 만들고,
이름을 'Synth Lead'로 바꿔줘.
Analog 신디사이저를 로드하고,
C Major 코드 진행(C-F-G-Am)을 4마디로 만들어줘.
템포는 120 BPM으로 설정하고 재생해줘."
# AI가 수행하는 작업:
# 1. create_midi_track → 트랙 생성
# 2. set_track_name → "Synth Lead"로 이름 변경
# 3. get_browser_tree → 악기 브라우저 탐색
# 4. load_instrument_or_effect → Analog 로드
# 5. create_clip → 4마디 클립 생성
# 6. add_notes_to_clip → C-F-G-Am 노트 입력
# 7. set_tempo → 120 BPM 설정
# 8. fire_clip → 클립 재생- MCP 서버 인스턴스는 하나만 실행하세요 (Claude Desktop에서 실행 중이면 Codex에서는 끄기)
- 복잡한 편곡은 단계별로 나누어 요청하세요 (한 번에 교향곡 전체 X)
- 작업 전 반드시 Ableton 프로젝트를 저장하세요
- 이것은 서드파티 통합이며, Ableton 공식 제품이 아닙니다
14.13 TouchDesigner MCP — AI로 TouchDesigner 제어하기
TouchDesigner MCP(touchdesigner-mcp)는 AI가 TouchDesigner 프로젝트를 직접 제어할 수 있게 해주는 MCP 서버입니다. 노드 생성/삭제, 파라미터 수정, Python 스크립트 실행까지 AI가 TouchDesigner 내에서 직접 수행합니다.
TouchDesigner MCP는 AI를 비주얼 아티스트의 조수로 만들어줍니다. "원형 파티클을 만들고 오디오 리액티브하게 연결해줘"라고 말하면, AI가 TouchDesigner에서 직접 노드를 만들고, 파라미터를 설정하고, 연결하고, Python 스크립트를 실행합니다.
지원 도구 — 12개 전체 목록
# 📊 정보 조회
get_td_info — TouchDesigner 서버 환경 정보 조회
get_td_nodes — 부모 경로 아래 노드 목록 조회 (필터링 옵션)
get_td_node_parameters — 특정 노드의 파라미터 목록 조회
get_td_node_errors — 노드와 하위 노드의 에러 확인
get_td_classes — TouchDesigner Python 클래스 목록 조회
get_td_class_details — 특정 클래스/모듈 상세 정보 조회
get_module_help — Python help() 문서 조회
# ✏️ 노드 관리
create_td_node — 새 노드 생성
delete_td_node — 노드 삭제
update_td_node_parameters — 노드 파라미터 수정
# ⚡ 실행
exec_node_method — 노드의 Python 메서드 호출
execute_python_script — 임의의 Python 스크립트 실행
# 🔍 프롬프트 (AI 보조 기능)
Search node — 퍼지 검색으로 노드 찾기
Node connection — 노드 연결 방법 안내
Check node errors — 에러 검증 및 진단설치 방법 — Codex CLI (GPT) 기준
TouchDesigner 컴포넌트 설치
# 1. GitHub Releases에서 touchdesigner-mcp-td.zip 다운로드
# https://github.com/8beeeaaat/touchdesigner-mcp/releases
# 2. ZIP 압축 해제 → 다음 파일 구조 확인:
# touchdesigner-mcp-td/
# ├── import_modules.py
# ├── mcp_webserver_base.tox
# └── modules/
# ├── mcp/
# ├── utils/
# └── td_server/
# 3. TouchDesigner에서 mcp_webserver_base.tox 임포트
# 위치: /project1/mcp_webserver_base
# 4. Textport(Alt+T)에서 정상 로딩 확인
# ⚠️ 폴더 구조를 유지하세요!
# 컴포넌트가 modules/ 내용을 상대 경로로 참조합니다.Codex CLI에 MCP 서버 등록
# 방법 1: Codex CLI 명령으로 등록
codex mcp add touchdesigner -- npx -y touchdesigner-mcp-server@latest --stdio
# 방법 2: .codex/config.toml에 직접 추가
[mcp_servers.touchdesigner]
command = "npx"
args = ["-y", "touchdesigner-mcp-server@latest", "--stdio"]
# Claude Code의 경우:
# claude mcp add -s user touchdesigner -- npx -y touchdesigner-mcp-server@latest --stdio
#
# 또는 .mcp.json에:
# {
# "mcpServers": {
# "touchdesigner": {
# "command": "npx",
# "args": ["-y", "touchdesigner-mcp-server@latest", "--stdio"]
# }
# }
# }
# Gemini CLI의 경우 .gemini/settings.json에:
# {
# "mcpServers": {
# "touchdesigner": {
# "command": "npx",
# "args": ["-y", "touchdesigner-mcp-server@latest", "--stdio"]
# }
# }
# }사용 예시
# Codex 또는 Claude Code에서:
"TouchDesigner에서 원형 파티클 시스템을 만들어줘.
Circle TOP → Noise TOP → Composite TOP 순서로
노드를 만들고 연결해줘.
Noise의 속도 파라미터를 0.5로 설정해줘."
# AI가 수행하는 작업:
# 1. create_td_node → circleTOP 생성
# 2. create_td_node → noiseTOP 생성
# 3. create_td_node → compositeTOP 생성
# 4. exec_node_method → 노드 연결
# 5. update_td_node_parameters → Noise 속도 설정
# 6. get_td_node_errors → 에러 확인두 MCP를 함께 설정하면, AI가 음악과 비주얼을 동시에 제어할 수 있습니다:
"Ableton에서 킥 드럼 비트를 만들고, TouchDesigner에서 킥에 반응하는 원형 파티클을 만들어줘"
이것이 이 커리큘럼의 최종 목표 — MediaPipe 손 제스처 → Ableton 음악 제어 → TouchDesigner 비주얼 반응의 완전한 파이프라인입니다.
14.14 음악/미디어 관련 MCP — 미래 가능성
이 섹션에서 소개하는 MIDI MCP와 OSC MCP는 아직 존재하지 않는 아이디어입니다. 현재 누군가 만들 수 있는 가능성을 보여주기 위한 것이며, npm에서 바로 설치할 수는 없습니다. 하지만 바이브 코딩의 핵심은 "AI와 함께 나만의 도구를 만드는 것"이므로, 이런 MCP를 직접 만들어보는 것도 좋은 프로젝트가 됩니다.
MIDI MCP (커뮤니티 개발 가능)
만약 MIDI MCP 서버가 있다면 이런 것들이 가능해집니다:
# 사용 시나리오:
"현재 연결된 MIDI 장치 목록을 보여줘"
"Ableton에 MIDI 노트 C4를 보내줘"
"내 MIDI 컨트롤러의 CC 매핑을 확인해줘"
# 기술적으로 가능한 이유:
# Web MIDI API(브라우저)나 node-midi(Node.js)를
# MCP 서버로 감싸면 구현할 수 있습니다.
#
# 구현하면 이런 파이프라인이 가능:
# MediaPipe → AI Agent → MIDI MCP → Ableton LiveOSC MCP (커뮤니티 개발 가능)
# 사용 시나리오:
"TouchDesigner로 OSC 메시지를 보내줘"
"OSC 포트 9000에서 수신되는 메시지를 모니터링해줘"
"MediaPipe 데이터를 OSC 형식으로 변환해서 전송해줘"
# 기술적으로 가능한 이유:
# node-osc 또는 osc.js 라이브러리를
# MCP 서버로 만들 수 있습니다.
#
# 구현하면 이런 파이프라인이 가능:
# MediaPipe → AI Agent → OSC MCP → TouchDesigner직접 MCP 서버를 만들고 싶다면
MCP 서버는 Node.js나 Python으로 만들 수 있습니다. Anthropic의 MCP SDK를 사용하면 기본 구조는 비교적 간단합니다:
# MCP 서버 개발의 기본 흐름:
# 1. @modelcontextprotocol/sdk 패키지 설치
# 2. 도구(Tool) 정의 — 이름, 설명, 입력 스키마
# 3. 도구 핸들러 구현 — 실제 동작하는 코드
# 4. MCP 서버로 실행
# AI에게 이렇게 요청할 수 있습니다:
"node-osc 라이브러리를 사용하는 MCP 서버를 만들어줘.
도구: send_osc(address, args, port), listen_osc(port)
@modelcontextprotocol/sdk를 사용해서."
# → AI가 MCP 서버 코드를 자동 생성!MIDI MCP나 OSC MCP는 아직 세상에 없는 새로운 VST 플러그인을 상상하는 것과 같습니다. "이런 이펙터가 있으면 좋겠다"라고 생각하면 직접 Max for Live로 만들 수 있듯이, MCP 서버도 Node.js나 Python으로 직접 만들 수 있습니다. 이것이 바이브 코딩의 가능성입니다 — AI와 함께 나만의 도구를 만드는 것.
14.15 MCP 선택 가이드 — 프로젝트별 추천 조합
MediaPipe + Ableton 프로젝트 (이 커리큘럼의 메인 프로젝트)
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-playwright"]
},
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
},
"sequential-thinking": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-sequential-thinking"]
},
"memory": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-memory"]
}
}
}- Playwright: 웹앱 테스트와 스크린샷 자동화
- Context7: MediaPipe 최신 API 문서 참조
- Sequential Thinking: 복잡한 아키텍처 설계 (MediaPipe → OSC → Ableton)
- Memory: 프로젝트 설정값(포트, 버전 등)을 세션 간 기억
웹사이트/포트폴리오 프로젝트
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-playwright"]
},
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
},
"brave-search": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-brave-search"],
"env": { "BRAVE_API_KEY": "your-key" }
}
}
}데이터 분석 프로젝트
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "./data.db"]
},
"filesystem": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-filesystem", "/data"]
},
"sequential-thinking": {
"command": "npx",
"args": ["-y", "@anthropic-ai/mcp-sequential-thinking"]
}
}
}14.16 MCP 전체 요약 표
| 항목 | GPT Codex | Claude Code | Gemini CLI |
|---|---|---|---|
| MCP 서버 | 설치 난이도 | 주요 용도 | 추천 프로젝트 |
| Playwright | 쉬움 (npx) | 브라우저 자동화, 테스트 | 웹앱 전반 |
| Filesystem | 쉬움 (npx) | 파일 읽기/쓰기 | 모든 프로젝트 |
| Context7 | 쉬움 (npx) | 최신 라이브러리 문서 참조 | 라이브러리 사용 프로젝트 |
| Git | 보통 (uvx) | Git 작업 자동화 | 팀 프로젝트 |
| Sequential Thinking | 쉬움 (npx) | 복잡한 문제 단계적 추론 | 복잡한 아키텍처 |
| Brave Search | 보통 (API 키) | 웹 검색 | 리서치 필요 프로젝트 |
| Memory | 쉬움 (npx) | 세션 간 지식 유지 | 장기 프로젝트 |
| SQLite | 보통 (uvx) | DB 쿼리/디버깅 | 데이터 프로젝트 |
| Fetch | 보통 (uvx) | 외부 URL/API 호출 | API 연동 프로젝트 |
모든 MCP를 한꺼번에 설치할 필요는 없습니다. 악기 연주자가 공연에 필요한 이펙터 페달만 가져가는 것처럼, 프로젝트에 실제로 필요한 MCP만 설정하세요. MCP 서버가 많으면 AI 세션 시작이 느려질 수 있고, 사용하지 않는 도구가 불필요한 토큰을 소모할 수 있습니다.