🎷 THIRI Chord Intelligence β€” MCP Server

MCP serverMedia

Once added, your AI can analyze, voice, reharmonize, and conduct music using music theory that is computed rather than guessed. That means chord answers are exact and the same every time. It is a music integration for anyone who wants reliable chord work from their AI.

Use 🎷 THIRI Chord Intelligence β€” MCP Server in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add 🎷 THIRI Chord Intelligence β€” MCP Server and connect your AI. About a minute.

Also: Claude Code Β· Cursor Β· Codex

Then ask your AI: use 🎷 THIRI Chord Intelligence to analyze chord

Details

Available today. Use it from your connected AI after setup.

After adding it, ask your AI to analyze a chord or reharmonize a chord progression to see the computed results.

🎷 THIRI Chord Intelligence β€” MCP ServerStart free

What your AI can do with it

  • Analyze chords
  • Voice chords
  • Reharmonize chords
  • Conduct music
  • Get exact, repeatable answers, since results are computed rather than guessed

Install 🎷 THIRI Chord Intelligence β€” MCP Server

The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user thiri-chord-intelligence-mcp-ser 'https://mcp.thiri.ai/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://mcp.thiri.ai/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=thiri-chord-intelligence-mcp-ser&config=eyJ1cmwiOiJodHRwczovL21jcC50aGlyaS5haS9tY3AifQ==

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://mcp.thiri.ai/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add thiri-chord-intelligence-mcp-ser --url 'https://mcp.thiri.ai/mcp'

    Run it once, then sign in with codex mcp login thiri-chord-intelligence-mcp-ser if the server asks for an account.

From the project's README

As published by bluesprince/thiri-mcp in README.md.

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:

{
  "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):

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" }
    }
  }
}

Prefer raw HTTP? (no MCP needed)

The same engine is a plain 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"}'

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

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 (dennison@bluesprincemedia.com). 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.

Tools it offers (4)

What this server listed when Ahel dialed its public endpoint in Oct 2026, with no key and no account of yours. The names are the server’s own.

  • analyze_chord
  • resolve_chord
  • generate_voicing
  • reharmonize

Signals

GitHub stars
10
Last commit
Oct 2026
Advanced
Delivery
chord-intelligence MCP server β†’ your Ahel connector (mcp.ahel.ai) β†’ your AI.
Item type
mcp-server
Key
ai-thiri-chord-intelligence
Source
github.com/bluesprince/thiri-mcp
Hosted endpoint
https://mcp.thiri.ai/mcp