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는 호스팅되고 에이전트 네이티브입니다(설치 불필요, 모든 언어 지원) — 코드 조회만 하는 것이 아니라 리하모니제이션과 보이스 리딩도 수행합니다.
⭐ 유용하다면 저장소에 스타를 남겨주세요 — 다른 음악가와 에이전트 빌더가 찾는 데 도움이 됩니다.
음악가를 위한: 2분 설정 (코드 없음)
- **build.thiri.ai/developers**에서 무료 키 받기
- Claude에서: 설정 → 커넥터 → 사용자 지정 커넥터 추가 → URL
https://mcp.thiri.ai/mcp→sk_live_키 붙여넣기 - Claude에게 물어보세요: "Dm7 G7 Cmaj7을 콜트레인 체인지로 리하모니제이션해줘."
그게 전부입니다 — 설치도, 설정 파일도 필요 없습니다. 빌더를 위한 전체 설치 옵션(Claude Code, Desktop 설정, 원시 HTTP)은 아래에 있습니다.
무엇을 물어볼 수 있나요
"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 | 악기 준비 완료 보이싱 (루트리스/bill_evans, 셸, 트라이어드, 패드, 가이드 톤, 드롭-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 코드, 실제 트라이어드, 이명동음 표기, 모든 변형 도미넌트 — 요청 타임아웃, 할당량 보고, 구조화된 오류 포함.
컨덕터 및 작곡 컴패니언 (데스크톱 전용)
듣기 에이전트 루프(지휘 → 서버 측 렌더 → 스피커로 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, render_audio (POST /v2/render를 통한 서버 측 Csound), play_audio, search_csound_corpus |
thiri-composition-mcp | 작곡 IR 도구 + play_composition (fluidsynth 미리보기) |
렌더링은 v0.5.0부터 서버 측에서 실행됩니다 — Csound 설치 불필요. 증거: npm run test:conductor · 라이브 문서: build.thiri.ai/lab/conductor-mcp · 에이전트 레시피.
컨덕터 에이전트 (바이브 작곡)
로컬 바이브 작곡을 위한 엔드투엔드 페르소나 — 스킬, CLI, Band 대시보드 패널:
| 진입점 | 명령 / 경로 |
|---|---|
| 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마디 미디엄 스윙."
- 렌더 — "템포 120에서 지휘 결과를 render_audio로 렌더링."
- 비평 — "play_audio; 보이스 리딩과 레지스터 균형을 비평하고 수정안 하나를 제안해줘."
전체 프롬프트: build.thiri.ai/lab/agent-recipes
호스팅 vs 로컬 경계
| 표면 | 오디오 렌더 |
|---|---|
mcp.thiri.ai / 호스팅 커넥터 | 아니요 — 이론 + conduct_band 레인만 |
로컬 thiri-conductor-mcp | 예 — WAV 서버 측 렌더 (POST /v2/render), 로컬 재생; Csound 설치 불필요 |
설치
**build.thiri.ai/developers**에서 무료 키를 받은 후 경로를 선택하세요:
Claude Desktop / 웹 / 모바일 — 호스팅 (원클릭 사용자 지정 커넥터, 설치 불필요):
설정 → 커넥터 → 사용자 지정 커넥터 추가 → URL https://mcp.thiri.ai/mcp → 동의 페이지에서 sk_live_ 키 붙여넣기. 동일한 5개 도구, 동일한 키, 동일한 할당량 — 설정 파일도 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 | (없음) | Bearer 토큰 (sk_live_…) — build.thiri.ai/developers에서 받기 |
THIRI_API_URL | https://chords.thiri.ai | API 베이스 (로컬 개발 시에만 재정의) |
개발
npm install && npm run build && npm start
라이선스
PolyForm 비상업용 1.0.0 — © 2026 Blues Prince Media. 개인, 연구 및 비상업적 용도로 무료; 상업적 사용은 라이선스 필요
(dennison@bluesprincemedia.com). LICENSE 참조. v0.5.0 이하로 게시된 버전은 출시 당시의 MIT/PolyForm 이중 라이선스로 유지됩니다.
v0.5.0부터 작곡 엔진과 Csound 렌더러는 호스팅 API 뒤에서 서버 측으로 실행됩니다 (
POST /v2/compose,POST /v2/render); 해당 소스는 더 이상 이 패키지에 포함되지 않습니다.