🎷 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)
- Get a free key at build.thiri.ai/keys
- In Claude: Settings → Connectors → Add custom connector → URL
https://mcp.thiri.ai/mcp → paste your sk_live_ key
- 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
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:
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:
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:
- Analyze — "Analyze Dm7 G7 Cmaj7 in key C with analyze_chord; summarize roman numerals and tension."
- Conduct — "conduct_band: warm Rhodes pad, walking bass, brush drums, 8 bars medium swing in C."
- Render — "render_audio from the conduct result at tempo 120."
- Critique — "play_audio; critique voice-leading and register balance; suggest one revision."
Full prompts: build.thiri.ai/lab/agent-recipes
Hosted vs local boundary
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):
Claude Desktop (claude_desktop_config.json):
Prefer raw HTTP? (no MCP needed)
The same engine is a plain REST API:
Five endpoints: /v2/analyze, /v2/resolve, /v2/voicing, /v2/reharmonize, /v2/conduct. See openapi.yaml.
Environment variables
Development
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.