THIRI Chord Intelligence

Registre officiel Médias et design

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

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

Remote (streamable-http)
Claude Code
claude mcp add --transport http thiri-chord-intelligence 'https://mcp.thiri.ai/mcp'
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "thiri-chord-intelligence": {
            "type": "http",
            "url": "https://mcp.thiri.ai/mcp"
        }
    }
}
NPM package @bluesprincemedia/thiri-mcp
Claude Code
claude mcp add thiri-chord-intelligence -e 'THIRI_API_KEY=<your thiri_api_key>' -- npx -y @bluesprincemedia/thiri-mcp@0.5.2
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "thiri-chord-intelligence": {
            "command": "npx",
            "args": [
                "-y",
                "@bluesprincemedia/thiri-mcp@0.5.2"
            ],
            "env": {
                "THIRI_API_KEY": "<your thiri_api_key>"
            }
        }
    }
}

Variables d'environnement

  • THIRI_API_KEY obligatoire secret THIRI API key (sk_live_…) — free at build.thiri.ai/developers

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. 🎷 THIRI Chord Intelligence — MCP Server
  2. Musicians: 2-minute setup (no code)
  3. What you can ask
  4. Tools
  5. Install
  6. Prefer raw HTTP? (no MCP needed)
  7. Environment variables
  8. Development
  9. License

🎷 THIRI Chord Intelligence — MCP Server

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.

Questions fréquentes

Qu'est-ce que THIRI Chord Intelligence ?

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

Comment installer THIRI Chord Intelligence ?

Il fonctionne comme serveur distant. Dans Claude Code : claude mcp add --transport http thiri-chord-intelligence 'https://mcp.thiri.ai/mcp'. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour THIRI Chord Intelligence ?

Oui. Il attend THIRI_API_KEY, à renseigner dans sa configuration.

THIRI Chord Intelligence est-il open source ?

Son code est public sur GitHub, mais le dépôt ne déclare pas de licence standard.

Qui maintient THIRI Chord Intelligence ?

Il est publié par BluesPrince. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.