THIRI Chord Intelligence

ai.thiri由 thiri.ai 發布官方發布者v0.5.2更新於 Oct 24, 2026

Deterministic music theory for agents: analyze, voice, reharmonize, conduct — computed, not guessed

已驗證Streamable HTTP可網頁執行媒體與設計AI 與機器學習

概覽

AI 產生的概覽

一個確定性的樂理伺服器,讓助理分析和弦、拼寫音符、產生聲部配置並重新和聲進行。

可以做什麼
分析和弦,給出根音、性質、音程、羅馬數字與和聲功能,同時回傳爵士與古典讀法、其他可行解讀,並可為小調傳入音階。將和弦解析為正確拼寫的音符、頻率、MIDI 編號與建議音階。依風格產生可直接演奏的聲部配置,如無根音、shell、三和弦、pad、導音與 drop-2/3,傳入前一組音符還可得到聲部進行評分。用三全音替代、ii-V 插入、調式交替、減和弦經過、副屬和弦、屬和弦鏈、Coltrane 變化與後門等手法重新和聲進行,也可自動選擇。
適用情境
適合需要可靠計算而非猜測的樂理結果的情境:和弦譜、羅馬數字分析、編曲聲部配置,或為進行提供重新和聲想法。也適合核對或修正音樂生成器輸出的和弦。
執行需求
需要 THIRI API 金鑰,透過環境變數 THIRI_API_KEY 提供,或在新增託管連接器時於授權頁貼上。可使用遠端端點,或以 npx 執行本機 npm 套件;需要連線至 THIRI API 的網路。免費金鑰由服務方提供。
安裝前請注意
API 金鑰是正式金鑰,應避免寫入共用設定或程式碼儲存庫。請求會送往第三方託管 API,和弦與進行資料會離開本機。用量受與該金鑰綁定的配額限制。託管端點只提供樂理與樂團聲部資料,音訊渲染需另裝本機伺服器。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 THIRI Chord Intelligence,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/ai.thiri%2Fchord-intelligence/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "thiri-chord-intelligence": {
      "type": "http",
      "url": "https://mcp.thiri.ai/mcp"
    }
  }
}

README

🎷 THIRI Chord Intelligence — MCP Server

[npm] [npm downloads] [CI] [license] [MCP] [Glama score]

Give your AI real music theory. THIRI is the deterministic music theory MCP server + API for AI builders — it lets Claude, Cursor, or any MCP agent analyze chords, run roman-numeral analysis, generate voicings, and reharmonize progressions with answers that are computed, not guessed.

LLMs hallucinate music theory: wrong notes, fake roman numerals, voicings that don't voice-lead. THIRI is a deterministic engine (pitch-class-set theory over ℤ/12) behind a hosted API — so C7sus4 keeps its suspension, Caug spells C E G#, and "Coltrane changes on Dm7 G7 Cmaj7" returns Cmaj7 Ab7 Abmaj7 E7, every time.

Downstream of Suno / Udio or any generator? Wrap the output and get a correct chord chart your agent can trust. And unlike tonal.js or music21, THIRI is hosted and agent-native (no install, any language) — and it reharmonizes and voice-leads, not just looks chords up.

⭐ If this is useful, star the repo — it helps other musicians and agent builders find it.

👥 Join the AI Music Builders: Want elevated rate limits, direct founder support, and early access to upcoming tools? Join our developer community on Skool — T.H.I.R.I. Builders.

Musicians: 2-minute setup (no code)

  1. Get a free key at build.thiri.ai/keys
  2. In Claude: Settings → Connectors → Add custom connector → URL https://mcp.thiri.ai/mcp → paste your sk_live_ key
  3. Ask Claude: "Reharmonize Dm7 G7 Cmaj7 with Coltrane changes."

That's it — no install, no config file. Builders: full install options (Claude Code, Desktop config, raw HTTP) are below.

What you can ask

"Analyze Dm7b5 in C." → iiø7, half-diminished, borrowed predominant, + scale options "What notes are in C7sus4?" → C F G Bb (the suspension survives) "Give me a rootless Cmaj7 voicing, then voice-lead into Dm7." → voicings + a voice-leading score "Reharmonize Dm7 G7 Cmaj7 with Coltrane changes." → Cmaj7 Ab7 Abmaj7 E7

Tools

ToolWhat it does
analyze_chordChord → root, quality, intervals, roman numeral & harmonic function (secondary dominants, modal-interchange labels)
resolve_chordChord → spelled notes (enharmonically correct), frequencies, MIDI, scale recommendations
generate_voicingInstrument-ready voicings (rootless/bill_evans, shell, triad, pad, guide-tones, drop-2/3); pass previousNotes for a voice-leading score; colorPreferences for explicit tensions
reharmonizeProgression reharmonization — 8 techniques: tritone_sub, ii_v_insertion, modal_interchange, diminished_passing, secondary_dominant, chain_of_dominants, coltrane_changes, backdoor (or auto)
conduct_bandNatural-language band conduct → lanes + MIDI (hosted MCP v0.3+)

Runs on the v2 grid engine — correct sus chords, real triads, enharmonic spelling, all altered dominants — with request timeouts, quota reporting, and structured errors.

