Deterministic music-theory API + MCP for AI builders
Analyze any chord, get its roman-numeral function, generate idiomatic voicings, and reharmonize whole progressions — over a REST API or an MCP server your agent calls directly. Computed from music theory, never guessed.
Tap a chord below and hear it — voiced, spelled, and explained. No signup, no key. Then build with the same engine.
Hear it now · no signup, no key
Each chord plays live in your browser and gets spelled out — its notes, its Roman-numeral function, and the scale it comes from. Computed from music theory the instant you tap, never guessed.
This is the same answer your code gets back from chords.thiri.ai — same notes, same function, same voicing logic. The toy and the API run the identical theory.
THIRI is to music theory what cURL is to HTTP — the layer so reliable that developers stop thinking about it and just build.
Every music AI app eventually gets a chord wrong and nobody on the team can hear it — THIRI is the engine that guarantees they never ship that moment.
It lets any AI agent comp like a jazz musician — correct voicings, correct spellings, correct reharmonizations — without needing a musician on the engineering team.
Generative models can build the audio, but they still need something to tell the model what Db7 actually is — that's THIRI.
Every music AI company is hand-rolling chord logic in a utils file somewhere — T.H.I.R.I. replaces that file with four endpoints and an MCP server that's already been tested against real charts in real keys.
Four REST endpoints. Analyze chords from symbols or notes, return roman-numeral harmonic function, generate idiomatic voicings, reharmonize progressions. Bearer auth, live at chords.thiri.ai. Free tier: 1,000 calls/mo.
See the APIOne-click hosted MCP — add mcp.thiri.ai/mcp to Claude or Cursor connectors, no install. Or run it locally via npx. Same auth, same four endpoints.
MCP QuickstartHear reharmonization, conduct a band, run Helix, or sing through the vocoder — live in the browser. Same engine as the API.
Try the demos