THIRI Chord Intelligence
공식AI 에이전트가 코드를 분석, 해결, 보이싱 및 재화성화할 수 있도록 하는 결정론적 음악 이론 엔진입니다.
THIRI Chord Intelligence MCP(으)로 무엇을 할 수 있나요?
- 음악 이론으로 코드 분석하기 —
analyze_chord를 통해 근음, 코드 성질, 음정, 로마 숫자 표기, 화성 기능을 요청하세요. 여기에는 secondary dominants와 modal interchange도 포함됩니다. - 코드 스펠링 해결하기 —
resolve_chord를 사용하여 이명동음적으로 올바른 음, 주파수, MIDI, 스케일 추천을 받으세요. 예: "C7sus4에는 어떤 음이 있나요?" - 악기 연주용 보이싱 생성하기 —
generate_voicing으로 루트 없는 보이싱, 셸 보이싱, 트라이어드, 드롭-2 보이싱을 요청하세요. 선택적으로previousNotes를 전달하여 보이스리딩 점수를 얻을 수도 있습니다. - 진행 재화성화하기 —
reharmonize를 통해tritone_sub,coltrane_changes, 또는auto같은 기법을 적용하세요. 예: "Dm7 G7 Cmaj7을 콜트레인 체인지로 재화성화해 줘." - 자연어로 밴드 지휘하기 —
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에 Coltrane 체인지"는 매번 Cmaj7 Ab7 Abmaj7 E7을 반환합니다.
Suno / Udio 또는 다른 생성기의 다운스트림에 있나요? 출력을 래핑하면 에이전트가 신뢰할 수 있는 정확한 코드 차트를 얻을 수 있습니다. 그리고 tonal.js 또는 music21과 달리 THIRI는 호스팅되고 에이전트 네이티브입니다(설치 불필요, 모든 언어 지원) — 코드 조회만 하는 것이 아니라 재화성화와 보이스리딩도 수행합니다.
⭐ 유용하다면 저장소에 스타를 남겨주세요 — 다른 음악가와 에이전트 빌더가 찾는 데 도움이 됩니다.
👥 AI 뮤직 빌더 커뮤니티에 참여하세요: 높은 요금 한도, 창립자 직접 지원, 곧 출시될 도구에 대한 조기 액세스를 원하시나요? Skool — T.H.I.R.I. Builders 개발자 커뮤니티에 가입하세요.
음악가: 2분 설정 (코드 없음)
- **build.thiri.ai/keys**에서 무료 키 받기
- Claude에서: 설정 → 커넥터 → 사용자 지정 커넥터 추가 → URL
https://mcp.thiri.ai/mcp→sk_live_키 붙여넣기 - Claude에게 물어보세요: "Dm7 G7 Cmaj7을 Coltrane 체인지로 재화성화해줘."
끝입니다 — 설치도, 설정 파일도 필요 없습니다. 빌더를 위한 전체 설치 옵션(Claude Code, Desktop 설정, 원시 HTTP)은 아래에 있습니다.
무엇을 물어볼 수 있나요
"C에서 Dm7b5를 분석해줘." →
iiø7, 하프 디미니시드, 차용된 종속화음, + 스케일 옵션 "C7sus4의 음은 무엇인가요?" →C F G Bb(서스펜션 유지됨) "루트 없는 Cmaj7 보이싱을 주고, Dm7으로 보이스리딩해줘." → 보이싱 + 보이스리딩 점수 "Dm7 G7 Cmaj7을 Coltrane 체인지로 재화성화해줘." →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_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/keys**에서 무료 키를 받은 후 경로를 선택하세요:
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/keys에서 받기 |
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); 해당 소스는 더 이상 이 패키지에 포함되지 않습니다.