Conductor & composition companions (Desktop only)

For hear-it agent loops (conduct → server-side render → WAV through your speakers), add a second local server alongside hosted theory tools:

json
{  "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"]    }  }}
BinTools
thiri-conductor-mcpconduct_band, render_audio (server-side Csound via POST /v2/render), play_audio, search_corpus
thiri-composition-mcpComposition IR tools + play_composition (fluidsynth preview)

Rendering runs server-side as of v0.5.0 — no Csound install needed. Proof: npm run test:conductor · live docs: build.thiri.ai/lab/conductor-mcp · agent recipes.

Conductor Agent (vibe compose)

End-to-end persona for local vibe composition — skill, CLI, and Band dashboard panel:

EntryCommand / path
Cursor skillCopy THIRI/lab/skills/thiri-conductor-agent/SKILL.md → ~/.cursor/skills/thiri-conductor-agent/SKILL.md
CLIcd thiri-mcp && npm run conductor:vibe -- "gospel ballad in F minor"
Dashboardnpm run dev:studio → localhost:5173/band → Vibe Conduct panel
Lab proofbuild.thiri.ai/lab/conductor-agent

Dual MCP config above + mapConductResultToStudioModules after each conduct_band. Last CLI render writes ~/.thiri/conductor-last.json (local only, not committed).

Flagship agent recipe (analyze → conduct → render → critique)

Paste in order after dual MCP config above:

  1. Analyze — "Analyze Dm7 G7 Cmaj7 in key C with analyze_chord; summarize roman numerals and tension."
  2. Conduct — "conduct_band: warm Rhodes pad, walking bass, brush drums, 8 bars medium swing in C."
  3. Render — "render_audio from the conduct result at tempo 120."
  4. Critique — "play_audio; critique voice-leading and register balance; suggest one revision."

Full prompts: build.thiri.ai/lab/agent-recipes

Hosted vs local boundary

SurfaceAudio render
mcp.thiri.ai / hosted connectorNo — theory + conduct_band lanes only
Local thiri-conductor-mcpYes — WAV rendered server-side (POST /v2/render), played locally; no Csound install needed

Install

Get a free key at build.thiri.ai/keys, then pick a path:

Claude Desktop / web / mobile — hosted (one-click custom connector, nothing to install): Settings → Connectors → Add custom connector → URL https://mcp.thiri.ai/mcp → paste your sk_live_ key on the consent page. Same 5 tools, same key, same quota — no config file, no npx.

Claude Code (one line):

sh
claude mcp add thiri --env THIRI_API_KEY=sk_live_your_key -- npx -y @bluesprincemedia/thiri-mcp

Claude Desktop (claude_desktop_config.json):

json
{  "mcpServers": {    "thiri": {      "command": "npx",      "args": ["-y", "@bluesprincemedia/thiri-mcp"],      "env": { "THIRI_API_KEY": "sk_live_your_key" }    }  }}

Prefer raw HTTP? (no MCP needed)

The same engine is a plain REST API:

sh
curl -X POST https://chords.thiri.ai/v2/analyze \  -H "Authorization: Bearer YOUR_KEY" -H "content-type: application/json" \  -d '{"chord":"Dm7b5","key":"C"}'

Five endpoints: /v2/analyze, /v2/resolve, /v2/voicing, /v2/reharmonize, /v2/conduct. See openapi.yaml.

Environment variables

VariableDefaultDescription
THIRI_API_KEY(none)Bearer token (sk_live_…) — get one at build.thiri.ai/keys
THIRI_API_URLhttps://chords.thiri.aiAPI base (override only for local dev)

Development

sh
npm install && npm run build && npm start

License

PolyForm Noncommercial 1.0.0 — © 2026 Blues Prince Media. Free for personal, research, and noncommercial use; commercial use requires a license ([email protected]). See LICENSE. Versions published at or before v0.5.0 remain under the MIT/PolyForm dual license they shipped with.

As of v0.5.0 the composition engine and Csound renderer run server-side behind the hosted API (POST /v2/compose, POST /v2/render); their source no longer ships in this package.

來源:README.md,提交 4dce404

工具

4

analyze_chord

Analyze Chord

Parse a chord into root, quality, intervals, and (with a key) roman numeral + function. Numerals use the jazz convention by default (Cmaj7 in Am = ♭IIIΔ7); both jazz and classical numerals are always returned in `numerals`, and other valid readings in `alternatives`. Pass `scale` to read a minor key as harmonic or melodic minor.

輸入參數keychord必填scaleconvention

resolve_chord

Resolve Chord

Resolve a chord to spelled notes, frequencies, MIDI, and recommended scales.

輸入參數chord必填

generate_voicing

Generate Voicing

Instrument-ready voicing in a style; pass previousNotes for a voice-leading score.

輸入參數chord必填styleoctavekeyContextpreviousNotes

reharmonize

Reharmonize Progression

Reharmonize a progression. Techniques: tritone_sub, ii_v_insertion, modal_interchange, diminished_passing, secondary_dominant, chain_of_dominants, coltrane_changes, backdoor (or auto).

輸入參數keytechniqueprogression必填

版本歷史

1
  1. v0.5.2最新Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。