THIRI Chord Intelligence
공식AI 에이전트가 코드를 분석, 해결, 보이싱 및 재화성화할 수 있도록 하는 결정론적 음악 이론 엔진입니다.
THIRI Chord Intelligence MCP(으)로 무엇을 할 수 있나요?
- 모든 코드 기호 분석 —
analyze_chord로 근음, 음질, 음정, 로마 숫자, 화성 기능을 얻습니다. - 올바른 이명동음으로 코드 표기 —
resolve_chord를 사용하여 정확한 음, 주파수, MIDI 번호, 스케일 제안을 얻습니다. - 악기 준비 완료된 보이싱 생성 —
generate_voicing를 통해 루트리스, 셸, 드롭-2 또는 기타 보이싱 스타일을 요청하고, 선택적으로 성부 진행 점수를 포함합니다. - 진행 재화성화 —
reharmonize로 트라이톤 대치, 콜트레인 체인지, 모달 인터체인지 같은 기법을 적용합니다. - 자연어로 밴드 지휘 — 그루브를 설명하고
conduct_band를 통해 레인 할당과 MIDI를 얻습니다.
문서
🎷 THIRI Chord Intelligence — MCP 서버
당신의 AI에 진짜 음악 이론을 제공하세요. THIRI는 AI 빌더를 위한 결정론적 음악 이론 MCP 서버 + API입니다 — Claude, Cursor 또는 모든 MCP 에이전트가 코드를 분석하고, 로마 숫자 분석을 실행하고, 보이싱을 생성하고, 진행을 리하모니제이션할 수 있도록 하며, 계산된, 추측이 아닌 답변을 제공합니다.
LLM은 음악 이론을 환각합니다: 잘못된 음표, 가짜 로마 숫자, 보이스 리딩이 되지 않는 보이싱. THIRI는 호스팅된 API 뒤에 있는 결정론적 엔진(ℤ/12 위의 음고류 집합 이론)입니다 — 따라서 C7sus4은 서스펜션을 유지하고, Caug는 C E G#을 철자하며, "Dm7 G7 Cmaj7에 대한 콜트레인 체인지"는 매번 Cmaj7 Ab7 Abmaj7 E7을 반환합니다.
Suno / Udio 또는 다른 생성기의 다운스트림인가요? 출력을 감싸서 에이전트가 신뢰할 수 있는 올바른 코드 차트를 얻으세요. 그리고 tonal.js이나 music21과 달리, THIRI는 호스팅되고 에이전트 네이티브이며(설치 불필요, 모든 언어) — 코드를 단순히 조회하는 것이 아니라 리하모니제이션하고 보이스 리딩합니다.
⭐ 유용하다면, 저장소에 별표를 눌러주세요 — 다른 음악가와 에이전트 빌더가 찾는 데 도움이 됩니다.
질문할 수 있는 것들
"C 키에서 Dm7b5를 분석해줘." →
iiø7, 반감음계, 차용된 프리도미넌트, + 스케일 옵션 "C7sus4의 음은 무엇인가요?" →C F G Bb(서스펜션이 살아남습니다) "루트리스 Cmaj7 보이싱을 주고, 그 다음 Dm7으로 보이스 리딩해줘." → 보이싱 + 보이스 리딩 점수 "Dm7 G7 Cmaj7을 콜트레인 체인지로 리하모니제이션해줘." →Cmaj7 Ab7 Abmaj7 E7
도구
| 도구 | 기능 |
|---|---|
analyze_chord | 코드 → 근음, 성질, 음정, 로마 숫자 및 화성 기능 (세컨더리 도미넌트, 모달 인터체인지 레이블) |
resolve_chord | 코드 → 철자된 음표 (엔하모닉 정확), 주파수, MIDI, 스케일 추천 |
generate_voicing | 악기용 보이싱 (루트리스/빌 에반스, 셸, 트라이어드, 패드, 가이드 톤, 드롭-2/3); previousNotes을 전달하면 보이스 리딩 점수; colorPreferences을 전달하면 명시적 텐션 |
reharmonize | 진행 리하모니제이션 — 8가지 기법: tritone_sub, ii_v_insertion, modal_interchange, diminished_passing, secondary_dominant, chain_of_dominants, coltrane_changes, backdoor (또는 auto) |
conduct_band | 자연어 밴드 지휘 → 레인 + MIDI (호스팅 MCP v0.3+) |
v2 그리드 엔진에서 실행 — 올바른 sus 코드, 실제 트라이어드, 엔하모닉 철자, 모든 얼터드 도미넌트 — 요청 타임아웃, 할당량 보고, 구조화된 오류 포함.
로컬 Csound MCP (데스크톱 전용)
듣기 에이전트 루프 (지휘 → Csound 악보 → WAV)를 위해, 호스팅된 이론 도구와 함께 두 번째 로컬 서버를 추가하세요:
{
"mcpServers": {
"thiri": {
"command": "npx",
"args": ["-y", "@bluesprincemedia/thiri-mcp"],
"env": { "THIRI_API_KEY": "sk_live_your_key" }
},
"thiri-conductor": {
"command": "npx",
"args": ["-y", "@bluesprincemedia/thiri-mcp", "thiri-conductor-mcp"],
"env": { "THIRI_API_KEY": "sk_live_your_key" }
},
"thiri-composition": {
"command": "npx",
"args": ["-y", "@bluesprincemedia/thiri-mcp", "thiri-composition-mcp"]
}
}
}
| 바이너리 | 도구 |
|---|---|
thiri-conductor-mcp | conduct_band, build_csound_score, render_csound_wav, play_audio, search_csound_corpus, render_with_tension |
thiri-composition-mcp | 컴포지션 IR 도구 + play_composition (fluidsynth 미리보기) |
WAV 렌더링을 위해 PATH에 Csound CLI가 필요합니다. 증명: npm run test:conductor · 라이브 문서: build.thiri.ai/lab/conductor-mcp · 에이전트 레시피.
컨덕터 에이전트 (바이브 작곡)
로컬 바이브 작곡을 위한 엔드투엔드 페르소나 — 스킬, CLI, 밴드 대시보드 패널:
| 항목 | 명령어 / 경로 |
|---|---|
| Cursor 스킬 | THIRI/lab/skills/thiri-conductor-agent/SKILL.md 복사 → ~/.cursor/skills/thiri-conductor-agent/SKILL.md |
| CLI | cd thiri-mcp && npm run conductor:vibe -- "gospel ballad in F minor" |
| 대시보드 | npm run dev:studio → localhost:5173/band → Vibe Conduct 패널 |
| 랩 증명 | build.thiri.ai/lab/conductor-agent |
위의 듀얼 MCP 구성 + 각 conduct_band 후 mapConductResultToStudioModules. 마지막 CLI 렌더는 ~/.thiri/conductor-last.json를 기록합니다 (로컬 전용, 커밋되지 않음).
플래그십 에이전트 레시피 (분석 → 지휘 → 렌더 → 비평)
위의 듀얼 MCP 구성 후 순서대로 붙여넣기:
- 분석 — "analyze_chord로 C 키에서 Dm7 G7 Cmaj7을 분석하고; 로마 숫자와 텐션을 요약해줘."
- 지휘 — "conduct_band: 따뜻한 Rhodes 패드, 워킹 베이스, 브러시 드럼, C 키의 미디엄 스윙 8마디."
- 렌더 — "레인에서 build_csound_score, 그 다음 템포 120으로 render_csound_wav."
- 비평 — "play_audio; 보이스 리딩과 음역 밸런스를 비평하고; 한 가지 수정을 제안해줘."
전체 프롬프트: build.thiri.ai/lab/agent-recipes
호스팅 vs 로컬 경계
| 표면 | Csound WAV |
|---|---|
mcp.thiri.ai / 호스팅 커넥터 | 아니요 — 이론 + conduct_band 레인만 |
로컬 thiri-conductor-mcp | 예 — 사용자 머신에 Csound CLI 필요 |
설치
**build.thiri.ai/developers**에서 무료 키를 받은 후, 경로를 선택하세요:
Claude Desktop / 웹 / 모바일 — 호스팅 (원클릭 커스텀 커넥터, 설치할 것 없음):
설정 → 커넥터 → 커스텀 커넥터 추가 → URL https://mcp.thiri.ai/mcp → 동의 페이지에 sk_live_ 키 붙여넣기. 동일한 4개 도구, 동일한 키, 동일한 할당량 — 구성 파일 없음, npx 없음.
Claude Code (한 줄):
claude mcp add thiri --env THIRI_API_KEY=sk_live_your_key -- npx -y @bluesprincemedia/thiri-mcp
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"thiri": {
"command": "npx",
"args": ["-y", "@bluesprincemedia/thiri-mcp"],
"env": { "THIRI_API_KEY": "sk_live_your_key" }
}
}
}
순수 HTTP를 선호하나요? (MCP 불필요)
동일한 엔진이 일반 REST API입니다:
curl -X POST https://chords.thiri.ai/v2/analyze \
-H "Authorization: Bearer YOUR_KEY" -H "content-type: application/json" \
-d '{"chord":"Dm7b5","key":"C"}'
네 개의 엔드포인트: /v2/analyze, /v2/resolve, /v2/voicing, /v2/reharmonize, /v2/conduct. openapi.yaml 참조.
환경 변수
| 변수 | 기본값 | 설명 |
|---|---|---|
THIRI_API_KEY | (없음) | 베어러 토큰 (sk_live_…) — build.thiri.ai/developers에서 받으세요 |
THIRI_API_URL | https://chords.thiri.ai | API 베이스 (로컬 개발 시에만 재정의) |
개발
npm install && npm run build && npm start
라이선스
MIT — © 2026 Blues Prince Media. 클라이언트는 오픈 소스이며, 엔진은 호스팅 서비스입니다.